[✓] Debian mit LUKS, btrfs, systemd-boot auf SSD

sia

gesperrt
Registriert
26 März 2015
Beiträge
5.926
Ort
FFM (NSFW)
Hi Leute,

Ich finde systemd und Btrfs toll, möchte mein System verschlüsseln und Debian testing als rolling-Distribution verwenden. Das Debian testing habe ich – mit Lücken – von meinem alten Laptop noch als Backup auf meinem Server gefunden, mit dem Desktop möchte ich das jetzt via Festplattendock auf die neue SSD kopieren und diese dann einbauen. "Früher" hatte das System auf dem Laptop aber Grub2 und ext4, was ich nicht mehr möchte.

Ich habe folgendes Partitionslayout angelegt:
Code:
Expand Collapse Copy
# lsblk -o NAME,FSTYPE,LABEL
NAME                            FSTYPE      LABEL
sdx                                         
├─sdx1                          vfat        ESP
└─sdx2                          crypto_LUKS 
  └─lvm                         LVM2_member 
    ├─phre4k--vg-cryptswap      swap        cryptswap
    └─phre4k--vg-system         btrfs       root

Die Btrfs-Systempartition sieht folgendermaßen aus:

Code:
Expand Collapse Copy
# du -sh ./*
12M	bin
12M	etc
1,3G	home
512M	lib
4,0K	lib64
168K	root
12M	sbin
0	tmp
4,6G	usr
1,8G	var

Fragen:
  • Muss ich die anderen (leeren) Ordner (boot, dev, media, mnt, opt, proc, run, srv, sys) auch noch anlegen? Wenn ja, warum?
  • Wie bringe ich systemd-boot (ehem. gummiboot) dazu, sdx2 zu mounten und von der btrfs-Partition zu booten?
  • Woher bekomme ich den Inhalt von /boot (also Kernel, initrd etc.), wenn ich vergessen habe, das zu sichern? chroot in's Debian-System und mkinitcpio?
  • Wie ? Wahrscheinlich nicht im btrfs, richtig?
  • Habe ich irgendwas Dummes vor?
 
Zuletzt bearbeitet:
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

@phre4k: Warum diesen Aufwand? Installier dir halt Debian Testing, zieh dein Home-Verzeichnis um und gut ists... Testing bekommst du zwar nicht auf der Website als ISO, kannst aber aus einem installierten (Minimalst-)System jederzeit upgraden. Dazu einfach die sources.list umschreiben und anschließend ein apt-get dist-upgrade.

Zu deinen Fragen:
/boot darf nicht leer sein (die Frage hast du dir ja eigentlich selbst beantwortet), und muss vorhanden sein. /dev muss AFAIK ebenso wie /run, /sys und /proc angelegt werden, der Rest dürfte egal sein.
systemd-boot hab ich keine Ahnung, ich arbeite auf Grub2
Inhalt von /boot - am Einfachsten über ne Installation nach obigem Schema; die richtet dir TRIM meineswissens auch gleich selbst ein
TRIM geht nicht bei LUKS-Laufwerken, da die Festplatte nicht weiß, was verschlüsselte Nutzdaten und was verschlüsselter Müll ist
Ob du was Dummes vorhast? Glaub ich nicht, eher was unnötig umständliches.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #3
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

Bevor ich am Ende ein Setup habe, was mich nicht 100% zufriedenstellt, mache ich es lieber ein Mal richtig. Habe ich bei meinem Desktop genauso gemacht, und dessen Installation zieht jetzt seit ca. 2011 auf die verschiedenen PCs um. Klar, dpkg --get-selections und --set-selections könnte mich auch zu einem funktionierenden Setup führen, aber ich habe ja schon ein Setup. Es funktioniert nur (noch) nicht. Lieber 30min nachdenken als 30min unnötig neu installieren.

Testing bekommst du zwar nicht auf der Website als ISO, kannst aber aus einem installierten (Minimalst-)System jederzeit upgraden. Dazu einfach die sources.list umschreiben und anschließend ein apt-get dist-upgrade.
Schon klar. Was meinst du, wie ich vorher testing installiert hatte? :p

TRIM geht nicht bei LUKS-Laufwerken, da die Festplatte nicht weiß, was verschlüsselte Nutzdaten und was verschlüsselter Müll ist
Doch, geht, siehe Link. Die Sicherheits-"Probleme" von TRIM bei LUKS kenne ich. Die Frage sollte wohl eher lauten "was ist TRIM-Passthrough? Kann ich dem Namen nach bei meiner Systempartition TRIM aktivieren?".

EDIT: Habe es jetzt mal mit nem chroot probiert:
Code:
Expand Collapse Copy
mount -t proc proc /mnt/tmp/proc
mount -t sysfs sys /mnt/tmp/sys 
mount -o bind /dev tmp/dev                                                                                         :(
mount -o bind /dev/pts tmp/dev/pts
chroot tmp /bin/bash       
root@cw-lpc:/# ls
bash: ls: Kommando nicht gefunden.
echo $PATH
/home/phre4k/.gem/ruby/2.3.0/bin:/usr/lib/hardening-wrapper/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
Äh, muss ich irgendwie noch das Environment ändern? :D
Ich glaube, ich bin gerade betriebsblind…
 
Zuletzt bearbeitet:
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

[*]Wie ? Wahrscheinlich nicht im btrfs, richtig?

Am einfachsten dürfte es wohl sein, wenn man den Eintrag im Bootloader um allow-discards erweitert. Führt man dann [KW]cryptsetup status Volumegroup[/KW] aus, sollte in der letzten Zeile [KW]flags: discard[/KW] stehen. Wenn das geklappt hat, müsste es reichen, wenn man mittels [KW]systemctl enable fstrim.timer[/KW] den Timer für trim aktiviert.
 
  • Thread Starter Thread Starter
  • #5
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

Okay, bin jetzt ein wenig mehr nach diesem Guide vorgegangen:


Das chroot-Problem habe ich mit

Code:
Expand Collapse Copy
source /etc/profile

lösen können. Habe jetzt das System soweit rüberkopiert, fehlt nur noch /boot...

Ich möchte ja einen EFI-Boot haben. Die ESP ist als /boot gemountet, grub-efi (vorerst, um eventuell ein funktionierendes System zu bekommen) folgendermaßen installiert:

Code:
Expand Collapse Copy
# grub-install --efi-directory=/boot --no-nvram /dev/sdc
Installing for x86_64-efi platform.
Installation finished. No error reported.

Klingt ja schon mal ganz gut, die Dateien sind auch auf der Partition. Aber da ich ja im chroot bin, weiß Grub ja nicht, dass es von einer verschlüsselten Partition booten soll. Wie bringe ich ihm das bei?

EDIT: Anscheinend können die Live-Images mit UEFI-Installationen nicht so viel anfangen. Oh mann.

At this point, UEFI support exists only in Debian's installation images. The accompanying live images do not have support for UEFI boot, as the live-build software used to generate them still does not include it. Hopefully the debian-live developers will add this important feature soon.

 
Zuletzt bearbeitet:
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

UEFI ist leider immer noch so ein Thema unter Linux. Ich hab es mir gar nicht erst angetan und daher meine Rechner so eingestellt, dass sie im Legacy-Modus (aka Bios-Modus) starten.
 
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

@phre4k: Warum diesen Aufwand? Installier dir halt Debian Testing, zieh dein Home-Verzeichnis um und gut ists... Testing bekommst du zwar nicht auf der Website als ISO, kannst aber aus einem installierten (Minimalst-)System jederzeit upgraden. Dazu einfach die sources.list umschreiben und anschließend ein apt-get dist-upgrade.
Doch bekommt man - .
 
  • Thread Starter Thread Starter
  • #8
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

Joah, mit dem Installer statt der Live-Version hat es dann geklappt. Musste noch /boot anlegen und dann hat alles funktioniert :)

Ich würde gerne solche und andere Probleme mit FLOSS lösen, aber leider fehlt mir die Zeit :/

Bin nur froh, dass das Thema schon bekannt ist und bearbeitet wird.

Code:
Expand Collapse Copy
$ lsblk -o NAME,FSTYPE,LABEL
NAME                         FSTYPE      LABEL
sda                                      
├─sda1                       vfat        
├─sda2                       ext2        
└─sda3                       crypto_LUKS 
  └─sda3_crypt               LVM2_member 
    ├─phre4k--vg-root        btrfs       system
    └─phre4k--vg-swap_1      swap

EDIT: TRIM-Passthrough muss ich noch aktivieren, aber das ist ja erst mal nebensächlich. Wenn mir langweilig ist, recherchiere ich mal :D

wie würde ich die Discards-Option in Grub hinzufügen? In /boot und /etc/grub.d/ sehe ich nur automatisch erstellte Dateien, bei gummiboot – was ich sonst immer verwende – kann man einfach die in /boot bearbeiten...
 
Zuletzt bearbeitet:
Re: Debian mit LUKS, btrfs, systemd-boot auf SSD

Zu Grub und Gummiboot kann ich nichts sagen, da ich ausschließlich syslinux verwende. In meiner syslinux.cfg sieht die betreffende Zeile wie folgt aus

APPEND cryptdevice=/dev/sda2:main:allow-discards root=/dev/mapper/main-root rw lang=de locale=de_DE.UTF-8 elevator=noop quiet loglevel=3 splash
 
Zurück
Oben