Heute nochmal viel gelesen und da wurde meistens ein @home angelegt. Ok, dann wollen wir das auch mal machen.
Bitte dran denken, falls ihr das nachmacht. BACKUP anlegen!!!
Step 1 Live System starten
Wir brauchen eine startbare Linuxinstallation. Ich habe mir dazu LinuxMint runtergeladen, ab auf den Stick und den Rechner damit gestartet.
Ok, die englische Tastatur nervt für das was wir noch alles machen wollen. Also schnell mal das Tastatur Layout auf Deutsch umgebogen.
Jetzt kann es los gehen
Step 2 Entschlüsseln
Den verschlüsselten NVMe Riegel entschlüsseln & mounten. Sollte ihr keine verschlüsselte Partition haben, dann einfach so mounten. Man sucht sich vorher die richtige Partition aus. In meinem Fall sieht das so aus.
Disk /dev/nvme0n1: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 980 500GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 65C90FD5-E7AD-E74A-8C5F-1DDFFFCFBCE4
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1953791 1951744 953M EFI System
/dev/nvme0n1p2 1953792 3907583 1953792 954M Linux filesystem
/dev/nvme0n1p3 3907584 140625919 136718336 65,2G Linux swap
/dev/nvme0n1p4 140625920 976771071 836145152 398,7G Linux filesystem
Die Partition p4 interessiert uns hier, das ist das / Verzeichnis.
cryptsetup luksOpen /dev/nvme0n1p4 debian
Das Passwort eingeben. Danach gibt es ein neues Device mit dem Namen /dev/mapper/debian. Das brauchen wir. Das müssen wir jetzt mounten.
Step 3 Mounten
Verzeichnis anlegen zum Mounten
sudo mkdir /tmp/debian
Jetzt das entschlüsselte Verzeichnis dorthin mounten
sudo mount /dev/mapper/debian /tmp/debian
Jetzt können wir damit arbeiten.
Step 3 Subvolume anlegen
btrfs subvolume create /tmp/debian/@home
Step 4 Daten kopieren
Alle Daten von /tmp/debian/@rootfs/home/ nach /tmp/debian/@home/home/ kopieren. Das kann etwas dauern. Geduld ist angesagt. Danach starten wir den Rechner neu und booten wieder ganz normal.
Step 5 Temporär das Subvolume mounten
Dafür habe ich die Datei /etc/fstab bearbeitet.
/dev/mapper/nvme0n1p4_crypt /tmp/debian btrfs defaults,subvol=@home 0 0
Das dann mounten
sudo mount -a
Step 6 Benutzerrechte einstellen
Dann können wir dem Subvolume die nötigen Benutzerrechte geben.
sudo chown -R frank:frank /tmp/debian
Step 7 Altes Homeverzeichnis umbenennen
Jetzt kann man sich erstmal alles anschauen, sind alle Daten vorhanden usw. Wenn man sich sicher ist, das alles stimmt, bearbeiten wir die /etc/fstab und machen den richtigen Eintrag.
/dev/mapper/nvme0n1p4_crypt /home btrfs defaults,subvol=@home 0 0
Jetzt wird das Subvolume nach einem Neustart eingebunden. Wir wollen aber vorher noch, das alte Homeverzeichnis umbenennen! Dazu erneut das Livesystem starten. Das /home umbenennen, bei mir lautet es jetzt OLD_HOME. Somit hat man im Notfall noch die Daten und kann sie einfach umkopieren. Jetzt ein beherzter Neustart!
Step 8 Kontrolle
Wir geben mal
mount
als Root ein. Ausgabe
root@debian:~# mount
/dev/mapper/nvme0n1p4_crypt on / type btrfs (rw,relatime,ssd,space_cache=v2,subvolid=256,subvol=/@rootfs)
/dev/mapper/nvme0n1p4_crypt on /home type btrfs (rw,relatime,ssd,space_cache=v2,subvolid=295,subvol=/@home)
[..gekürzt..]
Und mit btrfs kommt das hier
root@debian:~# btrfs subvolume list /
ID 256 gen 5093 top level 5 path @rootfs
ID 295 gen 5093 top level 5 path @home
[..gekürzt..]
Ich habe noch wegen Docker jede Menge andere, aber das erspare ich Euch an dieser Stelle.
Das sieht doch gut aus und der Hobby Systemadministrator ist zufrieden
Da bei mir Timeshift vorher immer gecrasht ist, habe ich es erneut installiert und es lief, bis auf diesen Bug ohne zu crashen.
Timeshift ist in diesem Bereich wirklich schlecht programmiert. Es erwartet zwingend ein Rootverzeichnis mit Namen /@ und ein Homeverzeichnis mit Namen /@home. Etwas unflexibel. Dazu gibt es auch schon einen Issue auf Github.
Als Lösung könnte man jetzt das Subvolume /@rootfs genauso verschieben. Also, ein Neues anlegen mit Namen /@ danach alle Daten verschieben. /etc/fstab anpassen und fertig. Das wird aber sicherlich nicht mehr heute passieren. Soweit bin ich erstmal zufrieden