LUKS 分割區自動掛載在啟動時失敗

LUKS 分割區自動掛載在啟動時失敗

我有一個加密的 Ubuntu 14.04 桌面設定。加密的根分割區是使用 Ubuntu 安裝程式預設參數建立的(選擇「清除磁碟並安裝 Ubuntu」和「加密新的 Ubuntu 安裝」)。這部分工作正常(它在啟動時要求輸入密碼並打開根分區和交換分區)。

後來我又增加了第二個驅動器,使用儲存在根分割區上的金鑰檔案單獨加密。目的是讓它在根分區打開時自動打開。為此,第二個磁碟機被加入到 crypttab (透過 UUID)及其加密檔案系統 - fstab (透過標籤、掛載點/stg)。

啟動時,輸入主解密密碼後,我得到以下資訊:安裝 /stg 時發生錯誤。按 S 跳過安裝或按 M 手動恢復

奇怪的是,如果我按中號然後簡單地運行mount -a,它就安裝成功了。我沒有看到任何可疑之處/var/log/syslog

那是怎麼回事?我可以檢查什麼來診斷問題?


[UPD - 增加了一些細節]此磁碟機sdb有一個包含一個分割區的 MBR 分割區表。使用以下命令初始化加密檔案系統:

cryptsetup luksFormat /dev/sdb1 /root/stg.key
cryptsetup luksOpen /dev/sdb1 stg_crypt -d/root/stg.key
mkfs.ext4 /dev/mapper/stg_crypt -Lstg-tmp

/etc/crypttab(為簡潔起見,實際 uuid 替換為文字“uuid-of-...”):

# this entry was created by Ubuntu installer
sda5_crypt UUID=uuid-of-sda5 none luks,discard

# this entry was added by me
stg_crypt  UUID=uuid-of-sdb1 /root/stg.key luks,discard

/etc/fstab:

# these entries were created by Ubuntu installer
/dev/mapper/ubuntu--vg-root   /      ext4 errors=remount-ro 0 1
UUID=uuid-of-sda1             /boot  ext2 defaults          0 2
/dev/mapper/ubuntu--vg-swap_1 none   swap sw                0 0

# this entry was added by me
LABEL=stg-tmp                 /stg   ext4 errors=remount-ro 1 2

答案1

有趣的是,用設備路徑替換標籤引用fstab可以解決問題!即:LABEL=stg-tmp改為/dev/mapper/stg_crypt.

我也嘗試過UUID參考,但沒用。因此,顯然,引導期間的 LABEL 和 UUID 引用適用於實體分割區,但不適用於加密分割區。但它們確實適用mount -a於任何分區。

作為解決方案,這並不是很令人滿意(例如,它缺乏解釋),但它解決了手頭上的問題,所以我想現在還可以。

答案2

首先想到的是 intramfs 沒有看到密鑰檔(正常行為)

幾個修復包括:

為 /stg 新增/建立後備密碼,如此處提到的

為 Luks 添加後備 (向下捲動至新增後備密碼部分)

新增 dd if=/dev/usbkey bs=512 Skip=4 count=8 | cryptsetup luksOpen /dev/md0 luksVolume --key-file=- && mount /dev/mapper/luksVolume /mnt/

建立或使用 cryptsetup-reencrypt (在儲存庫中但未預設安裝)

相關內容