From 784b3b7a27513842d7e8d32a65f880b28825bcff Mon Sep 17 00:00:00 2001 From: Richard Laager Date: Sun, 24 May 2020 02:40:23 -0500 Subject: [PATCH] Debian: Simplify /boot mounting The original idea here was that bpool/BOOT/debian should be able to be cloned, just like rpool/ROOT/debian. The problem is that it doesn't really work without special support in the initramfs. Given that, it is possible to simplify this. I also set mountpoint=/boot on bpool, for consistency with the Ubuntu 20.04 HOWTO, which is in turn done that way for consistency with the Ubuntu installer. Thanks: colmbuckley Closes: openzfs/zfs#10309 Signed-off-by: Richard Laager --- .../Debian/Debian Buster Root on ZFS.rst | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/docs/Getting Started/Debian/Debian Buster Root on ZFS.rst b/docs/Getting Started/Debian/Debian Buster Root on ZFS.rst index 70b0b3a..bb99b1e 100644 --- a/docs/Getting Started/Debian/Debian Buster Root on ZFS.rst +++ b/docs/Getting Started/Debian/Debian Buster Root on ZFS.rst @@ -214,7 +214,7 @@ commands for all the disks which will be part of the pool. -o feature@zpool_checkpoint=enabled \ -O acltype=posixacl -O canmount=off -O compression=lz4 -O devices=off \ -O normalization=formD -O relatime=on -O xattr=sa \ - -O mountpoint=/ -R /mnt bpool ${DISK}-part3 + -O mountpoint=/boot -R /mnt bpool ${DISK}-part3 You should not need to customize any of the options for the boot pool. @@ -376,14 +376,15 @@ incremented for major system changes through ``pkg image-update`` or ``beadm``. Similar functionality has been implemented in Ubuntu 20.04 with the ``zsys`` tool, though its dataset layout is more complicated. Even without such a tool, the `rpool/ROOT` and `bpool/BOOT` containers can still be used -for manually created clones. +for manually created clones. That said, this HOWTO assumes a single filesystem +for ``/boot`` for simplicity. 3.2 Create filesystem datasets for the root and boot filesystems:: zfs create -o canmount=noauto -o mountpoint=/ rpool/ROOT/debian zfs mount rpool/ROOT/debian - zfs create -o canmount=noauto -o mountpoint=/boot bpool/BOOT/debian + zfs create -o mountpoint=/boot bpool/BOOT/debian zfs mount bpool/BOOT/debian With ZFS, it is not normally necessary to use a mount command (either @@ -733,11 +734,6 @@ mirror or raidz topology, the additional disks will be handled later. 5.7 Fix filesystem mount ordering: -Until there is support for mounting ``/boot`` in the initramfs, we also -need to mount that, because it was marked ``canmount=noauto``. Also, -with UEFI, we need to ensure it is mounted before its child filesystem -``/boot/efi``. - We need to activate ``zfs-mount-generator``. This makes systemd aware of the separate mountpoints, which is important for things like ``/var/log`` and ``/var/tmp``. In turn, ``rsyslog.service`` depends on @@ -745,27 +741,22 @@ the separate mountpoints, which is important for things like ``PrivateTmp`` feature of systemd automatically use ``After=var-tmp.mount``. -For UEFI booting, unmount /boot/efi first:: - - umount /boot/efi - -Everything else applies to both BIOS and UEFI booting:: - - zfs set mountpoint=legacy bpool/BOOT/debian - echo bpool/BOOT/debian /boot zfs \ - nodev,relatime,x-systemd.requires=zfs-import-bpool.service 0 0 >> /etc/fstab +:: mkdir /etc/zfs/zfs-list.cache + touch /etc/zfs/zfs-list.cache/bpool touch /etc/zfs/zfs-list.cache/rpool ln -s /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d zed -F & -Verify that ``zed`` updated the cache by making sure this is not empty:: +Verify that ``zed`` updated the cache by making sure these are not empty:: + cat /etc/zfs/zfs-list.cache/bpool cat /etc/zfs/zfs-list.cache/rpool -If it is empty, force a cache update and check again:: +If either is empty, force a cache update and check again:: + zfs set canmount=on bpool/BOOT/debian zfs set canmount=noauto rpool/ROOT/debian Stop ``zed``:: @@ -775,7 +766,7 @@ Stop ``zed``:: Fix the paths to eliminate ``/mnt``:: - sed -Ei "s|/mnt/?|/|" /etc/zfs/zfs-list.cache/rpool + sed -Ei "s|/mnt/?|/|" /etc/zfs/zfs-list.cache/* Step 6: First Boot ------------------