Moving partition to new hard drive

Christopher K. Johnson ckjohnson at gwi.net
Wed Jun 9 11:29:32 UTC 2004


Terry Polzin wrote:

>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>On Tuesday June 8 2004 21:39, David Maier wrote:
>  
>
>>I'm running FC2 on a 20 Gb hard drive, on which I have a separate
>>partition for my /home directory.  I just installed a 120 Gb hard drive,
>>and would like to migrate the /home directory to that drive. How can I
>>do this without completely repartitioning my installation?
>>
>>Thanks,
>>
>>Dave Maier
>>    
>>
>
>My general recipe, RTFM as always. You did not state if you were adding SCSI 
>or IDE disks so I made the commands generic
>
>1) fdisk (make the partition(s) 
>2) e2fsck format the partition(s)
>3) mount (new home partition) on /mnt
>4) cd /home; tar cf - . | (cd /mnt|tar xvf- )
>5) edit /etc/fstab for new partition(s)
>6) umount /mnt
>7) umount old /home
>8) mount new /home
>9) ls -l /home -- check to see all data is there
>
>Good Luck,
>
>Terry
>  
>
Are there any remote users of this machine?  If so you should probably 
do 'init 1' or boot adding 'single' to boot parameters before doing any 
of this.

Also you need to ensure none of the files you are copying are open and 
in use (thus possibly corrupt copy).  A good way to do this is to umount 
/home before you copy because it cannot be unmounted while in use.  To 
make this work you need to not be logged in as anyone but root.  In 
other words you cannot login as normal user and 'su -' to do this.  You 
need to login as root directly (which hopefully is only permitted at the 
console on your machine for security reasons ;).

I like to use cpio or rsync for such copies.

My variation of the procedure would be this if /home is currently a 
partition (using second ide disk, if scsi substitute sdb for hdb) :

1) Login as root
2) fdisk /dev/hdb #make new /home partition and set it to type linux 
ext2 - call it /dev/hdb1 for this example
3) mke2fs -j /dev/hdb1 -L /home
4) init 1
5) mkdir /oldhome
6) umount /home
7) e2label [whatever your old /home device is] /oldhome
8) mount -o ro [whatever device old /home is] /oldhome
9) mount /dev/hdb1 /home
10) cd /oldhome; find . | cpio -dumpv /home
11) umount /oldhome
12) rmdir /oldhome
13) Edit your /etc/fstab if necessary.  Using the label "/home" set 
above this will probably not be necessary.

My variation of the procedure would be this if /home is currently a 
directory in the / filesystem (using second ide disk, if scsi substitute 
sdb for hdb) :

1) Login as root
2) fdisk /dev/hdb #make new /home partition and set it to type linux 
ext2 - call it /dev/hdb1 for this example
3) mke2fs -j /dev/hdb1 -L /home
4) init 1
5) edit /etc/fstab adding following line:
LABEL=/home             /home                   ext3    defaults        1 2
6) mv /home /oldhome
7) mkdir /home
8) mount /home
9) cd /oldhome; find . | cpio -dumpv /home
10) Later after you are confident everything is copied under new /home 
ok do an rm -rf /oldhome


-- 
-----------------------------------------------------------
   "Spend less!  Do more!  Go Open Source..." -- Dirigo.net
   Chris Johnson, RHCE #807000448202021






More information about the fedora-list mailing list