7.2. 挂载加密卷

假如您在安装的时候创建了加密卷并设置了挂载点,在启动的时候每个这样的卷将会要求输入密码。

通过 dm-crypt 加密的分区,启动的时候会有下面的提示信息:

Starting early crypto disks... part_crypt(starting)
Enter LUKS passphrase:

提示的第一行,part 是底下分区的名称,如:sda2 或 md0。您也许想知道输入密码的具体 是哪一卷。它是与 /home 相关?或者是 /var?当然,如果您只有一个加密卷,只需输入密码就可以轻松地建立起该卷。假如您在安装过程中建立了多个加密卷,把上一步第 6.3.4.6 节 “配置加密卷”里的记录放在手边。要是之前没有记下 part_crypt 和挂载点之间的映射关系,仍然可以在新系统的 /etc/crypttab/etc/fstab 里面找到它。

根文件系统加载的时候,提示信息或许会有些不同。这取决于使用了哪个 initamfs 生成器制作用于启动的 initrd。下面的例子是使用 initramfs-tools 生成的 initrd:

Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
Enter LUKS passphrase:

输入密码时不会有字符(包括星号)回显。如果密码输错,您还有两次机会修正。第三次输错后,启动过程将跳过该卷进入到下一个文件系统。请参阅第 7.2.1 节 “故障处理”了解更多信息。

输入密码之后,启动过程与通常情况相同。

7.2.1. 故障处理

如果由于输错密码造成无法加载加密卷,您只能在启动以后手动加载。有下面这些情况。

  • 第一种情况是与根分区相关。如果它不能正确加载,启动过程将中止,您不得不重新启动计算机再试一次。

  • 最简单的例子就是保存诸如 /home/srv 数据的加密卷。启动后,您可以手动挂载它们。

    对于 dm-crypt 需要一些技巧。首先,您需要用 device mapper 注册卷,需要运行:

    # /etc/init.d/cryptdisks start
    

    这将扫描 /etc/crypttab 里面的所有卷,输入正确的密码之后,将在 /dev 目录下面创建对应的设备。(已注册的卷会被跳过,因此您可以放心地多次运行该命令。) 正确注册以后,就可以按普通的方法加载这些卷:

    # mount /挂载点
    

  • 如果保存着非临界系统文件(/usr/var)的卷不能加载,系统仍然可以启动,并且您仍然可以按前一种情况手动加载。但是,您需要(重新)启动默认 runlevel 下的任何 service,因为它们很可能没有启动。最简单的做法是切换到第一个 runlevel 再返回

    # init 1
    

    在 shell 提示符下输入该命令,并在要求输入 root 口令时按下 Control+D