Pop_os 22.04 mit btrfs und subvolumes installieren
Wer mich kennt der weiß ich mag Pop_os. Was ich nur nicht mag ist das Pop_os btrfs nicht mit subvolumes installiert und somit viel Potenzial liegen lässt.
Vielen Dank an Willi Mutschler der in seinem Video zeigt wie man Pop_os mit verschlüsselung und btrfs Supvolumes installiert.
https://www.youtube.com/watch?v=i8HDHAX1RJc&t=1795s
Diesem Video liegt meine Anleitung zugrunde nur das ich nicht die Verschlüsselung übernommen habe.
Das ganze bezieht sich auf ein efi-System.
Um Zeit mit Patritionieren zu sparen ,einfach einmal normal installieren und den pop_os installer die Arbeit machen lassen.
Sobald die Installation fertig ist nicht neustarten und den Installer beenden und erneut starten nur
diesmal machen wir eine custom install:
1. boot efi fat32
2. custom /recovery fat32
3. /root btrfs
4. swap
nach der installation NICHT Neustarten sondern ein Terminal öffnen.
Pop_os benutzt btrfs ohne Subvolumes, welche aber für Timeshift benötigt werden.
Wichtig ist die Bezeichnung der Subvolumes „@“ und „@home“, das ist bei timeshift hardcodet und ohne diese Bezeichnung funktionieren die btrfs Snapshots in Timeshift nicht.
Also machen wir uns zu root, mounten das oberste btrfs subvolid=5 nach /mnt erstellen dann das Subvolume @ und verschieben alle Dateine nach @ (Fehler kann vernachlässigt werden und ist logisch das man nicht in sich selbst verschieben kann) und zuletzt erstellen wir noch @home und verschieben alle Benutzerdateien dort hin.
sudo -i mount -o subvolid=5,defaults,compress=zstd,discard=async /dev/sdx3 /mnt ls /mnt btrfs subvolume create /mnt/@ mv /mnt/* /mnt/@/ btrfs subvolume create /mnt/@home mv /mnt/@/home/* /mnt/@home/ btrfs subvolume list /mnt
Danach muss das ganze noch in der fstab angepasst werden:
nano /mnt/@/etc/fstab
dort muss dann für „/“ und „/home“ folgende Anpassungen gemacht werden:
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX / btrfs defaults,subvol=@,compress=zstd,discard=async 0 0 UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /home btrfs defaults,subvol=@home,compress=zstd,discard=async 0 0
Damit das ganze beim nächsten Kernelupdate nicht vor die Wand fährt müssen noch kleine Ergänzungen in der /mnt/@/etc/kernelstub/configuration gemacht werden:
im „user“ Bereich eine neue Zeile hinzufügen(Komma bei der Zeile davor nicht vergessen) mit
"rootflags=subvol=@"
Danach mounten wir die efi Partitione
mount /dev/sdx1 /mnt/@/boot/efi
um dann in der
nano /mnt/@/boot/efi/loader/entries/Pop_OS-current.conf
rootflags=subvol=@
an das Ende der options-Zeile zu hängen.
Zum Schluss muss nochmal das initramfs neu generiert werden, dazu hängen wir alles erstmal aus um alles was wir für eine chroot-Umgebung brauchen zu mounten und erneuern dann im chroot das initramfs:
cd / umount -l /mnt mount -o subvol=@,defaults,compress=zstd,discard=async /dev/sdx3 /mnt for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done chroot /mnt ### zum testen mount -av ### update-initramfs -c -k all
wenn das initramfs ohne Probleme neu erstellt wurde dann 3x exit eingeben und das System neustarten(Finger dabei kreuzen schadet nicht) und fertig.
Falls beim initramfs wilde python-Fehler erscheinen dann kontrolliert nochmal ob ihr ein Komma in der /mnt/@/etc/kernelstub/configuration gemacht habt.
Jetzt könnt Ihr timeshift installieren
sudo apt install timeshift
und konfigurieren und dann noch zusätzlich:
timeshift-auto-snap und grub-btrfs installiern
sudo apt install build-essential git clone https://github.com/wmutschl/timeshift-autosnap-apt.git /home/$USER/timeshift-autosnap-apt cd /home/$USER/timeshift-autosnap-apt sudo make install