如何使用双启动LUKS安装加密的Ubuntu?

Ubuntu 13.04安装盘有一个选项来安装使用LUKS加密的Ubuntu。 但是,对于双引导方案,没有选项可以在现有分区旁边执行加密安装。

如何在活动磁盘上安装与其他分区一起加密的Ubuntu?

首先,如果要在硬盘上安装加密的Ubuntu,替换任何现有的分区和操作系统,可以直接从图形安装程序执行此操作。 只有双启动才需要此手动过程。

这个答案已经过Ubuntu 13.04的测试。

  1. 从Ubuntu live DVD或USB记忆棒启动,然后选择“Try Ubuntu”。

  2. 使用活动磁盘中包含的GParted创建两个分区。 第一个分区应该是未格式化的,并且对于root和swap应该足够大,在我的示例中,这是/dev/sda3 。 第二个分区应该是几百兆字节,并在ext2或ext3格式化,它将是未加密的并挂载到/boot (在我的例子中这是/dev/sda4 )。

    在此屏幕截图中,我在两个分区中存在未加密的Ubuntu安装: /dev/sda1/dev/sda5 ,在左侧的圆圈中突出显示。 我在/dev/sda3创建了一个未格式化的分区,在/dev/sda4创建了一个ext3分区,用于加密的Ubuntu安装,在右边的圆圈中突出显示:

    GParted截图

  3. 使用这些命令创建LUKS容器。 将/dev/sda3替换为先前创建的未格式化分区,以及具有您选择名称的cryptcherries

     sudo cryptsetup luksFormat /dev/sda3 sudo cryptsetup luksOpen /dev/sda3 cryptcherries 
  4. 警告 :您会注意到luksFormat步骤非常快速地完成,因为它不能安全地擦除底层块设备。 除非您只是尝试并且不关心针对各种类型的取证攻击的安全性,否则在创建新的LUKS容器之前正确初始化它是至关重要的。 将零写入映射容器将导致将强随机数据写入底层块设备。 这可能需要一段时间,因此最好使用pv命令来监控进度:

     sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt-get update sudo apt-get install -y pv sudo sh -c 'exec pv -tprebB 16m /dev/zero >"$1"' _ /dev/mapper/cryptcherries 

    或者,如果你正在进行离线安装而且不能轻易获得pv

     sudo dd if=/dev/zero of=/dev/mapper/cryptcherries bs=16M 
  5. 在已安装的LUKS容器内,创建LVM物理卷,卷组和两个逻辑卷。 第一个逻辑卷将安装在/ ,第二个逻辑卷将用作交换。 vgcherries是卷组的名称, lvcherriesrootlvcherriesswap是逻辑卷的名称,您可以选择自己的名称。

     sudo pvcreate /dev/mapper/cryptcherries sudo vgcreate vgcherries /dev/mapper/cryptcherries sudo lvcreate -n lvcherriesroot -L 7.5g vgcherries sudo lvcreate -n lvcherriesswap -L 1g vgcherries 
  6. 为两个逻辑卷创建文件系统:(您也可以直接从安装程序执行此步骤。)

     sudo mkfs.ext4 /dev/mapper/vgcherries-lvcherriesroot sudo mkswap /dev/mapper/vgcherries-lvcherriesswap 
  7. 如果不重新启动 ,请使用图形安装程序安装Ubuntu(快捷方式在Xubuntu 18.04中的桌面上),选择手动分区。 将/ /dev/mapper/vgcherries-lvcherriesroot/boot分配给在步骤2中创建的未加密分区(在本例中为/dev/sda4 )。

  8. 完成图形安装程序后,选择“继续测试”并打开终端。

  9. 找到LUKS分区的UUID(在这种情况下为/dev/sda3 ),稍后您将需要它:

     $ sudo blkid /dev/sda3 /dev/sda3: UUID="8b80b3a7-6a33-4db3-87ce-7f126545c74af" TYPE="crypto_LUKS" 
  10. 将适当的设备安装到/mnt的适当位置,并将其chroot到其中:

     sudo mount /dev/mapper/vgcherries-lvcherriesroot /mnt sudo mount /dev/sda4 /mnt/boot sudo mount --bind /dev /mnt/dev sudo chroot /mnt > mount -t proc proc /proc > mount -t sysfs sys /sys > mount -t devpts devpts /dev/pts 
  11. 在chrooted环境中创建一个名为/etc/crypttab的文件以包含此行,将UUID值替换为LUKS分区的UUID,将vgcherries替换为卷组的名称:

     #     cryptcherries UUID=8b80b3a7-6a33-4db3-87ce-7f126545c74af none luks,retry=1,lvm=vgcherries 
  12. 在chrooted环境中运行以下命令:

     update-initramfs -k all -c 
  13. 重新启动并启动加密的Ubuntu。 系统将提示您输入密码。

  14. 通过运行mount检查您是否正在使用加密分区:

     $ mount /dev/mapper/vgcherries-lvcherriesroot on / type ext4 (rw,errors=remount-ro) /dev/sda4 on /boot type ext3 (rw) # rest of output cut for brevity 
  15. 通过运行以下命令,检查您是否正在使用加密交换分区(而不是来自任何其他安装的任何未加密交换分区):

     $ swapon -s Filename Type Size Used Priority /dev/mapper/vgcherries-lvcherriesswap partition 630780 0 -1 
  16. 检查您是否可以启动进入恢复模式,您不希望在紧急情况下发现恢复模式不起作用:)

  17. 安装任何可能重建ramdisk并更新grub配置的更新。 重新启动并测试正常模式和恢复模式。