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.

zu Willi Mutschlers Video

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

2 Kommentare zu „Pop_os mit btrfs und subvolumes installieren“

  1. @Marc Danke für den Tipp.
    Ich hatte auch den Fehler gehabt , konnte aber erst deine Lösung nicht nutzen.
    Ich habe die ISO über Ventoy gestartet, wichtig ist dabei aber dass man die ISO über den Grub2 Modus von Ventoy startet. (Wird nach der Auswahl der ISO abgefragt)
    Dann klappt deine Lösung.

  2. Danke für den Beitrag.
    Der Part „update-initramfs -c -k all“ schlug bei mir fehlt. U.a. mit „EFI variables are not supported on this system.“
    Lösen kann man das Problem mit.
    ######################################### L ö s u n g ###########################################
    root@pop-os:/# exit
    exit
    root@pop-os:/# mount –bind /sys/firmware/efi/efivars/ /mnt/sys/firmware/efi/efivars/
    root@pop-os:/# chroot /mnt
    root@pop-os:/# mount -av
    /boot/efi : already mounted
    /recovery : already mounted
    / : ignored
    /home : already mounted
    none : ignored
    root@pop-os:/# update-initramfs -c -k all
    update-initramfs: Generating /boot/initrd.img-6.9.3-76060903-generic
    W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/vega10_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/navi12_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/aldebaran_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/psp_14_0_3_sos.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/psp_14_0_2_sos.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_0_toc.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_mes1.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_mes.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/navi10_mes.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_mes.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/vcn_5_0_0.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/smu_14_0_2.bin for module amdgpu
    kernelstub.Config : INFO Looking for configuration…
    kernelstub : INFO System information:

    OS:………………Pop!_OS 22.04
    Root partition:……/dev/nvme0n1p3
    Root FS UUID:……..5f258017-aa0d-4cdc-bd22-d6e7912af837
    ESP Path:…………/boot/efi
    ESP Partition:……./dev/nvme0n1p1
    ESP Partition #:…..1
    NVRAM entry #:…….-1
    Boot Variable #:…..0000
    Kernel Boot Options:.quiet loglevel=0 systemd.show_status=false splash rootflags=subvol=@
    Kernel Image Path:…/boot/vmlinuz-6.9.3-76060903-generic
    Initrd Image Path:…/boot/initrd.img-6.9.3-76060903-generic
    Force-overwrite:…..False

    kernelstub.Installer : INFO Copying Kernel into ESP
    kernelstub.Installer : INFO Copying initrd.img into ESP
    kernelstub.Installer : INFO Setting up loader.conf configuration
    kernelstub.Installer : INFO Making entry file for Pop!_OS
    kernelstub.Installer : INFO Backing up old kernel
    kernelstub.Installer : INFO No old kernel found, skipping
    root@pop-os:/#

    ######################### P r o b l e m################################################
    Siehe u.s. Fehler. Wobei die Meldungen zu „W: Possible missing firmware /lib/firmware/amdgpu/“ kein Thema sind.
    #################################################################################
    root@pop-os:/# update-initramfs -c -k all
    update-initramfs: Generating /boot/initrd.img-6.9.3-76060903-generic
    W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/vega10_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/navi12_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/aldebaran_cap.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/psp_14_0_3_sos.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/psp_14_0_2_sos.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_0_toc.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_mes1.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_mes.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/navi10_mes.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_mes.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/vcn_5_0_0.bin for module amdgpu
    W: Possible missing firmware /lib/firmware/amdgpu/smu_14_0_2.bin for module amdgpu
    kernelstub.Config : INFO Looking for configuration…
    EFI variables are not supported on this system.
    kernelstub.NVRAM : ERROR Failed to retrieve NVRAM data. Are you running in a chroot?
    Traceback (most recent call last):
    File „/usr/lib/python3/dist-packages/kernelstub/nvram.py“, line 54, in get_nvram
    return subprocess.check_output(command).decode(‚UTF-8‘).split(‚\n‘)
    File „/usr/lib/python3.10/subprocess.py“, line 421, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    File „/usr/lib/python3.10/subprocess.py“, line 526, in run
    raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command ‚[‚efibootmgr‘]‘ returned non-zero exit status 2.
    kernelstub : INFO System information:

    OS:………………Pop!_OS 22.04
    Root partition:……/dev/nvme0n1p3
    Root FS UUID:……..5f258017-aa0d-4cdc-bd22-d6e7912af837
    ESP Path:…………/boot/efi
    ESP Partition:……./dev/nvme0n1p1
    ESP Partition #:…..1
    NVRAM entry #:…….-1
    Boot Variable #:…..0000
    Kernel Boot Options:.quiet loglevel=0 systemd.show_status=false splash rootflags=subvol=@
    Kernel Image Path:…/boot/vmlinuz-6.9.3-76060903-generic
    Initrd Image Path:…/boot/initrd.img-6.9.3-76060903-generic
    Force-overwrite:…..False

    kernelstub.Installer : INFO Copying Kernel into ESP
    kernelstub.Installer : INFO Copying initrd.img into ESP
    kernelstub.Installer : INFO Setting up loader.conf configuration
    kernelstub.Installer : INFO Making entry file for Pop!_OS
    kernelstub.Installer : INFO Backing up old kernel
    kernelstub.Installer : INFO No old kernel found, skipping
    ##################################################

Kommentar verfassen

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