Skip to content

Instantly share code, notes, and snippets.

@aweibell
Last active July 11, 2022 07:46
Show Gist options
  • Save aweibell/91c02310aa03859574e99458e90e3a3c to your computer and use it in GitHub Desktop.
Save aweibell/91c02310aa03859574e99458e90e3a3c to your computer and use it in GitHub Desktop.
Mount zfs from luks-encrypted drive when booting from Ubuntu Live CD
#!/usr/bin/env bash
echo "Select disk:"
select CHOICE_DISK in $(ls /dev/disk/by-id/ | grep -v "\-part");
do
echo "Selected ${CHOICE_DISK}"
break
done
echo "Select root partition:"
select CHOICE_PART in $(ls /dev/disk/by-id/ | grep ${CHOICE_DISK}- | sed "s/$CHOICE_DISK//");
do
echo "Selected ${CHOICE_PART}"
break
done
# Install zfs-support
sudo apt-get update
sudo apt install --yes zfsutils-linux
# open encrypted disk
sudo cryptsetup luksOpen /dev/disk/by-id/${CHOICE_DISK}${CHOICE_PART} luks1
sudo zpool import -N -R /mnt rpool
sudo zfs mount rpool/ROOT/ubuntu
sudo zfs mount rpool/home
# TODO: Let user select partitions for boot and efi, perhaps using `blkid` to identify partitions
sudo mount /dev/disk/by-id/${CHOICE_DISK}-part4 /mnt/boot/
sudo mount /dev/disk/by-id/${CHOICE_DISK}-part3 /mnt/boot/efi/
sudo mount --rbind /dev /mnt/dev/
sudo mount --rbind /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo chroot /mnt /bin/bash --login
# ln -s /dev/mapper/luks1 /dev/luks1
# update-grub
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment