尝试自动挂载加密分区时 Debian 启动失败

尝试自动挂载加密分区时 Debian 启动失败

我已经使用 dm-crypt/LUKS/cryptsetup 制作了一个非常彻底加密、平衡且功能良好的文件系统,但是我在第一次安装 Debian(jessie)时犯了一个错误,没有加密主文件夹。

由于这已经发展成为一个高度组织化和非常精简的系统,并且花了数周时间才建立起来,因此我想在对系统进行最小改动的情况下加密主文件夹。我已经在单独的驱动器上为用户创建的文档和项目设置了一个大型加密分区,所以我想:为什么不直接将主文件夹数据移到那里,然后将 Debian 指向它呢?

这显然需要自动挂载我想要在每次启动时使用的加密分区。目前,它仅在需要时使用调用“cryptsetup luksOpen”和“mount”的脚本进行挂载。因此,在输入“usermod -d”并在“/etc/default/useradd”中编辑“HOME=”之前,首要任务是自动挂载现有的、有效的加密分区。很简单,对吧?

好吧,我搞砸了,因为现在系统无法启动......

这是我所做的:

仔细阅读主题以确保我没有忽略任何内容后,我按顺序编辑了“/etc/crypttab”和“/etc/fstab”。

我的 crypttab 很简单:它包含两行。这些都是 Debian 安装程序在系统刚安装时添加的,我从来没有遇到过任何问题:

sda2_fsroot UUID=deadbeef-dead-beef-dead-beefdeadbeef none luks

sda3_swappart UUID=beefdead-beef-dead-beef-deadbeefdead none luks,swap

(显然我更改了此帖子的 UUID)

(是的,我知道我可以使用 urandom 作为交换的密钥文件。我想先解决这个问题)

我不确定要将哪个 UUID 添加到我要添加的额外行中,因为 blkid 显示了我尝试自动挂载的分区的“UUID”和“PARTUUID”(它是一个 GPT 分区)。我很难找到关于此问题的具体答案,因此我决定谨慎行事并按照手册操作,像这样输入 UUID:

文档 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none luks

(这里的 x 是我想要挂载的分区的 UUID,而不是 PARTUUID。我的来源是 blkid,我复制粘贴以确保我做对了)

(此行被添加为 crypttab 中现有两行正下方的新行)

然后我保存了 crypttab,并打开了 fstab。在 fstab 中,我简单地在最下面的一行(即 DVD 驱动器)下面添加了以下行:

/dev/mapper/documents /storage/documents ext4 默认值 0 2

(这里“/storage/documents”是我一直用于该分区的文件夹和挂载点)

根据我所读和所做,选项“ext4”、“defaults”、“0”和“2”都应该是正确的,为了防止出现像使用制表符而不是空格这样的愚蠢错误,我实际上是从现有的 sda2_fsroot 工作行中复制粘贴了这些选项(需要明确的是:sda2_fsroot 安装为 / )。

然后,经过一些额外的网络搜索和阅读后,我很不情愿地(因为这感觉就像做心脏手术)以 root 身份运行:

更新-initramfs -u

然后我重启了。但是还是不行……

系统提示我输入 fsroot 和 swappart 的密码。我输入了这两个密码,然后收到一条消息,提示 fsroot 上的块看起来没问题。然后什么都没有。系统从未要求我输入文档的密码。启动从未进行。

重新启动进入救援模式没有帮助。它在启动过程中也会冻结。

因为我想采取预防措施,无论这看起来多么简单,我实际上已经备份了“/boot/”(vmlinuz、initramfs 和另外两个)中的四个文件,就在我对 crypttab 和 fstab 进行更改并运行 update-initramfs 之前。

因此,在网上找不到任何答案后,我启动了一个 Debian 实时 DVD,确认我的所有加密驱动器仍然完好无损并可照常安装,并尝试将“/boot/”中的四个文件恢复到以前的状态,因为我怀疑 initramfs 是罪魁祸首(可能与 Debian 转向 stretch 有关?)。

为了更加安全,我没有删除 /boot/ 中的四个文件并替换它们:我认为这个文件夹/分区非常特殊,它可能依赖于占用驱动器上特殊扇区的文件。因此,为了确保万无一失,我使用“.bak”扩展名重命名了所有四个更新的文件,然后将具有“正确”文件名的旧版本复制到“/boot/”,将两个版本都保留在文件夹中。

结果?

现在我甚至不需要输入密码...当我启动时,我看到一个黑屏,上面有一个闪烁的下划线,就像 CPU 停止了一样。

现在我该怎么做?

我只是不太了解 initramfs、fstab 等的底层细节,而且我真的很惊讶这些东西如此容易被破坏,即使我尝试做好准备并小心谨慎!

任何帮助将不胜感激!

相关内容