ZFS on root, beadm, and the /boot symlink

Allan Jude allanjude at freebsd.org
Sun May 22 19:11:59 UTC 2016


On 2016-05-22 14:41, Randy Westlund wrote:
> My system was installed from 10.1 or 10.2 with root on ZFS and geli, but
> now it tracks current.  It is not an EFI system.  I'm trying to get boot
> environments to work, but the /boot symlink is throwing me off.
> 
> I have two pools from the installer's layout; a small bootpool and
> zroot.  The bootpool mounts at /bootpool and /boot is a symlink to it.
> 
>> randy at mako /> zfs get mountpoint bootpool
>> NAME      PROPERTY    VALUE       SOURCE
>> bootpool  mountpoint  /bootpool   local
>>
>> randy at mako /> ls -al /boot
>> lrwxr-xr-x  1 root  wheel  13 Aug 12  2015 /boot -> bootpool/boot
> 
> When I try to activate a boot environment, I get this error:
> 
>> root at mako:/ # beadm activate r300358
>> cp: /tmp/BE-r300358.FS6Xo6ot/boot/zfs/zpool.cache: No such file or directory
> 
> Because the new boot environment has a symlink to an empty directory:
> 
>> randy at mako /> ls -al /tmp/BE-r300358.FS6Xo6ot/boot
>> lrwxr-xr-x  1 root  wheel  13 Aug 12  2015 /tmp/BE-r300358.FS6Xo6ot/boot -> bootpool/boot
>>
>> randy at mako /> ls -al /tmp/BE-r300358.FS6Xo6ot/bootpool
>> total 9
>> drwxr-xr-x   2 root  wheel   2 Aug 18  2015 .
>> drwxr-xr-x  21 root  wheel  29 May 21 16:23 ..
> 
> Mergemaster complains about the /boot symlink as well.
> 
> I'm not sure what the cachefile does or why it's there.  It has a recent
> modification time, but neither pool seems to reference it.
> 
>> randy at mako /> zpool get cachefile zroot
>> NAME   PROPERTY   VALUE      SOURCE
>> zroot  cachefile  -          default
> 
>> randy at mako /> zpool get cachefile bootpool
>> NAME      PROPERTY   VALUE      SOURCE
>> bootpool  cachefile  -          default
> 
>> randy at mako /> ls -al /boot/zfs/zpool.cache
>> -rw-r--r--  1 root  wheel  2512 May 21 16:23 /boot/zfs/zpool.cache
> 
> What's the proper way to handle the /boot symlink with beadm?
> 
> Randy
> 

It is not possible to use boot environments when you have a separate
bootpool. This is the motivation for my recent work to implement GELI in
boot2 and loader, to allow you to combine GELI encryption with ZFS boot
environments, which previously required a second unencrypted pool for
the loader and kernel.

-- 
Allan Jude


More information about the freebsd-current mailing list