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


73

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

如何从活动磁盘上的另一个分区旁边安装已加密的Ubuntu?


查看cryptroot脚本,该拒绝的编辑实际上是正确的。conf.d / cryptroot中的每一行都与另一个cryptoptts参数一样。可以在不将解密分区作为卷组的情况下使用安装程序吗?我已经尝试过了,看起来没有分区我不会使用它。在我的情况下,它是一个具有3个分区的SSD:Linux / boot,Linux /,Windows,其中swap和/ home位于HDD上,因此实际上不需要LVM。我猜想我必须保留我最初的想法,那就是使用实时CD中的debootstrap。

有用的指导:“ 如何设置加密的Ubuntu的安装? ”,通过加扬在HecticGeek.com - hecticgeek.com/2012/10/...
加布里埃尔斯台普斯

Answers:


88

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

这个答案已经在Ubuntu 13.04上进行了测试。

  1. 从Ubuntu Live DVD或USB闪存盘引导,然后选择“尝试Ubuntu”。

  2. 使用包含在活动磁盘中的GParted创建两个分区。第一个分区应该是未格式化的,并且应该足够大以进行root和swap交换,在我的示例中为/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是卷组的名称,lvcherriesroot并且lvcherriesswap是逻辑卷的名称,您可以选择自己的卷。

    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. 无需重新启动,请使用图形安装程序(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"
    
  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环境中命名的文件以包含此行,用LUKS分区的UUID以及vgcherries卷组的名称替换UUID值:

    # <target name> <source device> <key file> <options>
    cryptcherries UUID=8b80b3a7-6a33-4db3-87ce-7f126545c74af none luks,retry=1,lvm=vgcherries
    
  12. 在chroot环境中运行以下命令:

    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. 安装所有可能重建虚拟磁盘并更新grub配置的更新。重新启动并测试正常模式和恢复模式。


3
我可以验证是否在15.04中可以省略步骤11、13和14,并且实际上可能有必要省略这些步骤(因为以这种方式运行update-grub导致Windows分区丢失了。)
process91

4
@ process91看起来步骤已更改数字。现在你需要ommit 12,14,和15
亚历山大·杜宾斯基

5
很棒的向导。第一次使用BitLocker和Ubuntu 16.04在Windows 10上工作,此处省略了步骤12、14和15。我注意到还有两个绊脚石可以用来澄清,特别是您为引导加载程序分区选择的内容(它已安装到现有的EFI分区中,但是您可能只是选择要安装Ubuntu的磁盘,例如/ dev / sda)。任何人都具有完全的编辑权限,欢迎从我写了复制粘贴:stevenmaude.co.uk/posts/...
史蒂芬莫德

5
@unhammer只是编辑了答案,并删除了几个步骤,以使那些阅读这些评论并感到困惑的人。
Flimm

3
作者已经取消了旧的步骤12,14,15。因此,请勿跳过任何步骤。适用于Ubuntu Mate 16.04.1。
user4955663 '17

9

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

先决条件

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

视窗

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

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

的BIOS

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

Ubuntu LiveCD

最后-引导至19.04安装程序USB

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

  • 当您进入显示“ 擦除整个磁盘并带有一些复选框” 的屏幕时,单击“ 其他(手动分区)”选项。否则,您将丢失Windows数据!

磁盘分区管理器加载磁盘后,您将拥有很大的未分配空间。单击该按钮,然后单击“ 添加”按钮以创建分区。

  • 首先,创建一个500MB的/boot分区(主分区,ext4)。
  • 其次,利用其余空间制作一个加密卷。这将创建一个LV分区。将其修改为选定的根/分区。
  • 然后,其余的安装过程将照常进行。

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

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


4
在2019年5月,这是首选的答案(实际上似乎从2012年开始起作用),不需要命令行复杂性。在分区中,创建用于加密的物理卷后,我没有/dev/mapper/sdaX_crypt 在列表顶部看到新的卷。本指南截图和可视化的分区格式,它可以帮助:hecticgeek.com/2012/10/...
firepol

好答案,@ Falieson!但是,在研究的前14天和17个小时中,我不了解它,所以我想我将用屏幕快照编写自己的答案。@firepol(hecticgeek.com/2012/10/…)发表的那篇文章超级有帮助,只有在那篇文章之后,您的回答对我才有意义。
加布里埃尔·斯台普斯

另外,我想补充一点,下次您应该退出使用Windows Bitlocker并切换到VeraCrypt。它是免费和开源的,没有任何成本,而且似乎可以与双引导配合使用。我的Windows分区以及我的外部硬盘驱动器和一些基于本地文件的卷都在使用它。这是VeraCrypt的精彩介绍视频:youtube.com/watch ? v=C25VWAGl7Tw及其下载页面:veracrypt.fr/en/Downloads.html。但是,对于ext4外置驱动器上的基于Linux的LUKS加密,我使用了随附的Ubuntu Disks实用程序,该实用程序在格式化时具有LUKS加密复选框。
加布里埃尔·斯台普斯

5

首先,指出为什么仅加密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

在这个答案上,我将逐步(含图片)介绍Linux Mint 19.1 XFCE和Linux的安装Ubuntu 18.04.2,它们都在一个磁盘中完全加密。首先,我安装Ubuntu 14.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. 不要重新启动,单击继续使用Linux,然后选择打开的终端
  10. mkdir /mnt/newroot
  11. mount /dev/mapper/vgubuntu-ubuntu_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/sda1 /boot
  19. blkid /dev/sda5 (复制不带引号的UUID,并在下一步中使用它)
  20. echo sda5_crypt UUID=5f22073b-b4ab-4a95-85bb-130c9d3b24e4 none luks > /etc/crypttab
    • 在此处输入图片说明
    • 在此处输入图片说明
    • 在此处输入图片说明
  21. 创建文件 /etc/grub.d/40_custom
    • 在此处输入图片说明
  22. 编辑/etc/default/grub并设定
    • GRUB_TIMEOUT_STYLE=menu
    • GRUB_TIMEOUT=10
    • 在此处输入图片说明
  23. update-initramfs -u
  24. update-grub
    • 在此处输入图片说明
    • 在此处输入图片说明
  25. exit
  26. reboot
  27. 重新启动计算机后,选择选项Ubuntu,它将正确询问您的加密密码
    • 在此处输入图片说明
  28. 登录后,运行
    • sudo apt-get update
    • sudo apt-get install gparted
  29. 通过打开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. 不要重新启动,单击继续使用Linux,然后选择打开的终端
  9. mkdir /mnt/newroot
  10. mount /dev/mapper/vgmint-mint_root /mnt/newroot
  11. mount -o bind /proc /mnt/newroot/proc
  12. mount -o bind /dev /mnt/newroot/dev
  13. mount -o bind /dev/pts /mnt/newroot/dev/pts
  14. mount -o bind /sys /mnt/newroot/sys
  15. cd /mnt/newroot
  16. chroot /mnt/newroot
  17. mount /dev/sda2 /boot
  18. blkid /dev/sda6 (复制不带引号的UUID,并在下一步中使用它)
  19. echo sda6_crypt UUID=5f22073b-b4ab-4a95-85bb-130c9d3b24e4 none luks > /etc/crypttab
    • 在此处输入图片说明
    • 在此处输入图片说明
    • 在此处输入图片说明
  20. update-initramfs -u
  21. update-grub
    • 在此处输入图片说明
    • 在此处输入图片说明
  22. exit
  23. reboot
  24. 重新启动计算机后,选择选项 Linux Mint on /dev/sda2
    • 在此处输入图片说明
  25. 然后,它将正确启动Mint 19.1并要求输入加密密码
    • 在此处输入图片说明
  26. 登录后,运行
    • sudo apt-get update
    • sudo apt-get install gparted
  27. 通过打开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引导

1
我的计算机上有1个硬盘,并且有一个现有的未加密Kubuntu 18.04。基于此,我已经在第一个未加密的Kubuntu附近安装了第二个加密的Kubuntu 18.04。现在两者都可以在一个硬盘上正常工作。感谢您的详细回答。
Ikrom

1
有关Linux Mint的部分应从此答案中删除。这一部分是题外话,OP并没有问过,它使答案变得不必要的冗长,并导致像这样的题外跟进问题。
mook765

-1(与薄荷相关的部分)。
user68186
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.