Date: Tue, 2 Jan 2018 22:28:21 +0000 From: Grzegorz Junka <list1@gjunka.com> To: freebsd-questions@freebsd.org Subject: Booting from two drives in stages, was Combining / and /boot in different ZFS pools Message-ID: <5A4C0785.6070709@gjunka.com> In-Reply-To: <696e5fe0-b0db-71e2-db62-43dad35e1053@gjunka.com> References: <696e5fe0-b0db-71e2-db62-43dad35e1053@gjunka.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello All, Trying this question again but rewording it differently. Is it possible to boot the system in such a way that the kernel is loaded from the /boot folder from one ZFS pool, then once the kernel has been loaded it mounts a second ZFS pool and loads the system from it (the reason is that the drive with second pool needs a driver that's only in the kernel)? Thanks GrzegorzJ On 01/01/2018 18:49, Grzegorz Junka wrote: > My motherboard doesn't support booting from NVMe and I am trying to > install the loader on a USB drive. > > I have two ZFS pools: > > Two NVMe drives, each with two partitions, 1: freebsd-swap, 2: > freebsd-zfs; ZFS pool tank6 mirror set up on nvd0p2 and nvd1p2 > One USB drive with two partitions, 1: freebsd-boot, 2: freebsd-zfs; > ZFS pool tank7 using single partition da0p2 > > The intention is to have the main root '/' on the NVMe drives and only > the '/boot' folder on the USB drive (since NVMe is much faster). > > Some of the datasets I have set up (listing dataset and mountpoint): > > tank6 none > tank6/ROOT none > tank6/ROOT/default / > ... > > tank7 none > tank7/ROOT none > tank7/ROOT/boot /boot > ... > > After creating all the datasets bsdsysinstall installed all the files > in all the datasets as expected. When in bsdinstall shell (memstick) > with altroot as /mnt, command 'zfs list' correctly lists all > filesystems. Also, when executing ls -l, /mnt/boot contains boot files > (including the kernel in /mnt/boot/kernel), and /mnt/ contains the > rest of the system. > > I have set up the bootfs as follows: > > gpart bootcode -b /boot/pmbr nvd0 > gpart bootcode -b /boot/pmbr nvd1 > > gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0 > > zpool set bootfs=tank6/ROOT/default tank6 > zpool set bootfs=tank7/ROOT/boot tank7 > > However, when trying to boot from the USB I am getting an error from > the system loader: > > Can't find /boot/zfsloader > > FreeBSD/x86 boot > Default: tank7/ROOT/boot:/boot/kernel/kernel > > My guess is that when booting up, the filesystems of tank6 and tank7 > are not mounted and combined correctly. I tried to set tank6 as the > booting drive in tank7: > > zpool set bootfs=tank6/ROOT/default tank7 > > but this throws an error. > > My question is if it's possible to boot the system from '/boot' set up > on a different ZFS pool than the ZFS pool containing the root '/' folder? > > GrzegorzJ >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5A4C0785.6070709>