Ubuntu 18.04.2 仿生海狸

Ubuntu 18.04.2 仿生海狸

Ubuntu 安装盘有一个选项,可以使用 LUKS 加密安装 Ubuntu。但是,没有选项可以在现有分区旁执行加密安装以实现双启动方案。

我怎样才能在活动磁盘的另一个分区上安装加密的 Ubuntu?

答案1

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

该答案已使用 Ubuntu 13.04 测试过。

  1. 从 Ubuntu Live DVD 或 USB 启动,然后选择“试用 Ubuntu”。

  2. 使用实时磁盘中包含的 GParted 创建两个分区。第一个分区应未格式化,并且应足够大以容纳根目录和交换区,在我的示例中,这是/dev/sda3。第二个分区应有几百兆字节大,并以 ext2 或 ext3 格式格式化,它将被解密并安装到/boot(在我的示例中,这是/dev/sda4)。

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

    GParted 屏幕截图

  3. 使用这些命令创建一个 LUKS 容器。将其替换/dev/sda3为之前创建的未格式化分区,并cryptcherries使用您选择的名称。

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

    ### Only for older releases, e.g. not for 19.04, `pv` is not included in the repo must be added first
    # 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步骤/boot2 中创建的未加密分区(在此示例中为/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. /etc/crypttab在 chrooted 环境中创建一个名为的文件以包含此行,将 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 配置。重新启动并测试正常模式和恢复模式。

答案2

仅使用 Ubuntu LiveCD 的 GUI 工具即可创建加密双启动设置。

先决条件

  • 带有 19.04 Ubuntu 安装程序的 USB 记忆棒。
  • 如果您有 EFI 主板,请确保磁盘使用 GUID 分区表 (GPT)。使用此方法使用 MBR 磁盘似乎会失败。您可以使用 Linux 工具 ( gdisk) 将 MBR 转换为 GPT,但您应该先进行备份。如果您转换分区表,则需要修复 Windows 启动加载程序然后。

视窗

  • 在开始栏中输入disk partition并选择第一个选项(从设置中打开磁盘分区管理器)。

  • 将主分区缩小到所需的 Ubuntu 大小(我只是使用默认设置,将我的 500GB 驱动器分成 240GB Windows 操作系统和 240GB 未分配空间)。

BIOS

  • 禁用安全启动(如果您有 bitlocker,则需要每次重新启用它才能安全地启动到 Windows) - 这对我来说很好,因为 Ubu 是我的主要操作系统,只需使用 windoze 进行游戏即可。

Ubuntu LiveCD

最后 - 启动 19.04 安装程序 USB

  • 点击Enter默认安装 Ubuntu选项。

  • 当你看到屏幕上显示擦除整个磁盘并有一些复选框,点击其他内容(手动分区)选项。否则您将丢失 Windows 数据!

磁盘分区管理器加载磁盘后,您将有大量未分配空间。单击它并点击添加按钮创建分区。

  • 首先,创建一个 500MB 的/boot分区(主分区,ext4)。
  • 第二,用剩余的空间创建一个加密卷。这将创建一个 LV 分区。将其修改为选定的根/分区。换句话说,点击“更改”按钮/dev/mapper/sdaX_crypt并将挂载点设置为/
  • 然后,其余的安装过程将照常进行。

首次启动时,登录、打开终端、运行,sudo apt-get update然后sudo apt dist-upgrade重新启动并再次登录。

将自动创建一个 2GB 的交换文件。如果您想要一个 8GB 的​​交换文件,请阅读这个答案

答案3

