Debian Bookworm 12 - Btrfs Installation
-
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.
- 1GB EFI
- 1GB Boot ext4 /boot
- 32GB Swap
- 466,1 GB physikalisches Volume für Verschlüsselung
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/"
Anmerkung
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.
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 zufriedenDa 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.
-
-
Star64 - Warnung
Angeheftet Star64 -
NanoPi5 - eMMC
Verschoben NanoPi R5S -
-
-
-
-
checkmk - Agent installieren
Verschoben checkmk