我正在小型 PC 中重复使用笔记本电脑的硬盘驱动器。 PC 是一台偶尔使用的计算机,除了休眠的虚拟机之外什么都没有,我通过 RDP 连接到它。计算机大部分时间处于断电状态。我可以通过 LAN 唤醒它,然后唤醒我需要的虚拟机。问题是,当我重新使用笔记本电脑硬盘时,我只是启动它,更新 Fedora 31 并继续使用它。
SSD 有两个分区:sda1
是/boot
,是一个包含、和交换分区sda2
的 LUKS 卷。问题是,当我从网络启动计算机时,它要求输入密码来解密。/
/home
/dev/sda2
这是lsblk
:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 465.3G 0 part
└─luks-151aef9f-a994-4495-a532-63899b1720d4 253:0 0 465.3G 0 crypt
├─fedora_patchtop-root 253:1 0 50G 0 lvm /
├─fedora_patchtop-swap 253:2 0 3.9G 0 lvm [SWAP]
└─fedora_patchtop-home 253:3 0 411.4G 0 lvm /home
sr0 11:0 1 1024M 0 rom
正如你所看到的,/dev/sda1
其中包含/dev/boot
的是不是加密的。
我希望我可以在启动时摆脱密码提示,因为这台计算机不再在我需要硬盘加密的环境中使用,而是我需要无人值守的启动功能。
现在,/dev/sda2
有一个钥匙槽正在使用(槽 0)。
我做的第一件事是转储密钥文件,如下所示:
cryptsetup luksDump /dev/sda2 --dump-master-key --master-key-file master.key
然后我输入了master.key
,/boot
因此它可以在未加密的分区上使用:
-r--------. 1 root root 64 Apr 18 10:15 /boot/master.key
现在到/etc/crypttab
.我的 crypttab 只有一行,如下所示:
luks-151aef9f-a994-4495-a532-63899b1720d4 UUID=151aef9f-a994-4495-a532-63899b1720d4 none
我将其更改为:
luks-151aef9f-a994-4495-a532-63899b1720d4 UUID=151aef9f-a994-4495-a532-63899b1720d4 /boot/master.key luks,initramfs
最后,我用 dracut 创建了一个新的 initramfs,如下所示:
dracut -vfN
但是,重新启动后,系统仍然要求我输入密码。
我还尝试制作一个新的密钥文件,并使用它作为 LUKS 设置的插槽 1 的密钥,它仍然不断询问我应该手动输入的密码。但是我不确定它是否一直要求我输入密码,因为插槽 0 仍然是手动密码,而且它只是从顶部开始,等等。
作为参考,这里是我的分区的 UUID,如果这很重要的话:
NAME UUID MOUNTPOINT
sda
├─sda1 43f00ca0-60d2-4c20-9b20-4ec914c575cf /boot
└─sda2 151aef9f-a994-4495-a532-63899b1720d4
└─luks-151aef9f-a994-4495-a532-63899b1720d4 RlyNgN-3ca3-cqvW-iljT-meWT-eqTO-h02Xh6
├─fedora_patchtop-root 60a53d2a-db9b-47be-991f-cdbdcfd8e72d /
├─fedora_patchtop-swap ef05de8f-cd1e-4491-b837-80656b91dc60 [SWAP]
└─fedora_patchtop-home 7b457fab-02a9-40f9-a22b-e0c16be2f137 /home
编辑
我又尝试了一件事:
首先,我创建了一个非常简单的密码:
cryptsetup luksAddKey /dev/sda2 --force-password
密码实际上是空的。主要原因是,如果我在这一点上遇到困难,我只需要在密码提示时按回车键即可。这效果相当好。
接下来,我将上述密钥添加到插槽 0 中:
cryptsetup luksChangeKey /dev/sda2 /boot/master.key --key-slot 0
我这样做的主要原因是因为我在 cryptsetup 的手册页中读到,密钥插槽是按顺序检查的。所以插槽 0,然后是插槽 1,等等。我想也许它仍然要求输入我的密码,因为那是插槽 0。所以,我使用了插槽 0 的密钥文件,这样密码就是第二插槽 1 中的选项。
再次,我生成了一个新的 initramfs 并重新启动,但没有雪茄。它仍然要求输入密码,但这一次,只需按回车键就足以启动它。
然而,情况仍然不尽如人意。我仍然需要在密码提示处按 Enter/Return 才能启动系统。这要求我至少在机器上连接一个键盘,但我的想法是,它几乎完全是无头的。所以没有显示器,也没有键盘。