首先,指出为什么仅加密 Linux 分区可能对您来说不够安全:

  1. https://superuser.com/questions/1013944/encrypted-boot-in-a-luks-lvm-ubuntu-installation
  2. https://security.stackexchange.com/questions/166075/encrypting-the-boot-partition-in-a-linux-system-can-protect-from-an-evil-maid-a
  3. https://www.reddit.com/r/linux/comments/6e5qlz/benefits_of_encrypting_the_boot_partition/
  4. https://unix.stackexchange.com/questions/422860/why-should-we-encrypt-the-system-partition-and-not-only-home
  5. https://www.coolgeeks101.com/howto/infrastructure/full-disk-encryption-ubuntu-usb-detached-luks-header/
  6. https://superuser.com/questions/1324389/how-to-avoid-encrypted-boot-partition-password-prompt-in-lvm-arch-linux

现在,我按照这个教程进行操作:

  1. https://www.oxygenimpaired.com/multiple-linux-distro-installs-on-a-luks-encrypted-harddrive
  2. http://web.archive.org/web/20160402040105/http://www.oxygenimpaired.com/multiple-linux-distro-installs-on-a-luks-encrypted-harddrive

在此回答中,我将逐步(带图片)介绍 LinuxMint 19.1 XFCE和的安装Ubuntu 18.04.2,它们都完全加密在单个磁盘中。首先,我安装Ubuntu 18.04.2在 上/dev/sda5,我没有创建交换分区,因为Linux Mint 19.1Ubuntu 18.04.2不使用它们,即它们使用交换文件。

Ubuntu 18.04.2 仿生海狸

首先,插入Ubuntu安装介质并重新启动机器进入Ubuntu实时会话,然后选择Try Ubuntu并打开一个终端,然后

  1. sudo su -
  2. fdisk /dev/sda然后,创建以下分区
    • 在此处输入图片描述
  3. cryptsetup luksFormat /dev/sda5
  4. cryptsetup luksOpen /dev/sda5 sda5_crypt
  5. pvcreate /dev/mapper/sda5_crypt
  6. vgcreate vgubuntu /dev/mapper/sda5_crypt
  7. lvcreate -L10G -n ubuntu_root vgubuntu
    • lvcreate -l 100%FREE -n ubuntu_root vgubuntu(可选,lvcreate -L10G -n ubuntu_root vgubuntu您可以运行这个lvcreate -l 100%FREE -n ubuntu_root vgubuntu来使用整个磁盘可用空间,而不是仅仅 10GB)
    • 在此处输入图片描述
  8. 不要关闭终端,打开发行版安装程序,选择其他内容并标记以下选项
    • /dev/sda1安装为具有以下格式/boot的分区ext2
    • /dev/mapper/vgubuntu-ubuntu_root/按格式安装ext4
    • /dev/sda作为引导加载程序安装
    • 不要标记任何其他内容
    • 在此处输入图片描述
    • 在此处输入图片描述
  9. Install Now选择以上选项后选择
  10. 不要重启,点击继续使用Linux,并选择打开终端
  11. mkdir /mnt/newroot
  12. mount /dev/mapper/vgubuntu-ubuntu_root /mnt/newroot
  13. mount -o bind /proc /mnt/newroot/proc
  14. mount -o bind /dev /mnt/newroot/dev
  15. mount -o bind /dev/pts /mnt/newroot/dev/pts
  16. mount -o bind /sys /mnt/newroot/sys
  17. cd /mnt/newroot
  18. chroot /mnt/newroot
  19. mount /dev/sda1 /boot
  20. blkid /dev/sda5(复制不带引号的 UUID 并在下一步中使用它)
  21. echo sda5_crypt UUID=5f22073b-b4ab-4a95-85bb-130c9d3b24e4 none luks > /etc/crypttab
    • 在此处输入图片描述
    • 在此处输入图片描述
    • 在此处输入图片描述
  22. 创建文件/etc/grub.d/40_custom
    • 在此处输入图片描述
  23. 编辑/etc/default/grub并设置
    • GRUB_TIMEOUT_STYLE=menu
    • GRUB_TIMEOUT=10
    • 在此处输入图片描述
  24. update-initramfs -u
  25. update-grub
    • 在此处输入图片描述
    • 在此处输入图片描述
  26. exit
  27. reboot
  28. 重新启动计算机后,选择该选项Ubuntu,它将正确询问您的加密密码
    • 在此处输入图片描述
  29. 登录后,运行
    • sudo apt-get update
    • sudo apt-get install gparted
  30. 打开后gparted你会发现这个
    • 在此处输入图片描述

