Ubuntu
LUKS 在內部硬碟上
我有一個使用 LUKS 加密的硬碟驅動器。它最初是一個外部硬碟驅動器。最近我卸下了外殼並直接連接(通過 SATA)。但是,我直接連接時,無法查看分區,也沒有提示輸入密碼。在 4 TB 中,它顯示 500 GB 的未知分區和 3.5 TB 的可用空間。
我將它從系統中刪除並再次連接為外部硬碟驅動器,ubuntu 檢測到分區,並提示輸入密碼。
此外,分區顯示為 MBR,而實際上它是 GPT
這可能是扇區大小的問題。一些 USB 機箱聲稱其驅動器具有 4KiB 扇區,而驅動器將自身表示為 512 字節扇區,反之亦然。不幸的是,分區表(msdos 和 gpt)取決於扇區大小。如果扇區大小發生變化,分區表就會失效。
現在,這是一個可以用軟體解決的問題——Linux 可以變得足夠聰明,可以正確解釋 GPT 分區表,而不管驅動器聲稱的物理扇區大小如何。但它並沒有這樣做,而且它可能不是標準的一部分,所以……
您需要做的是在 USB 閉合中獲取分區的確切字節偏移量
parted /dev/usbdrive unit b print free
然後查看這些分區偏移量是否適用於內部驅動器
losetup --find --show --read-only --offset 1048576 /dev/internaldrive file -s /dev/loopX
如果一切正常,請為內部磁碟重新創建具有相同(字節)偏移量的分區表(首先備份磁碟的前幾兆字節/最後幾兆字節)
parted /dev/internaldisk unit b mklabel gpt mkpart 1048576 42424242 ...
我不知道是否有一個分區器足夠聰明,可以自動“修復”這種錯誤扇區大小的分區表。它會擊敗手動方法,但……