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.
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
@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.
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
##################################################