FreeBSD ZFS on Root Migration
My home server (running this blog) got old, it has only 2G of RAM and a very old hard drive.
I usually like to use laptops as home server, they get the job done! I know I can’t have fancy things like RAID1, but I usually keep my backups on a separate disk/machine anyway.
So, I got my Dell Latitude E5470 next to my 11 years old Dell Inspiron to start the migration process.
Here’s a simple how-to guide for migrating a FreeBSD system from one machine to another.
Snapshotting The Pool
Okay, on the old host let snapshot the pool.
zfs snap -r zroot@migrate
Let’s save that snapshot in a file.
zfs send -R zroot@migrate | gzip > /usr/local/zroot.zfs.gz
This might take a while, grab some coffee :)
Now let’s save the ZFS Boot Environment (bootfs) property
# zpool get bootfs zroot NAME PROPERTY VALUE SOURCE zroot bootfs zroot/ROOT/default local
Perfect! now let’s go to the new host! :)
Well, this is simple :) first, install FreeBSD on the new machine. DON’T forget to use ZFS! :)
The reason why we are doing this so the FreeBSD installer will handle all the boot loader installation process. If you know how to do this manually, then be my guest (and blog about it).
Okay, now let’s “reset” that pool
zpool destroy zroot zpool create -R /mnt zroot /dev/ada0p3 # please check the partition index thought zpool export zroot # so we can import again with -N zpool import -N -R /mnt zroot
Restore Old Snapshot
Here we go.
ssh antranigv@pingvinashen "gzcat /usr/local/zroot.zfs.gz" | zfs receive -v -u -F zroot
Aaand we wait again.
So, check you restored all the datasets with
zfs list -r zroot
zpool set bootfs=zroot/ROOT/default zroot
Fingers Crossed and reboot
well, now it’s the time.
shutdown -r now
Hope this helps :)