Jedes Mal, wenn ich mein Luks-Laufwerk entschlüssele, wird die Partition nicht angezeigt:
cryptsetup -v luksOpen /dev/md0 md0_crypt
lsblk
sdb 8:16 0 3,7T 0 disk
└─sdb1 8:17 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
sdc 8:32 0 3,7T 0 disk
└─sdc1 8:33 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
sdd 8:48 0 3,7T 0 disk
└─sdd1 8:49 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
wenn ich partprobe ausführe
partprobe
lsblk
sdb 8:16 0 3,7T 0 disk
└─sdb1 8:17 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
└─md0_crypt1 253:12 0 7,3T 0 part
sdc 8:32 0 3,7T 0 disk
└─sdc1 8:33 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
└─md0_crypt1 253:12 0 7,3T 0 part
sdd 8:48 0 3,7T 0 disk
└─sdd1 8:49 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
└─md0_crypt1 253:12 0 7,3T 0 part
fdisk:
Disk /dev/mapper/md0_crypt: 7,3 TiB, 8001299677184 bytes, 15627538432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disklabel type: gpt
Disk identifier: A599A15F-07DA-B340-ADDC-AA56AE2E9249
Device Start End Sectors Size Type
/dev/mapper/md0_crypt-part1 2048 15627536383 15627534336 7,3T Linux
Ich möchte die Partition md0_crypt1 bei jedem Booten mounten, aber ohne jedes Mal partprobe auszuführen.
Habe ich etwas verpasst?
Antwort1
Es ist ungewöhnlich, LUKS/LVM-Geräte zu partitionieren, und daher wird dies von den meisten Standardtools nicht abgedeckt. Tatsächlich ist das Verstecken von Partitionen auf Device Mapper-Geräten eine Funktion, da virtuelle Maschinen, die logische Volumes als Sicherungsgeräte verwenden, diese normalerweise partitionieren würden, aber NICHT möchten, dass ihre Partitionen auf dem Host angezeigt werden.
Ich möchte die Partition md0_crypt1 bei jedem Booten mounten, aber ohne jedes Mal partprobe auszuführen.
Sie sind mehr oder weniger damit beschäftigt. Und wenn Sie es erst einmal irgendwo in Ihr Init-Skript einbauen, werden Sie den Unterschied nicht einmal bemerken ... (mit anderen Worten: automatisieren Sie es)
Erstellen Sie eine Sicherungskopie, bevor Sie etwas unterhalb dieses Punktes versuchen.
Tun Sie dies auch von einer Live-CD, auf der nichts gemountet ist.
Option 1)
Sie könnten die überflüssige Partitionstabelle vollständig entfernen (alle Daten um 2048s verschieben, also den Offset der ersten und einzigen Partition). Sehr gefährlicher dd
Befehl:
dd status=progress bs=1M if=/dev/mapper/md0_crypt1 of=/dev/mapper/md0_crypt
Hinweis: Bei dieser Vorgehensweise muss sichergestellt werden, dass Daten, die noch nicht gelesen wurden, nicht überschrieben werden. In die andere Richtung würde dies also nicht funktionieren.
Option 2)
Das Konvertieren der Partitionstabelle in LVM ist möglicherweise auch machbar (und erfordert keine Datenverschiebung), allerdings bevorzugt LVM heutzutage einen größeren Metadatenbereich und setzt Signaturen gerne auf Null und löscht sie. Sie müssen also darauf achten, dies zu vermeiden und sicherzustellen, dass das 1. PE bei 1 MB und nicht bei 2 MB oder anderen größeren Standardwerten beginnt.
[ replace /dev/loop0 with /dev/mapper/md0_crypt ]
# vgcreate --dataalignment 1M --metadatasize 128K vgname /dev/loop0
[ this step will wipe GPT signature ]
# pvs -o +pe_start /dev/loop0
PV VG Fmt Attr PSize PFree 1st PE
/dev/loop0 foobar lvm2 a-- 1020.00m 0 1.00m
^^^^^^^
[ 1st PE must be 1.00m (2048s) otherwise abort mission! ]
# lvcreate --wipesignatures n --zero n -l100%FREE -n lvname vgname
# file -sL /dev/vgname/lvname
/dev/vgname/lvname: Linux rev 1.0 ext4 filesystem data [...]
[ if there's no filesystem, something went wrong ]
Dies ist möglich, sollte aber nicht ohne eine vollständige Sicherung versucht werden.