Lvm

為什麼我的加密 LVM 卷(LUKS 設備)不會在啟動時掛載?

  • July 29, 2020

我正在嘗試按照本指南設置加密卷

一切都已設置,但安裝加密卷在啟動時失敗並出現錯誤:

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

引用自:https://unix.stackexchange.com/questions/107810