THE_DEV=/dev/sda THE_HOSTNAME=somehost THE_USERNAME=someuser gdisk $THE_DEV ESP 200M ef00 XBOOTLDR 824M LUKSROOT vgcreate $THE_HOSTNAME /dev/disk/by-partlabel/LUKSROOT lvcreate -L16G -nswap $THE_HOSTNAME lvcreate -l100%FREE -nroot $THE_HOSTNAME mount /dev/mapper/$THE_HOSTNAME-root /mnt/ cd /mnt/ btrfs fi label /mnt/ btrfsroot btrfs subv create @root btrfs subv set-default /mnt/@root btrfs subv create @$THE_USERNAME btrfs subv create @apt btrfs subv create @varlog btrfs subv create @vartmp; chmod 1777 @vartmp ; chmod 0755 @root/var/tmp umount /mnt/ mount /dev/mapper/$THE_HOSTNAME-root /mnt/ mkdir -p /mnt/etc/ cat < /mnt/etc/fstab LABEL=btrfsroot / btrfs subvol=@root,discard,compress,nodev 0 0 LABEL=btrfsroot /btrfs btrfs subvol=/,discard,compress,nodev,nosuid 0 0 LABEL=btrfsroot /home/$THE_USERNAME btrfs subvol=@$THE_USERNAME,discard,compress,nodev,nosuid 0 0 LABEL=btrfsroot /var/cache/apt btrfs subvol=@apt,discard,compress,nodev,nosuid 0 0 LABEL=btrfsroot /var/log btrfs subvol=@varlog,discard,compress,nodev,nosuid 0 0 LABEL=btrfsroot /var/tmp btrfs subvol=@vartmp,discard,compress,nodev,nosuid 0 0 PARTLABEL=XBOOTLDR /boot ext4 discard,nodev,nosuid,noexec 0 0 PARTLABEL=ESP /boot/efi vfat discard,nodev,nosuid,noexec 0 0 LABEL=swap swap swap discard 0 0 tmpfs /tmp tmpfs nosuid,nodev 0 0 EOT debootstrap bookworm /mnt/ https://deb.debian.org/debian cat < /mnt/etc/apt/sources.list deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb https://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware EOT for i in /dev /proc /sys /run /tmp; do mount --rbind $i /mnt$i; done chroot /mnt/ mkdir -p /btrfs/ /boot/efi/ /home/$THE_USERNAME /var/cache/apt/ /var/tmp/ mkdir /run/systemd/resolve/ [ -f /run/systemd/resolve/stub-resolv.conf ] || echo 'nameserver 1.1.1.1' > /run/systemd/resolve/stub-resolv.conf echo $THE_HOSTNAME > /etc/hostname ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime echo do_symlinks=no > /etc/kernel-img.conf dpkg-reconfigure locales apt-get install aptitude curl git python3 vim cd /root/ curl -sSfL https://code.delx.au/p/dotfiles | bash exit chroot /mnt/ cd /root mkdir /root/bin/ git clone https://code.delx.au/monosys ln -s /root/monosys/bin /root/bin/monosys-bin mkdir /root/monosys/package-lists/local ln -s /root/monosys/package-lists/local /root/.aptorphan cd /root/monosys/package-lists/local for i in base base-hw desktop-base desktop-gnome desktop-gnome-software desktop-plymouth desktop-printing filesystems multimedia-players wifi; do ln -s ../debian/$i; done cp ../debian/system-efi-amd64 . apt-get update aptorphan systemctl disable ssh find /etc/systemd/system -xtype l -delete mv /etc/default/grub{,.bak} cp /root/monosys/etc/default/grub /etc/default/grub grub-install update-grub passwd root adduser $THE_USER gpasswd -a $THE_USER sudo plymouth-set-default-theme spinner # reboot flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo