当前位置: 首页>>技术问答>>正文


如何使用dual-boot安装使用LUKS加密的Ubuntu?

, , ,

问题描述

Ubuntu 13.04安装盘有一个选项来安装使用LUKS加密的Ubuntu。但是,没有选项可以为dual-boot方案执行加密安装along-side现有分区。

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

最佳解决办法

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

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

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

  2. 使用活动磁盘中包含的GParted创建两个分区。第一个分区应该是未格式化的,并且应该足够大以用于root和swap,在我的示例中,这是/dev/sda3。第二个分区应该是几百兆字节,并在ext2或ext3格式化,它将是未加密的并安装到/boot(在我的例子中,这是/dev/sda4)。在此屏幕截图中,我在两个分区中安装了未加密的Ubuntu:/dev/sda1/dev/sda5,在左侧的圆圈中突出显示。我在/dev/sda3中创建了一个未格式化的分区,在/dev/sda4中创建了一个ext3分区,用于加密的Ubuntu安装,在右侧的圆圈中突出显示:

    system-installation,ubiquity,luks,ubuntu

  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. 完成图形安装程序后,选择”continue testing”并打开终端。

  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替换为卷组的名称:

    # <target name> <source device> <key file> <options>
    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配置的更新。重新启动并测试正常模式和恢复模式。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1533.html,未经允许,请勿转载。