EFI zfs loader and beadm?

krad kraduk at gmail.com
Thu Mar 10 15:11:11 UTC 2016


As Eric said you cant have /boot on a separate dataset as the whole loader
bootstrap isnt designed too look for it on the dataset defined by bootfs.
Remember no other datasets are mounted at that stage of the bootstrap.

You could maybe bodge something by manually playing around with the bootfs
property, symlinks and rootfs variables in the loader.conf.  But why would
you want to do this? It's more work and non standard, and will break a lot?



On 10 March 2016 at 12:11, Andrey Fesenko <f0andrey at gmail.com> wrote:

> On Thu, Mar 10, 2016 at 2:55 PM, krad <kraduk at gmail.com> wrote:
> > presumably it boots now?
> >
> > On 10 March 2016 at 11:01, Andrey Fesenko <f0andrey at gmail.com> wrote:
> >>
> >> On Thu, Mar 10, 2016 at 1:49 PM, krad <kraduk at gmail.com> wrote:
> >> > Make sure you are running the latest snapshot of current or 10.3 as
> >> > well, as
> >> > the MFC commits were in early February for 10-stable
> >> >
> >> >>
> >> >> If remove efiwpool/ROOT/init/boot and copy his content on
> >> >> efiwpool/ROOT/init my scheme work fine too.
> >> >> /usr /var /home and other included in BE for consistent boot system
> >> >> (CURRENT world may not boot with kernel other rev),  and old home
> >> >> snapshot sometimes useful for backup/restore
> >> >> _______________________________________________
> >>
> >> % uname -a
> >> FreeBSD x220.efi.local 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r296548:
> >> Wed Mar  9 01:16:17 MSK 2016
> >> root at des.local:/usr/obj/usr/src/sys/X220  amd64
> >
> >
>
> My current working config
> % mount
> efiwpool/ROOT/init0 on / (zfs, local, noatime, nfsv4acls)
> devfs on /dev (devfs, local, multilabel)
> efiwpool/ROOT/init0/tmp on /tmp (zfs, local, noatime, nosuid, nfsv4acls)
> efiwpool/ROOT/init0/usr on /usr (zfs, local, noatime, nfsv4acls)
> efiwpool/ROOT/init0/usr/home on /usr/home (zfs, local, noatime, nfsv4acls)
> efiwpool/ROOT/init0/var on /var (zfs, local, noatime, nfsv4acls)
> efiwpool/ROOT/init0/var/crash on /var/crash (zfs, local, noatime,
> noexec, nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/db on /var/db (zfs, local, noatime, noexec,
> nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/db/pkg on /var/db/pkg (zfs, local, noatime,
> nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/db/tlpkg on /var/db/tlpkg (zfs, local,
> noatime, nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/empty on /var/empty (zfs, local, noatime,
> noexec, nosuid, read-only, nfsv4acls)
> efiwpool/ROOT/init0/var/log on /var/log (zfs, local, noatime, noexec,
> nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/mail on /var/mail (zfs, local, noatime,
> noexec, nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/run on /var/run (zfs, local, noatime, noexec,
> nosuid, nfsv4acls)
> efiwpool/ROOT/init0/var/tmp on /var/tmp (zfs, local, noatime, nosuid,
> nfsv4acls)
>
> =>       40  234441568  ada1  GPT  (112G)
>          40       1600     1  efi  (800K)
>        1640  234439960     2  freebsd-zfs  (112G)
>   234441600          8        - free -  (4.0K)
>
> % zfs get -r mountpoint efiwpool
> NAME                                                  PROPERTY
> VALUE          SOURCE
> efiwpool                                              mountpoint  none
>           local
> efiwpool/ROOT                                         mountpoint  none
>           inherited from efiwpool
> efiwpool/ROOT/init                                    mountpoint
> legacy         local
> efiwpool/ROOT/init/tmp                                mountpoint  /tmp
>           local
> ....
>
> This work fine, booted, beadm create new env, activate them, see boot
> menu and select BE.
>
> % beadm list
> BE    Active Mountpoint  Space Created
> init  -      -          420.7M 2016-03-09 02:57
> init0 NR     /           35.9G 2016-03-10 05:00
>
> If i'm add separate dataset for /boot (efiwpool/ROOT/init0/boot)
> system not booted, efi loader (first stage) see only my pool, not
> found /boot/loader.efi
>


More information about the freebsd-current mailing list