Die Antwort von ChatGPT wie der Redis ConnectionPool funktioniert. Ein paar Dinge finde ich komisch.
https://chat.openai.com/share/b10fdadc-2c9b-404a-bc99-c883d110d6af
Andere Distributionen ermöglichen einem das mit einem Mausklick, bei Debian muss man das leider von Hand erledigen. Ich habe das wie folgt gemacht.
Auf dem Laufwerk alle Partitionen gelöscht, so das nur noch der freie Speicher angezeigt wird. Danach der Reihe nach, folgende Partitionen angelegt.
Danach auf Verschlüsselte Datenträger konfigurieren klicken und den Anweisungen folgen. Die beiden Partitionen p3 & p4 verschlüsseln.
Danach die device-mapper Devices im oberen Teil bearbeiten, wie im Screenshot zu sehen. Einhängepunkte und Filesystem ist wichtig.
Danach läuft die Installation von Debian Bookworm weiter.
Das sieht dann so aus
df -h
root@debian12:~# df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 14G 0 14G 0% /dev
tmpfs 2,8G 1,6M 2,8G 1% /run
/dev/mapper/nvme0n1p4_crypt 435G 6,3G 427G 2% /
tmpfs 14G 0 14G 0% /dev/shm
tmpfs 5,0M 12K 5,0M 1% /run/lock
/dev/nvme0n1p2 921M 89M 769M 11% /boot
/dev/nvme0n1p1 511M 5,9M 506M 2% /boot/efi
tmpfs 2,8G 64K 2,8G 1% /run/user/1000
swapon
root@debian12:~# swapon
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 29,8G 0B -2
subvolume list
root@debian12:~# btrfs subvolume list /
ID 256 gen 76 top level 5 path @rootfs
filesystem show
root@debian12:~# btrfs filesystem show
Label: none uuid: 10c31933-b883-44db-9231-91be612ca84f
Total devices 1 FS bytes used 6.08GiB
devid 1 size 434.08GiB used 10.02GiB path /dev/mapper/nvme0n1p4_crypt
filesystem df /
root@debian12:~# btrfs filesystem df /
Data, single: total=8.01GiB, used=5.90GiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=178.53MiB
GlobalReserve, single: total=15.19MiB, used=0.00B
/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/nvme0n1p4_crypt / btrfs defaults,subvol=@rootfs 0 0
# /boot was on /dev/nvme0n1p2 during installation
UUID=827afb39-794d-40fa-ae50-74562a433ad3 /boot ext4 defaults 0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=DE97-75E3 /boot/efi vfat umask=0077 0 1
/dev/mapper/nvme0n1p3_crypt none swap sw 0 0
Kernel
root@debian12:~# uname -a
Linux debian12 6.1.0-7-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.20-1 (2023-03-19) x86_64 GNU/Linux
/etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Ja, man kann das sicherlich besser konfigurieren, aber ich denke das passt so für mich. Ich habe bewusst kein Subvolume für /home angelegt. Das habe ich bei einer normalen Installation auch nie. Das /boot nicht verschlüsselt ist, ist für mich kein Problem. Für andere vielleicht!? 32GB für Swap entspricht der Menge des verbauten Speichers in dem PC.
Anregungen und Meinungen sind hier wie immer willkommen.
Heute nochmal viel gelesen und da wurde meistens ein @home angelegt. Ok, dann wollen wir das auch mal machen.
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
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.
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.
btrfs subvolume create /tmp/debian/@home
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.
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
Dann können wir dem Subvolume die nötigen Benutzerrechte geben.
sudo chown -R frank:frank /tmp/debian
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!
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
Das mit den Namen der btrfs Subvolumes ist bekannt bei Timeshift. Im Readme steht dazu folgendes.
BTRFS volumes
BTRFS volumes must have an Ubuntu-type layout with @ and @home subvolumes. Other layouts are not supported. Systems having the @ subvolume and having /home on a non-BTRFS partition are also supported.
Text file busy / btrfs returned an error: 256 / Failed to create snapshot can occur if you have a Linux swapfile mounted within the @ or @home subvolumes which prevents snapshot from succeeding. Relocate the swapfile out of @ or *@home, for example into it's own subvolume like @swap.