有关更详细的说明,请阅读该问题顶部指出的原始教程或在 Google 上搜索这些命令的用法。


Linux Mint 19.1 Cinnamon

对于其余的 Linux 安装,reboot您的Ubuntu计算机使用Mint 19.1(Live CD)安装程序启动,然后打开终端窗口

  1. sudo su -
  2. cryptsetup luksFormat /dev/sda6
  3. cryptsetup luksOpen /dev/sda6 sda6_crypt
  4. pvcreate /dev/mapper/sda6_crypt
  5. vgcreate vgmint /dev/mapper/sda6_crypt
  6. lvcreate -L10G -n mint_root vgmint
    • lvcreate -l 100%FREE -n mint_root vgmint(可选,lvcreate -L10G -n mint_root vgmint您可以运行这个lvcreate -l 100%FREE -n mint_root vgmint来使用整个磁盘可用空间,而不是仅仅 10GB)
    • 在此处输入图片描述
    • 在此处输入图片描述
  7. 不要关闭终端,打开发行版安装程序,选择其他内容并标记以下选项
    • /dev/sda2安装为具有以下格式/boot的分区ext2
    • /dev/mapper/vgmint-mint_root/按格式安装ext4
    • /dev/sda2作为引导加载程序安装(不要/dev/sda像以前一样选择)
    • 不要标记任何其他内容
    • 在此处输入图片描述
    • 在此处输入图片描述
  8. Install Now选择以上选项后选择
  9. 不要重启,点击继续使用Linux,并选择打开终端
  10. mkdir /mnt/newroot
  11. mount /dev/mapper/vgmint-mint_root /mnt/newroot
  12. mount -o bind /proc /mnt/newroot/proc
  13. mount -o bind /dev /mnt/newroot/dev
  14. mount -o bind /dev/pts /mnt/newroot/dev/pts
  15. mount -o bind /sys /mnt/newroot/sys
  16. cd /mnt/newroot
  17. chroot /mnt/newroot
  18. mount /dev/sda2 /boot
  19. blkid /dev/sda6(复制不带引号的 UUID 并在下一步中使用它)
  20. echo sda6_crypt UUID=5f22073b-b4ab-4a95-85bb-130c9d3b24e4 none luks > /etc/crypttab
    • 在此处输入图片描述
    • 在此处输入图片描述
    • 在此处输入图片描述
  21. update-initramfs -u
  22. update-grub
    • 在此处输入图片描述
    • 在此处输入图片描述
  23. exit
  24. reboot
  25. 重新启动计算机后,选择选项Linux Mint on /dev/sda2
    • 在此处输入图片描述
  26. 然后,它将正确启动Mint 19.1并要求输入加密密码
    • 在此处输入图片描述
  27. 登录后,运行
    • sudo apt-get update
    • sudo apt-get install gparted
  28. 打开后gparted你会发现这个
    • 在此处输入图片描述

相关链接:

  1. 如何调整活动 LVM 分区的大小?
  2. 如何调整 LVM 分区的大小?(即物理卷)
  3. https://www.tecmint.com/extend-and-reduce-lvms-in-linux/
  4. Grub chainloader 无法在 Windows 8 上运行
  5. 在 Ubuntu 14.04 LTS 上使用加密 /boot 进行 UEFI 引导

答案4

在这里添加另一个答案,因为我找到的许多其他资源(这里和其他地方)已经过时了,我认为其中一些步骤可以简化。

首先,正如其他答案所提到的,如果您不想双重启动,只需在自动安装程序中选择加密选项。

值得注意的是,此方法不加密/boot。虽然加密有正当理由/boot,但当您使用 LUKS 进行图形安装时,图形安装程序不会对其进行加密。因此,我遵循了这一先例,并保持了未加密/boot分区的简单性。


