--- cli-installer.orig 2023-06-26 06:29:57.000000000 +0000 +++ cli-installer 2024-02-23 08:27:31.356120000 +0000 @@ -205,11 +205,12 @@ 5)xfs 6)btrfs 7)reiserfs - 8)reiser4 " + 8)reiser4 + 9)zfs" echo ans=1 while [[ $ans -ne 0 ]]; do - read -p $"Enter your choice 1-8: " fs + read -p $"Enter your choice 1-9: " fs if [[ "$fs" == "" ]]; then fs=ext4 fi @@ -229,6 +230,30 @@ 8) command -v mkfs.resier4 >/dev/null || (apt-get update && apt-get -y install reiser4progs) && mkfs.reiser4 -f -y /dev/$1 > /dev/null 2>&1 echo $"Ignore any 'barrier' lines";; + 9) rootzfs=true; \ + /sbin/zpool create -f \ + -R /media/$rdrv \ + -O mountpoint=none \ + -O atime=off \ + -O compression=lz4 \ + -O normalization=formD \ + -o ashift=12 \ + -o compatibility=grub2 \ + rpool /dev/$rdrv; + + /sbin/zfs create -o canmount=off rpool/ROOT; + /sbin/zfs create -o mountpoint=/ rpool/ROOT/default; + /sbin/zfs create -o mountpoint=/home rpool/home; + /sbin/zfs create -o mountpoint=/var rpool/var; + /sbin/zfs create -o mountpoint=/var/log rpool/var/log; + + /sbin/zpool set bootfs=rpool/ROOT/default rpool; + /sbin/zfs list; + echo $""; + echo $"NOTE: Remember to install the ZFS packages on the target machine after"; + echo $"the files have finished being copied."; + echo $""; + ;; *) echo $"$fs invalid. Retry:"; ans=1;; esac done @@ -287,6 +312,8 @@ #[ $(uname -m) = x86_64 ] && cmdline="$cmdline" #cmdline="quiet $cmdline" #sed -r -i "s|^(GRUB_CMDLINE_LINUX_DEFAULT=).*|\1\$$cmdline|" /media/$rdrv/etc/default/grub + [[ $rootzfs == true ]] && sed -r -i "s|^(GRUB_CMDLINE_LINUX_DEFAULT=).*|\1\"boot=zfs noresume\"|" /media/$rdrv/etc/default/grub + yn $"Did you remember to install the ZFS packages on the target machine with chroot (y/N)?" #Install grub #1=MBR, 2=Root Partion, 3=ESP @@ -344,6 +371,11 @@ chroot /media/$rdrv update-initramfs -u -t -k all> /dev/null 2>&1 echo $"GRUB installed" + + [[ $rootzfs == true ]] && chroot /media/$rdrv update-rc.d zfs-import defaults + [[ $rootzfs == true ]] && chroot /media/$rdrv update-rc.d zfs-mount defaults + [[ $rootzfs == true ]] && chroot /media/$rdrv update-rc.d zfs-import enable + [[ $rootzfs == true ]] && chroot /media/$rdrv update-rc.d zfs-mount enable } ##End of functions