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