Moving raw system image to another drive breaks GELI
David Christensen
dpchrist at holgerdanske.com
Sun Mar 3 07:10:37 UTC 2019
On 2/26/19 10:00 AM, David Christensen wrote:
> I have a computer:
>
> 2019-02-26 09:50:14 dpchrist at ragnar ~
> $ freebsd-version ; uname -a
> 11.2-RELEASE-p9
> FreeBSD ragnar 11.2-RELEASE-p9 FreeBSD 11.2-RELEASE-p9 #0: Tue Feb 5
> 15:30:36 UTC 2019
> root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
>
>
> I installed to a SanDisk Ultra Fit USB 3.0 16 GB flash drive:
>
> Partitioning Auto (ZFS)
> Pool Type/Disks stripe,da0
> Pool Name zroot
> Force 4K Sectors YES
> Encrypt Disks YES
> Partition Scheme MBR (BIOS)
> Swap Size 2g
> Mirror Swap NO
> Encrypt Swap YES
> Install
>
>
> If I do a raw binary copy of the USB flash drive to a Intel 520 Series
> SSD 60 GB with dd(1) and boot the SSD, GELI rejects the passphrase and I
> end up at a "mountroot>" prompt.
>
>
> I would like to be able to move raw FreeBSD system images from drive to
> drive and have them work.
I did another install onto SSD. While comparing the configuration files
between the USB install and the SSD install, I found some interesting
differences in /boot/loader.conf. Here are some lines from the USB install:
geli_da0s1d_keyfile0_load="YES"
geli_da0s1d_keyfile0_name="/boot/encryption.key"
geli_da0s1d_keyfile0_type="da0s1d:geli_keyfile0"
And here are the corresponding lines from the SSD install:
geli_ada0s1d_keyfile0_load="YES"
geli_ada0s1d_keyfile0_name="/boot/encryption.key"
geli_ada0s1d_keyfile0_type="ada0s1d:geli_keyfile0"
So, the device name for the GELI provider containing the root filesystem
is hard-coded into the names of variables set in loader.conf(5).
If I burn the SSD install image to USB, boot a USB FreeBSD installer
into a shell, remount root read-write:
# mount -o rw /dev/ufs/FreeBSD_Install /
Import the bootpool on the USB image:
# zpool import -f -d /dev -R /mnt bootpool
Edit the variables in /mnt/bootpool/boot/loader.conf, move aside
/mnt/bootpool/boot/zfs/zpool.cache, shutdown, remove the USB installer,
and boot the USB image, it works!
David
References:
[1] https://www.freebsd.org/doc/handbook/boot-introduction.html
[2] loader(8)
[3] loader.conf(5)
[4] mount(8)
[5] zpool(8)
More information about the freebsd-questions
mailing list