]> code.delx.au - monosys/blob - notes/desktop:debian-bookworm.txt
da90f4cbe5410e6ba8b2eaf19f62431b11382c7b
[monosys] / notes / desktop:debian-bookworm.txt
1 THE_DEV=/dev/sda
2 THE_HOSTNAME=somehost
3 THE_USERNAME=someuser
4
5 gdisk $THE_DEV
6 ESP 200M ef00
7 XBOOTLDR 824M
8 LUKSROOT
9
10 vgcreate $THE_HOSTNAME /dev/disk/by-partlabel/LUKSROOT
11 lvcreate -L16G -nswap $THE_HOSTNAME
12 lvcreate -l100%FREE -nroot $THE_HOSTNAME
13
14 mount /dev/mapper/$THE_HOSTNAME-root /mnt/
15
16 cd /mnt/
17 btrfs fi label /mnt/ btrfsroot
18 btrfs subv create @root
19 btrfs subv set-default /mnt/@root
20 btrfs subv create @home
21 btrfs subv create @apt
22 btrfs subv create @vartmp
23 chmod 1777 @vartmp
24 umount /mnt/
25 mount /dev/mapper/$THE_HOSTNAME-root /mnt/
26
27 mkdir -p /mnt/etc/
28 cat <<EOT > /mnt/etc/fstab
29 LABEL=btrfsroot / btrfs subvol=@root,discard,compress,nodev 0 0
30 LABEL=btrfsroot /btrfs btrfs subvol=/,discard,compress,nodev,nosuid 0 0
31 LABEL=btrfsroot /home btrfs subvol=@home,discard,compress,nodev,nosuid 0 0
32 LABEL=btrfsroot /var/cache/apt btrfs subvol=@apt,discard,compress,nodev,nosuid 0 0
33 LABEL=btrfsroot /var/tmp btrfs subvol=@vartmp,discard,compress,nodev,nosuid 0 0
34 PARTLABEL=XBOOTLDR /boot ext4 discard,nodev,nosuid,noexec 0 0
35 PARTLABEL=ESP /boot/efi vfat discard,nodev,nosuid,noexec 0 0
36 LABEL=swap swap swap discard 0 0
37 tmpfs /tmp tmpfs nosuid,nodev 0 0
38 EOT
39
40 debootstrap bookworm /mnt/ https://deb.debian.org/debian
41
42 cat <<EOT > /mnt/etc/apt/sources.list
43 deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
44 deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
45 deb https://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
46 EOT
47
48 chroot /mnt/
49
50 mkdir -p /btrfs/ /boot/efi/ /home/ /var/cache/apt/ /var/tmp/
51
52 mkdir /run/systemd/resolve/
53 [ -f /run/systemd/resolve/stub-resolv.conf ] || echo 'nameserver 1.1.1.1' > /run/systemd/resolve/stub-resolv.conf
54
55 echo $THE_HOSTNAME > /etc/hostname
56 echo do_symlinks=no > /etc/kernel-img.conf
57
58 cd /root/
59 apt-get install aptitude curl git python3 vim
60 curl -sSfL https://code.delx.au/p/dotfiles | bash
61
62 exit
63 for i in /dev /proc /sys /run /tmp; do mount --rbind $i /mnt$i; done
64 chroot /mnt/
65 cd /root
66
67 mkdir /root/bin/
68 git clone https://code.delx.au/monosys
69 ln -s /root/monosys/bin /root/bin/monosys-bin
70
71 mkdir /root/monosys/package-lists/local
72 ln -s /root/monosys/package-lists/local /root/.aptorphan
73 cd /root/monosys/package-lists/local
74 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
75 cp ../debian/system .
76
77 apt-get update
78 aptorphan
79
80 dpkg-reconfigure locales
81 systemctl disable ssh
82 find /etc/systemd/system -xtype l -delete
83
84 mv /etc/default/grub{,.bak}
85 cp /root/monosys/etc/default/grub /etc/default/grub
86 grub-install
87 update-grub
88
89 passwd root
90 adduser $THE_USER
91 gpasswd -a $THE_USER sudo
92
93 plymouth-set-default-theme spinner
94
95
96
97 reboot
98
99 timedatectl set-timezone Australia/Sydney
100
101 flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo