LUKS+Btrfs mounten mit Compression

Mountainking02

Cadet 4th Year
Registriert
Nov. 2012
Beiträge
111
Hi,

würde gerne eine externe HDD mit LUKS verschlüsseln und mit einem Btrfs Dateisystem formatieren.
Für die Verschlüsselung der externen HDDs will ich Passwörter verwenden und keine Keyfiles.
Zudem möchte ich Dateien komprimieren per compress=zstd:3 Option.

Jetzt habe ich aber einen Knoten im Kopf.
Denn im Unterschied zu ZFS wo diese Komprimierungsoption im Dateisystem gespeichert wird,
muss man bei Btrfs diese Option dem mount Aufruf mitgeben.
Das Btrfs Dateisystem weiß nichts davon das Compression verwendet werden soll.

Jetzt wird mir in Fedora wenn ich die externe Platte anschließe diese netterweise im Dateiexplorer angezeigt und
man kann diese durch anklicken und anschließender Eingabe des Passwortes direkt mounten. Toll.
Nur fürchte ich, dass mittels dieses Weges die z.B. Compression Option nicht beim mount gesetzt wird?

Wie also ist das von der Handhabung her gedacht?
Kann doch nicht sein, dass ich nun umständlich per Terminal die HDD mounten muss mit allen Optionen oder mir dazu ein Skript schreiben muss?
 
in /etc/crypttab
volume-name encrypted-device key-file options
Was dann bei dir so aussehen sollte:
mydrive UUID=deine-uuid none luks
unten bei examples sind Beispiele:
https://www.freedesktop.org/software/systemd/man/247/crypttab.html

und in /etc/fstab
/dev/mapper/mydrive /media/mydrive btrfs compress=zstd:3,noatime,nofail,x-systemd.automount 0 0


Mountainking02 schrieb:
Jetzt wird mir in Fedora wenn ich die externe Platte anschließe diese netterweise im Dateiexplorer angezeigt und
man kann diese durch anklicken und anschließender Eingabe des Passwortes direkt mounten. Toll.
Nur fürchte ich, dass mittels dieses Weges die z.B. Compression Option nicht beim mount gesetzt wird?
ansonste solltest du das ueber eine udisks regel abfangen koennen sollen.
Nutzt du was gnome basiertes?
Ergänzung ()

ansonsten:
btrfs filesystem defrag -czstd .
damit erzwingst du die Komprimierung aller nicht komprimierten dateien
Ergänzung ()

ah, da ist die udisk version.. lange nicht gesehen den thread
https://bbs.archlinux.org/viewtopic.php?id=274853
 
  • Gefällt mir
Reaktionen: Mountainking02, Sensei21, kieleich und 4 andere
Danke, das ließt sich schon mal gut. Werde es ausprobieren. Allerdings habe ich wie gesagt kein Keyfile sondern Passwort. Genau, nutze Gnome.
 
Also jetzt habe ich es mal ausprobiert:

/etc/crypttab:
MYEXTDRIVE /dev/disk/by-id/XXXXXXXXXX none luks,discard

/etc/fstab:
/dev/mapper/MYEXTDRIVE /run/media/user/MYEXTDRIVE btrfs defaults,noatime,nofail,compress=zstd:3 0 0

Ergebnis:
Nach einem Boot frägt der PC nach dem Passwort der externen Platte. In Gnome ist das "MYEXTDRIVE" nun aber nicht eingehängt. Scheinbar nur der LUKS Container. Klickt man auf diesen wird man ein zweites Mal zur Eingabe des Passwort aufgefordert. Woran kann das liegen?

Und kann man irgendwie gegenprüfen, dass die Dateien nun komprimiert werden?
 
Zuletzt bearbeitet:
Nach den ganzen Tests mache ich nun einen ersten Backup Lauf. ALTER IST DAS SCHNELL. Wie langsam war bitte OpenZFS? Das Backup ist gefühlt dreimal so schnell und auch die CPU die bei einem Backup immer am MAX war dümpelt jetzt bei 40-50% rum. Das wirft aber irgendwie die Frage auf ob denn die Compression auch wirklich funktioniert. Am Ende ist es deshalb so schnell. Oder BTRFS - weil im Kernel - kann die Hardware WESENTLICH besser ansprechen. OpenZFS musste ja diverse Krücken einbauen um überhaupt noch zu funktionieren.
 
Mountainking02 schrieb:
würde gerne eine externe HDD mit LUKS verschlüsseln und mit einem Btrfs Dateisystem formatieren.
Meine bewährte Komplettlösung (wichtig: LUKS2): :)
Bash:
# Ziellaufwerk und Name (ohne Leerzeichen):
lw=/dev/sdX
n=Backup1

# Löschen und Partition an 4k ausgerichtet über die komplette Kapazität:
sudo sgdisk -ZIa8 -n0:0:0 -p $lw

# 4k = optimal:
sudo cryptsetup luksFormat $lw"1" -qy --sector-size 4096

# dass trimmen erlauft ist (schadet bei HDDs nicht):
sudo cryptsetup --allow-discards --persistent open $lw"1" ctmp

# btrfs optimal:
sudo mkfs.btrfs -L $n -O bgt -n 64k /dev/mapper/ctmp
sudo mount /dev/mapper/ctmp /mnt/
# damit jeder schreiben kann:
sudo chmod 777 /mnt/
# automatisch mit aktivierter zstd-Komprimierung (Standardstufe 3):
sudo btrfs property set /mnt/ compression zstd
# optimiert die reservierten Bereiche:
sudo btrfs balance start -{d,m}usage=55 /mnt/
sudo umount /mnt/
sudo cryptsetup close ctmp

Siehe dazu auch hier.

Mountainking02 schrieb:
Und kann man irgendwie gegenprüfen, dass die Dateien nun komprimiert werden?
Mit compsize, z. B.:
Bash:
$ sudo compsize /run/media/user/Backup/
Processed 2612640 files, 327421 regular extents (1800192 refs), 1227125 inline.
Type       Perc     Disk Usage   Uncompressed Referenced
TOTAL       96%      213G         221G         403G    
none       100%      209G         209G         334G    
zstd        35%      4.3G          12G          68G
Da Bilder, Videos, Musik usw. ja schon komprimiert sind, werden die nicht nochmal komprimiert: btrfs erkennt das ziemlich effizient.
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben