Naposledy aktivní 1 day ago

encrypted.sh Raw
1#! /usr/bin/env bash
2# adapted from https://docs.zfsbootmenu.org/en/v2.3.x/guides/ubuntu/uefi.html
3# script is not meant to be run non-interactively. read and understand before executing
4
5sudo -i
6
7source /etc/os-release
8export ID
9
10export POOL_DISK="/dev/sdg"
11export POOL_PART="3"
12export POOL_DEVICE="${POOL_DISK}${POOL_PART}"
13
14echo 'passphrase' > /etc/zfs/zroot.key
15chmod 000 /etc/zfs/zroot.key
16
17zpool create -f -o ashift=12 \
18 -O compression=zstd \
19 -O acltype=posixacl \
20 -O xattr=sa \
21 -O relatime=on \
22 -O encryption=aes-256-gcm \
23 -O keylocation=file:///etc/zfs/zroot.key \
24 -O keyformat=passphrase \
25 -o autotrim=on \
26 -o compatibility=openzfs-2.1-linux \
27 -m none zroot "$POOL_DEVICE"
28
29zfs create -o mountpoint=none zroot/ROOT
30zfs create -o mountpoint=/ -o canmount=noauto zroot/ROOT/${ID}
31zfs create -o mountpoint=/home zroot/home
32
33zpool set bootfs=zroot/ROOT/${ID} zroot
34
35zpool export zroot
36zpool import -N -R /mnt zroot
37zfs load-key -L prompt zroot
38
39zfs mount zroot/ROOT/${ID}
40zfs mount zroot/home
41
42udevadm trigger
43
44rsync -avAHXx --numeric-ids --exclude='/home' --exclude='/timeshift' /media/curiouser/5b30118c-3837-4895-9c60-70ea27dd36d9/ mnt/
45rsync -av --numeric-ids /media/curiouser/5b30118c-3837-4895-9c60-70ea27dd36d9/home/ mnt/home/
46
47mount -t proc proc mnt/proc
48mount -t sysfs sys mnt/sys
49mount -B /dev mnt/dev
50mount -t devpts pts mnt/dev/pts
51chroot mnt /bin/bash
52
53source /etc/os-release
54export ID
55
56apt update
57apt install zfs-initramfs zfsutils-linux
58
59systemctl enable zfs.target
60systemctl enable zfs-import-cache
61systemctl enable zfs-mount
62systemctl enable zfs-import.target
63
64echo "UMASK=0077" > /etc/initramfs-tools/conf.d/umask.conf
65
66update-initramfs -c -k all
67
68zfs set org.zfsbootmenu:commandline="systemd.show_status=false splash loglevel=0 quiet resume=UUID=9a4e4168-0964-4895-8d40-0e1ee0bf5d9a" zroot/ROOT
69zfs set org.zfsbootmenu:keysource="zroot/ROOT/${ID}" zroot
70
71exit
72
73umount -n -R /mnt
74zpool export zroot
75
76sudo -i
77apt remove kernelstub
78apt-mark hold efibootmgr \
79 grub-common grub-common:i386 \
80 grub-efi-amd64-signed grub-efi-amd64:i386 grub-efi-amd64-bin grub-efi-ia32 grub-efi-amd64 grub-efi-amd64-bin:i386 \
81 grub-pc grub2-common kernelstub lilo
82# next time you have a kernel update, you'll likely have to upgrade with flags since we've held back dependencies
83sudo apt upgrade --with-new-pkgs linux-generic
84
85# assumes your ESP is mounted at /boot/efi
86
87# copy zbm boot files
88wget -qO- https://get.zfsboot.menu/components/release | tar xvz -C /boot/efi/EFI
89# ignore ownership errors
90mv /boot/efi/EFI/zfsbootmenu-release-x86_64-v* /boot/efi/EFI/zbm
91
92# add entries
93cat << EOF > /boot/efi/loader/entries/pop.conf
94title Pop!_OS
95linux /EFI/zbm/vmlinuz-bootmenu
96initrd /EFI/zbm/initramfs-bootmenu.img
97options zbm.skip systemd.show_status=false splash loglevel=0 quiet
98EOF
99
100cat << EOF > /boot/efi/loader/entries/zbm.conf
101title ZFSBootMenu
102linux /EFI/zbm/vmlinuz-bootmenu
103initrd /EFI/zbm/initramfs-bootmenu.img
104options zbm.show
105EOF
106
107echo 'default pop' > /boot/efi/loader/loader.conf
108
109# removing kernelstub entries and boot files
110rm /boot/efi/loader/entries/Pop-*
111rm -r /boot/efi/EFI/Pop*
112
113# reboot into system
114systemctl reboot
unencrypted.sh Raw
1#! /usr/bin/env bash
2# adapted from https://docs.zfsbootmenu.org/en/v2.3.x/guides/ubuntu/uefi.html
3# script is not meant to be run non-interactively. read and understand before executing
4
5sudo -i
6
7source /etc/os-release
8export ID
9
10export POOL_DEVICE="/dev/nvme1n1p3"
11
12zpool create -f -o ashift=12 \
13 -O compression=zstd \
14 -O acltype=posixacl \
15 -O xattr=sa \
16 -O relatime=on \
17 -o autotrim=on \
18 -o compatibility=openzfs-2.1-linux \
19 -m none zroot "$POOL_DEVICE"
20
21zfs create -o mountpoint=none zroot/ROOT
22zfs create -o mountpoint=/ -o canmount=noauto zroot/ROOT/${ID}
23zfs create -o mountpoint=/home zroot/home
24
25zpool set bootfs=zroot/ROOT/${ID} zroot
26
27zpool export zroot
28zpool import -N -R /mnt/shredder-zfs zroot
29
30zfs mount zroot/ROOT/${ID}
31zfs mount zroot/home
32
33udevadm trigger
34
35rsync -avAHXx --numeric-ids --exclude='/home' --exclude='/timeshift' /mnt/shredder/ /mnt/shredder-zfs/
36rsync -av --numeric-ids /mnt/shredder/home/ /mnt/shredder-zfs/home/
37umount /mnt/shredder
38
39mount -t proc /proc /mnt/shredder-zfs/proc
40mount -t sysfs /sys /mnt/shredder-zfs/sys
41mount -B /dev /mnt/shredder-zfs/dev
42mount -t devpts pts /mnt/shredder-zfs/dev/pts
43mount /dev/nvme1n1p1 /mnt/shredder-zfs/boot/efi
44chroot /mnt/shredder-zfs /bin/bash
45
46
47
48### now in zroot
49
50
51
52source /etc/os-release
53export ID
54
55apt update
56apt remove kernelstub
57apt-mark hold efibootmgr \
58 grub-common grub-common:i386 \
59 grub-efi-amd64-signed grub-efi-amd64:i386 grub-efi-amd64-bin grub-efi-ia32 grub-efi-amd64 grub-efi-amd64-bin:i386 \
60 grub-pc grub2-common kernelstub lilo
61apt install zfs-initramfs zfsutils-linux zfs-dkms
62# next time you have a kernel update, you'll likely have to upgrade with flags since we've held back dependencies
63sudo apt upgrade --with-new-pkgs linux-generic
64
65systemctl enable zfs.target
66systemctl enable zfs-import-cache
67systemctl enable zfs-mount
68systemctl enable zfs-import.target
69
70echo "UMASK=0077" > /etc/initramfs-tools/conf.d/umask.conf
71
72update-initramfs -c -k all
73
74zfs set org.zfsbootmenu:commandline="systemd.show_status=false splash loglevel=0 quiet" zroot/ROOT
75
76# assumes your ESP is mounted at /boot/efi
77
78# removing kernelstub entries and boot files
79rm /boot/efi/loader/entries/Pop*
80rm -r /boot/efi/EFI/Pop*
81
82# copy zbm boot files
83wget -qO- https://get.zfsboot.menu/components/release | tar xvz -C /boot/efi/EFI
84# ignore ownership errors
85mv /boot/efi/EFI/zfsbootmenu-release-x86_64-v* /boot/efi/EFI/zbm
86
87# add entries
88cat << EOF > /boot/efi/loader/entries/pop.conf
89title Pop!_OS
90linux /EFI/zbm/vmlinuz-bootmenu
91initrd /EFI/zbm/initramfs-bootmenu.img
92options zbm.skip systemd.show_status=false splash loglevel=0 quiet
93EOF
94
95cat << EOF > /boot/efi/loader/entries/zbm.conf
96title ZFSBootMenu
97linux /EFI/zbm/vmlinuz-bootmenu
98initrd /EFI/zbm/initramfs-bootmenu.img
99options zbm.show
100EOF
101
102echo 'default pop' > /boot/efi/loader/loader.conf
103
104exit
105
106
107
108### out of zroot
109
110
111
112umount -n -R /mnt/shredder-zfs
113zpool export zroot
114
115# reboot into system
116systemctl reboot