Partition wird nach Luks-Entschlüsselung nicht angezeigt

Partition wird nach Luks-Entschlüsselung nicht angezeigt

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 ddBefehl:

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.

verwandte Informationen