每次我解密我的 luks 驅動器時,分割區都不會顯示:
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
當我運行partprobe時
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
磁碟機:
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
我想每次啟動時都掛載 md0_crypt1 分割區。但無需每次都運行partprobe。
我錯過了什麼?
答案1
對 LUKS/LVM 設備進行分割並不常見,因此大多數標準工具都沒有涵蓋這一點。事實上,將分割區隱藏在裝置映射器裝置上是一項功能,因為使用邏輯磁碟區作為支援裝置的虛擬機器通常會對這些分割區進行分割區,但不希望其分割區顯示在主機上。
我想每次啟動時都掛載 md0_crypt1 分割區。但無需每次都運行partprobe。
你幾乎被它困住了。一旦你將它放入你的初始化腳本中的某個地方,你甚至不會注意到差異...(換句話說:自動化它)
在嘗試低於此點的任何操作之前,請先進行備份。
也可以從未安裝任何內容的 LiveCD 來執行此操作。
選項1)
您可以完全刪除多餘的分割區表(將所有資料移動 2048 秒,即第一個也是唯一一個分割區的偏移量)。高度危險的dd
命令:
dd status=progress bs=1M if=/dev/mapper/md0_crypt1 of=/dev/mapper/md0_crypt
注意:像這樣的 dd'ing 必須確保不會覆蓋尚未讀取的數據,因此這在另一個方向上不起作用。
選項2)
將分區表轉換為 LVM 也可能是可行的(並且不需要重新定位任何資料),但是 LVM 現在更喜歡更大的元資料區域,並且也喜歡清除和擦除簽章。因此,您必須小心避免這些情況,並確保第一個 PE 從 1M 開始,而不是 2M 或其他更大的預設值。
[ 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 ]
可以這樣做,但在沒有完整備份的情況下不應嘗試。