Ubuntu 20.04 和 Windows 10

在本指南中,我将引用/dev/sda。您的可能有所不同 - 特别是/dev/nvme0n1。只需在下面进行适当的替换,同时注意/dev/sda1对应于/dev/nvme0n1p11

可以使用 GParted、sgdisk 或 gdisk 进行分区。sgdisk 最容易在这里作为命令引用。

  1. 仅为 UEFI 配置您的 BIOS。无 MBR,无传统启动。2
  2. 将驱动器初始化为 GPT 驱动器,并创建一个格式化为 FAT32(作为根)的 550M EFI 系统分区。
    # sgdisk --zap-all /dev/sda
    # sgdisk --new=1:0:+550M /dev/sda
    # sgdisk --change-name=1:EFI /dev/sda
    # sgdisk --typecode=1:ef00 /dev/sda
    # mkfs.fat -F 32 /dev/sda1
    
  3. 安装 Windows。在安装程序中,选择为 Windows 创建一个新分区,并将其设置为合适的大小(大约是硬盘的一半)。保留未分配的空间以便稍后用于 Ubuntu。当您执行此操作时,安装程​​序实际上会出于 Windows 原因创建多个分区。
  4. 如果需要,Windows 安装完成后,请在C:驱动器上启用 BitLocker。这将创建另一个分区。
  5. 为 Ubuntu 创建分区(以 root 身份)。768M 分区用于/boot。另一个用于 Ubuntu,将使用 LUKS 加密并使用 LVM(类似于默认安装过程的设置方式)。(如果您之前未设置 BitLocker,您的分区号将与我下面的示例相差 1(因此我的 sda5 是您的 sda4)。
    # sgdisk --new=5:0:+768M /dev/sda
    # sgdisk --new=6:0:0 /dev/sda
    # sgdisk --change-name=5:/boot --change-name=6:rootfs /dev/sda
    # sgdisk --typecode=5:8301 --typecode=6:8301 /dev/sda
    # mkfs.ext4 -L boot /dev/sda5
    
  6. 设置 LUKS 和 LVM(以 root 身份)。我设置了 8G 的交换空间。一个好的经验法则是系统中的 RAM 数量。交换将被加密。
    # cryptsetup luksFormat --type=luks1 /dev/sda6
    # cryptsetup open /dev/sda6 sda6_crypt
    
    # pvcreate /dev/mapper/sda6_crypt 
    # vgcreate ubuntu-vg /dev/mapper/sda6_crypt 
    # lvcreate -L 8G -n swap_1 ubuntu-vg 
    # lvcreate -l 100%FREE -n root ubuntu-vg
    
  7. 使用图形安装程序安装 Ubuntu。自行选择分区。
    • /dev/sda5至于ext4/boot
    • /dev/mapper/ubuntu--vg-root至于ext4/
    • /dev/mapper/ubuntu--vg-swap_1作为swap
    • 引导加载程序设备应该是/dev/sda
  8. 安装程序完成后,不要退出。我们需要设置/etc/crypttab(以 root 身份)。这将在启动时触发密码提示。将文件中的 UUID 替换为驱动器的 UUID,该 UUID 来自sudo blkid /dev/sda6
    # mount /dev/mapper/ubuntu--vg-root /target
    # mount /dev/sda5 /target/boot
    # for n in proc sys dev etc/resolv.conf; do mount --rbind /$n /target/$n; done 
    # chroot /target
    # mount -a
    
    # echo 'sda6_crypt UUID=abcdefgh-1234-5678-9012-abcdefghijklm none luks,tries=0,discard,loud' > /etc/crypttab
    # update-initramfs -k all -c
    

完成!如果您在 Windows 上使用 BitLocker,则它不会喜欢使用 grub 启动。相反,请直接从 BIOS 启动选项启动 Windows。

相关内容