如何通过双引导安装使用 LUKS 加密的 Ubuntu?

Fli*_*imm 87 ubiquity luks system-installation

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

如何安装与来自实时磁盘的另一个分区一起加密的 Ubuntu?

Fli*_*imm 97

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

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

  1. 从 Ubuntu live DVD 或 U 盘启动,然后选择“Try Ubuntu”。

  2. 使用实时磁盘中包含的 GParted 创建两个分区。第一个分区应该是未格式化的,并且应该足够大以供 root 和交换,在我的例子中,这是/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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

    或者,如果您正在进行离线安装并且无法轻松获得pv

    sudo dd if=/dev/zero of=/dev/mapper/cryptcherries bs=16M
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 为两个逻辑卷创建文件系统:(您也可以直接从安装程序执行此步骤。)

    sudo mkfs.ext4 /dev/mapper/vgcherries-lvcherriesroot
    sudo mkswap /dev/mapper/vgcherries-lvcherriesswap
    
    Run Code Online (Sandbox Code Playgroud)
  7. 无需重新启动,使用图形安装程序(快捷方式在 Xubuntu 18.04 的桌面上)安装 Ubuntu,选择手动分区。分配//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"
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  12. 在 chrooted 环境中运行以下命令:

    update-initramfs -k all -c
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  15. 通过运行以下命令检查您是否正在使用加密交换分区(不是来自任何其他安装的任何未加密交换分区):

    $ swapon -s
    Filename                              Type      Size   Used Priority
    /dev/mapper/vgcherries-lvcherriesswap partition 630780 0    -1
    
    Run Code Online (Sandbox Code Playgroud)
  16. 检查您是否可以启动到恢复模式,您不想在紧急情况下稍后发现恢复模式不起作用:)

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

  • @process91 看起来步骤改变了数字。现在您需要省略 12、14 和 15。 (5认同)
  • 很棒的指南。第一次使用 BitLocker 和 Ubuntu 16.04 在 Windows 10 上工作,这里省略了步骤 12、14 和 15。我注意到还有一些其他绊脚石可以澄清,特别是您为引导加载程序分区选择的内容(它安装到现有的 EFI 分区,但您可能只需选择安装 Ubuntu 的磁盘,例如 /开发/sda)。任何拥有完全编辑权限的人都欢迎从我的文章中复制粘贴:http://www.stevenmaude.co.uk/posts/a-beginners-guide-to-os-encryption-almost-2017-edition (5认同)
  • @unhammer 刚刚编辑了答案并删除了几个步骤,以便那些阅读评论并感到困惑的人。 (5认同)
  • 作者已经删除了旧步骤 12、14、15。所以不要跳过任何步骤。适用于 Ubuntu Mate 16.04.1。 (4认同)
  • 我可以验证在 15.04 中您可以省略步骤 11、13 和 14,并且实际上可能需要省略这些步骤(因为以这种方式运行 update-grub 会导致我的 Windows 分区丢失。) (3认同)
  • 我可以确认这在 Ubuntu 16.04 上的描述中有效,省略了步骤 12、14 和 15。现有安装(Windows 10 + Ubuntu 15.10)被正确检测到,出现在 GRUB 中并且可以启动。 (2认同)
  • 您能否说明在第 7 步中应该为引导加载程序安装选择哪个分区?默认情况下它是 dm-0。此外,在步骤 11 中,该文件已经存在,并带有用于交换分区的行。应该在文件末尾添加新行吗? (2认同)
  • 我在 Ubuntu 18.04 LTS 中尝试了两次。两次都导致启动使我进入 busybox 提示。我按照 [这些类似的说明](http://blog.botux.fr/en/2015/09/ubuntu-installation-manual-full-disk-encryption-lvm-on-luks/) 并让它工作。 (2认同)
  • @Project 提到他对这些[几乎相同的说明]很幸运(http://blog.botux.fr/en/2015/09/ubuntu-installation-manual-full-disk-encryption-lvm-on-luks/)让它在 Ubuntu 18.04 LTS 上运行。我将这些说明与这个 askubuntu 答案进行了比较,以找出它们之间的区别。[这是差异的书面说明](https://gist.github.com/gene1wood/b25839529e64ef4a3eb0045a9dbd8718)。它们主要是与 `/etc/initramfs-tools/conf.d/cryptroot` 文件和 `/etc/default/grub` 中的 `GRUB_CMDLINE_LINUX` 行相关的两个附加步骤 (2认同)

Fal*_*son 11

可以仅使用 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分区(primary,ext4)。
  • 其次,用剩下的空间做一个加密卷。这将创建一个单一的 LV 分区。修改为选中的根/分区。换种说法,点击“更改”按钮/dev/mapper/sdaX_crypt并将挂载点设置为/
  • 然后其余的安装过程将照常进行。

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

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

  • 2019 年 5 月,这是首选答案(实际上自 2012 年以来似乎有效),不需要命令行复杂化。在分区中,在创建用于加密的物理卷后,我没有在列表顶部看到新的 `/dev/mapper/sdaX_crypt` **。本指南有截图和可视化分区格式,它可能会有所帮助:https://www.hecticgeek.com/2012/10/how-to-setup-encrypted-ubuntu-installation/ (4认同)

use*_*ser 7

首先,指出为什么只加密 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.1并且Ubuntu 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. 不要重启,点击Continue Using 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 肉桂

对于剩余的 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. 不要重启,点击Continue Using 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 链加载器不适用于 Windows 8
  5. 在 Ubuntu 14.04 LTS 上使用加密的 /boot 引导 UEFI


归档时间:

查看次数:

95720 次

最近记录:

4 年,6 月 前