我正在尝试按照本指南设置加密卷
一切都已设置,但安装加密卷在启动时失败并显示错误:
fsck.ext4:尝试打开 /dev/mapper/safe_vault 时没有这样的文件或目录 可能不存在的设备?
$ sudo cat /etc/crypttab
safe_vault /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b none luks
Run Code Online (Sandbox Code Playgroud)
笔记:
将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"
Run Code Online (Sandbox Code Playgroud)
$ sudo cat /etc/fstab | grep safe_vault
/dev/mapper/safe_vault /safe-vault ext4 defaults 0 2
Run Code Online (Sandbox Code Playgroud)
所以我去了开发者的网站,在常见问题常见问题解答中他们说:
检查您的内核中是否有设备映射器和 crypt 目标。“dmsetup targets”的输出应该列出一个“crypt”目标。如果它不存在或命令失败,请将设备映射器和 crypt-target 添加到内核。
所以我做了,结果我没有crypt目标:
$ sudo dmsetup targets
striped v1.4.1
linear v1.1.1
error v1.0.1
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何添加这样的目标。
我认为这(没有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
Run Code Online (Sandbox Code Playgroud)
这是映射和安装后的样子:
$ 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
Run Code Online (Sandbox Code Playgroud)
更新
crypt目标,但要让它出现,dmsetup targets我必须先cryptsetup luksOpen <my-device>UUID根据@Mikhail Morfikov 的回答,我尝试使用s 代替,但它在启动时仍然失败。我仍然认为问题在于加密卷cryptsetup luksOpen在启动时没有被映射(打开),因此不/dev/mapper/<safe_vault or UUID>存在,然后尝试挂载它(fstab)失败。
更新 2
事实证明,我没有在启动时挂载所需的脚本。请参阅@MikhailMorfikov 的回答中的注释。
Mik*_*kov 20
你必须注意 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 /
Run Code Online (Sandbox Code Playgroud)
我有一个带有 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
Run Code Online (Sandbox Code Playgroud)
更改/etc/crypttab文件后,您必须重建initramfs:
# update-initramfs -u -k all
Run Code Online (Sandbox Code Playgroud)
笔记
cryptsetup必须安装该软件包,因为它具有启动脚本,支持在启动时自动挂载加密卷。
为什么要提这个?好吧,如果安装Debian的喘息期间,您设置LVM安装软件包cryptsetup斌,libcryptsetup4和lvm2而不是cryptsetup,因此你可以使用工具来设置LVM和陆氏设备,但没有脚本需要在引导时挂载LUKS设备。那些来自包cryptsetup。
| 归档时间: |
|
| 查看次数: |
75327 次 |
| 最近记录: |