General Information
This guide 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.
Requirements
- Root Access or Sudo Rights.
- A List of Your Old and new Hardrive Information like /dev/ad* /dev/da* /dev/sd* and so on this can be checked by doing cat /var/log/messages and read the disctypes that come along.
Configuration
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 4 at the 10 second countdown.
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.
# # # # |
cd /dev
./MAKEDEV ad1s1a
./MAKEDEV ad1s1e
./MAKEDEV ad1s1f |
Now make mount points for the new drive's partitions:
# # # # |
mkdir /backup
mkdir /backup/root
mkdir /backup/usr
mkdir /backup/var |
Lastly, I use a shell script to do the following:
- create new filesystems (newfs the drive)
- mount the partitions
- dump the data from my old drive, and restore it to my new one
- unmount the new drives partitions
- 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.
Author: ShadowBumble
ShadowBumble at hotmail dot com