Pop_os mit btrfs und subvolumes installieren

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

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert