為什麼我的加密 LVM 卷(LUKS 設備)不會在啟動時掛載?
我正在嘗試按照本指南設置加密卷
一切都已設置,但安裝加密卷在啟動時失敗並出現錯誤:
fsck.ext4:嘗試打開 /dev/mapper/safe_vault 時沒有這樣的文件或目錄 可能不存在的設備?
這是我的設置:
密碼表
$ sudo cat /etc/crypttab safe_vault /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b none luks
筆記:
來自
uuid
:$ sudo blkid /dev/mapper/<my_logical_group>-safe_vault /dev/mapper/<my_logical_group>-safe_vault: UUID="d266ae14-955e-4ee4-9612-326dd09a463b" TYPE="crypto_LUKS"
fstab
$ sudo cat /etc/fstab | grep safe_vault /dev/mapper/safe_vault /safe-vault ext4 defaults 0 2
我做了什麼…
所以我去了開發者的網站,在常見問題常見問題解答中他們說:
檢查您的核心中是否有設備映射器和 crypt 目標。“dmsetup targets”的輸出應該列出一個“crypt”目標。如果它不存在或命令失敗,請將設備映射器和 crypt-target 添加到核心。
所以我做了,結果我沒有
crypt
目標:$ sudo dmsetup targets striped v1.4.1 linear v1.1.1 error v1.0.1
問題是我不知道如何添加這樣的目標。
我認為這(沒有
crypt
目標)可能會導致crypttab
配置在啟動時被忽略,因此嘗試掛載條目fstab
失敗,因為cryptsetup
沒有將我的加密卷映射到/dev/mapper/safe_vault
.筆記:
加密卷可以成功手動映射、掛載和寫入:
$ sudo cryptsetup luksOpen /dev/mapper/<my_logical_group>-safe_vault safe_vault Enter passphrase for /dev/mapper/<my_logical_group>-safe_vault: $ sudo mount /dev/mapper/safe_vault /safe_vault
這是映射和安裝後的樣子:
$ sudo lsblk -o name,uuid,mountpoint NAME UUID MOUNTPOINT sda ├─sda1 28920b00-58d3-4941-889f-6249357c56ee ├─sda2 └─sda5 uhBLE7-Kcfe-RMi6-wrlX-xgVh-JfAc-PiXmBe ├─<my_logical_group>-root (dm-0) 1bed9027-3cf7-4f8d-abdb-28cf448fb426 / ├─<my_logical_group>-swap_1 (dm-1) a40c16c4-7d0c-46d7-afc8-99ab173c20bb [SWAP] ├─<my_logical_group>-home (dm-2) e458abb7-b263-452d-8670-814fa737f464 /home ├─<my_logical_group>-other (dm-3) 0a1eec42-6534-46e1-8eab-793d6f8e1003 /other └─<my_logical_group>-safe_vault (dm-4) d266ae14-955e-4ee4-9612-326dd09a463b └─safe_vault (dm-5) 9bbf9f47-8ad8-43d5-9c4c-dca033ba5925 /safe-vault sr0
更新
- 事實證明我確實有
crypt
目標,但要讓它出現,dmsetup targets
我必須先cryptsetup luksOpen <my-device>
UUID
根據@Mikhail Morfikov的回答,我嘗試使用s 代替,但它在啟動時仍然失敗。我仍然認為問題是加密卷
cryptsetup luksOpen
在啟動時沒有被映射(打開)因此不/dev/mapper/<safe_vault or UUID>
存在,然後嘗試掛載它(fstab)失敗。更新 2
事實證明,我沒有必要的腳本在啟動時掛載。請參閱@MikhailMorfikov 的答案中的註釋。
你必須注意 UUIDs 。例如,這是我的配置:
# lsblk -o name,uuid,mountpoint ├─sda2 727fa348-8804-4773-ae3d-f3e176d12dac │ └─sda2_crypt (dm-0) P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi │ ├─debian_crypt-swap (dm-1) 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0 [SWAP] │ ├─debian_crypt-tmp (dm-2) 93fc8219-f985-45fb-bd5c-2c7940a7512d /tmp │ ├─debian_crypt-home (dm-3) 12e8566c-8f0f-45ec-8524-6d9d9ee91eae /home │ └─debian_crypt-root (dm-4) 9685570b-4c9e-43ea-815e-49d10dc7a1bf /
我有一個帶有 4 個卷 (LVM) 的加密分區 (sda2)。我需要的是在正確的文件中設置兩個 UUID。sda2 UUID 進入,
/etc/crypttab
卷 UUID(例如 debian_crypt-root)進入/etc/fstab
.所以,它會是:
# cat /etc/crypttab sda2_crypt UUID=727fa348-8804-4773-ae3d-f3e176d12dac none luks # cat /etc/fstab UUID=9685570b-4c9e-43ea-815e-49d10dc7a1bf / ext4 defaults,errors=remount-ro 0 1
更改
/etc/crypttab
文件後,您必須重建 initramfs:# update-initramfs -u -k all
筆記
必須安裝該軟體包
cryptsetup
,因為它具有啟動腳本,支持在啟動時自動安裝加密卷。為什麼要提這個?好吧,如果您在安裝過程中設置了 LVM,Debian Wheezy 安裝了軟體包cryptsetup-bin,但沒有安裝 ,因此您擁有設置 LVM 和 LUKS 設備的工具
libcryptsetup4
,但沒有在引導時安裝 LUKS 設備所需的腳本。這些在cryptsetup包中。lvm2``cryptsetup