Skip to content

Debian Bookworm 12 - Btrfs Installation

Linux
  • 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.

    20230409_114701.jpg

    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.

  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • 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.

    20230416_165735.jpg

    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.

    249b211f-38a0-42b2-9567-fec66596eb89-grafik.png

    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.

  • Redis - Zweite Instanz

    Redis
    1
    0 Stimmen
    1 Beiträge
    232 Aufrufe
    Niemand hat geantwortet
  • Debian 11 Bullseye released!

    Linux
    4
    0 Stimmen
    4 Beiträge
    303 Aufrufe
    FrankMF

    Mein Systemadmin auf der Arbeit meinte heute, angesprochen auf das Problem, läuft der Network-Manager? Ok, gute Frage...... Schauen wir mal.

    Ich bin mir leider nicht 100% sicher, ob er vor meinem Eingreifen lief, ich denke aber schon. Warum ich unsicher bin?

    root@debian:~# systemctl enable systemd-networkd.service Created symlink /etc/systemd/system/dbus-org.freedesktop.network1.service → /lib/systemd/system/systemd-networkd.service. Created symlink /etc/systemd/system/multi-user.target.wants/systemd-networkd.service → /lib/systemd/system/systemd-networkd.service. Created symlink /etc/systemd/system/sockets.target.wants/systemd-networkd.socket → /lib/systemd/system/systemd-networkd.socket. Created symlink /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service → /lib/systemd/system/systemd-networkd-wait-online.service.

    Ok, danach

    root@debian:~# systemctl start systemd-networkd.service root@debian:~# systemctl status systemd-networkd.service ● systemd-networkd.service - Network Service Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; ven> Active: active (running) since Tue 2021-08-17 17:36:38 CEST; 6s ago TriggeredBy: ● systemd-networkd.socket Docs: man:systemd-networkd.service(8) Main PID: 1288 (systemd-network) Status: "Processing requests..." Tasks: 1 (limit: 19087) Memory: 3.9M CPU: 39ms CGroup: /system.slice/systemd-networkd.service └─1288 /lib/systemd/systemd-networkd Aug 17 17:36:38 debian systemd[1]: Starting Network Service... Aug 17 17:36:38 debian systemd-networkd[1288]: enp25s0: Gained IPv6LL Aug 17 17:36:38 debian systemd-networkd[1288]: Enumeration completed Aug 17 17:36:38 debian systemd[1]: Started Network Service.

    Danach ging immer noch nix.

    root@debian:/etc/network# ^C root@debian:/etc/network# nmcli device show GENERAL.DEVICE: wlx7cdd907cbec2 GENERAL.TYPE: wifi GENERAL.HWADDR: BA:59:C0:76:C7:F5 GENERAL.MTU: 1500 GENERAL.STATE: 20 (nicht verfügbar) GENERAL.CONNECTION: -- GENERAL.CON-PATH: -- GENERAL.DEVICE: enp25s0 GENERAL.TYPE: ethernet GENERAL.HWADDR: 30:9C:23:60:C6:8E GENERAL.MTU: 1500 GENERAL.STATE: 10 (nicht verwaltet) GENERAL.CONNECTION: -- GENERAL.CON-PATH: -- WIRED-PROPERTIES.CARRIER: an IP4.ADDRESS[1]: 192.168.3.169/24 IP4.GATEWAY: 192.168.3.1 IP4.ROUTE[1]: dst = 192.168.3.0/24, nh = 0.0.0.0, mt = 0 IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.3.1, mt = 0 IP6.ADDRESS[1]: 2a02:908:1260:13bc:329c:23ff:xxxx:xxxx/64 IP6.ADDRESS[2]: fd8a:6ff:2880:0:329c:23ff:fe60:c68e/64 IP6.ADDRESS[3]: fe80::329c:23ff:fe60:c68e/64 IP6.GATEWAY: fe80::e4d3:f0ff:fe8f:2354 IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 256 IP6.ROUTE[2]: dst = ::/0, nh = fe80::e4d3:f0ff:fe8f:2354, mt = 1024 IP6.ROUTE[3]: dst = 2a02:908:xxxx:xxxx::/64, nh = ::, mt = 256 IP6.ROUTE[4]: dst = fd8a:6ff:2880::/64, nh = ::, mt = 256

    Jetzt hatte ich das erste Mal einen Ansatz, wonach ich suchen musste.

    GENERAL.STATE: 10 (nicht verwaltet)

    Etwas Suche im Netz und dann das

    nano /etc/NetworkManager/NetworkManager.conf

    Inhalt der Datei

    [main] plugins=ifupdown,keyfile [ifupdown] managed=false

    Das false in true geändert. Danach ein

    systemctl restart NetworkManager

    und ich konnte den Network-Manager auf dem Desktop benutzen!?!?!?

    Bildschirmfoto vom 2021-08-17 18-07-25.png

    Irgendwas ist da durcheinander im Bullseye 😳

  • Ubiquiti ER-X - Firewall

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    260 Aufrufe
    Niemand hat geantwortet
  • NanoPi R2S - OpenWRT

    Verschoben NanoPi R2S
    6
    0 Stimmen
    6 Beiträge
    606 Aufrufe
    FrankMF

    @thrakath1980 Ich wollte noch auf ein Thema zurück kommen. Das Original OpenWRT auf dem R2S ist ja ein Snapshot. Den kann man ohne Probleme aktualisieren. Unten ist dann ein Haken mit "Keep settings...."

    Gerade probiert, ging einwandfrei. Netzwerkeinstellungen und Firewall Settings blieben erhalten.

  • SSH sign_and_send_pubkey: signing failed: agent refused operation

    Linux
    1
    1 Stimmen
    1 Beiträge
    230 Aufrufe
    Niemand hat geantwortet
  • Node.js Paketmanager npm Sicherheitsproblem!

    Linux
    1
    0 Stimmen
    1 Beiträge
    236 Aufrufe
    Niemand hat geantwortet
  • mdadm

    Verschoben Linux
    5
    0 Stimmen
    5 Beiträge
    395 Aufrufe
    FrankMF

    Nachdem ich die SATA-Karte gewechselt habe, sind meine Probleme verschwunden. Mein NAS läuft seit Monaten einwandfrei.

    rock64@rp64v_2_1_NAS:~$ uptime 21:57:50 up 73 days, 4:44, 1 user, load average: 0,00, 0,00, 0,00

    https://forum.frank-mankel.org/topic/299/sata-karte-marvell-88se9230-chipsatz/16

  • HDD umbenennen

    Linux
    1
    0 Stimmen
    1 Beiträge
    388 Aufrufe
    Niemand hat geantwortet