Move FreeBSD to a new hard disk
This article will explain how you can move your FreeBSD installation from one
hard disk drive to another. I have done this many times using the dump/restore
utility. Before you begin, be sure you have read this document carefully.
Let's assume that our FreeBSD installation is on a 4 gigabyte drive (ide master
ad0) and we would like to move it to a new 20 gig drive.
What you need to do is remove the old hard disk, install the new [20G]
drive as an ide master and perform a minimal clean install of FreeBSD,
setting up the partitions exactly how you want them. Be se sure to set the drive
as bootable and boot from it one time as a test.
Next, put your old [4G] drive back in the system as an ide master and the new
[20G] drive in as an ide slave. Boot the system on your old installation in
single user mode.
To boot in single user mode:
Press the [spacebar] at the 10 second countdown.
type:
boot -s
Press [enter] for the default shell.
At the (#) prompt type:
fsck -p
mount -u /
mount -a
swapon -a
adjkerntz -i
Next, make sure you have the device files made so you can mount the partitions
on the slave drive.
Type:
cd /dev
./MAKEDEV ad1s1a
./MAKEDEV ad1s1e
./MAKEDEV ad1s1f
Now make mount points for the new drive's partitions:
Type:
mkdir /backup
mkdir /backup/root
mkdir /backup/usr
mkdir /backup/var
Lastly, I use a shell script to do the following:
1 - create new filesystems (newfs the drive)
2 - mount the partitions
3 - dump the data from my old drive, and restore it to my new one
4 - unmount the new drives partitions
5 - enable softupdates on the new drive (optional)
Here is the script I use:
#!/bin/sh
newfs /dev/ad1s1a
newfs /dev/ad1s1e
newfs /dev/ad1s1f
mount /dev/ad1s1a /backup/root
mount /dev/ad1s1e /backup/var
mount /dev/ad1s1f /backup/usr
( dump -0f - / ) | ( cd /backup/root ; restore -rf - )
( dump -0f - /var ) | ( cd /backup/var ; restore -rf - )
( dump -0f - /usr ) | ( cd /backup/usr ; restore -rf - )
umount /backup/root
umount /backup/var
umount /backup/usr
tunefs -n enable /dev/ad1s1a
tunefs -n enable /dev/ad1s1e
tunefs -n enable /dev/ad1s1f
#end
It will probably take several hours to perform the dump/restore, so be patient.
Once the data has been dumped and restored to the new drive, all you have to do
is remove your old drive and put it in a safe place, set the new drive to a
master and reboot. Your system will now boot your old FreeBSD installation on
your new hard disk.
Note: You can download the drivecopy shell script by clicking on
the drivecopy.tar filename located on the right sidebar of this page.
Issue the command tar xvf drivecopy.tar to untar the
drivecopy.sh file.
You may need to modify the drivecopy shell script if you are using custom
partitions. If you had selected the standard FreeBSD partitions at install, this
file will work without modification.
To learn more about dump, restore and other unix commands, please read the man
pages:
man dump
man restore
man tar
man mount
man adjkerntz
| Previous page: doc.nettools.ru/Unix | Main page: www.nettools.ru |