我有一個加密的 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 (在儲存庫中但未預設安裝)