加密自定义安装

Yva*_*ain 28 encryption luks system-installation

我的电脑运行 Ubuntu。我想在另一种介质上安装 Ubuntu。我希望启用加密,但由于 ubuntu 安装程序的默认选择(擦除/沿边/等...)只涉及默认驱动器,我必须选择“其他”并手动在另一个驱动器上创建分区,我创建~ 128mb 部分用于启动,然后我丢失了,如果我用其余空间创建加密分区,我无法拆分它,所以我没有交换;如果相反我创建两个加密分区,它似乎不对,因为它想设置两个不同的密码......

那我该如何设置交换呢?(在安装期间或之后)。

b_l*_*shi 40

2020 年 7 月 16 日更新:这可能不适用于已脱离 Ubiquity 安装程序的 Ubuntu 版本(例如,现在使用 Calamares 的 Lubuntu),因为其中一些安装程序甚至停用了他们自己没有使用的 LVM 分区,在预安装过程中进行配置。因此,使为系统安装配置的分区不可用。

如何使用LVM 和单个加密分区完成此操作##

警告

首先128M对于开机来说太小了!我用1G。否则,必然会发生的是,您可能会忘记删除旧内核,而 /boot 将填满,您将不得不处理尝试从系统中删除旧内核的痛苦,以便您可以正常工作aptapt-get正常工作再次。即使使用 1G,也要确保不时删除旧内核。

接下来的步骤不适合新手用户。
更新:我创建了一个脚本,它将为您执行以下操作以及更多操作!您所要做的就是在安装之前从 Live OS 运行它。你可以在我的博客上找到一篇文章


从实时操作系统预安装

您想在手动分区的同时设置 LUKS 和 LVM!我在 Ubuntu 16.04.2 / 18.04 / 20.04 上测试过

从 Live OS 启动 Ubuntu,然后选择无需安装即可试用 Ubuntu 的选项。按照我在下面概述的步骤进行操作。假设您要安装到 /dev/sdb。

  1. 使用您选择的工具对驱动器进行分区:我使用 fdisk 在 msdos 分区表上进行设置,如下所示:
    • 其他分区:现有操作系统——我们不关心这些
    • sdb1: /boot (1G)
    • sdb2:LUKS 分区(磁盘的其余部分)
  2. 设置LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • 虽然不是必需的,但最好用零填充 LUKS 分区,以便分区在加密状态下填充随机数据。sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M 当心,这可能需要很长时间!
  3. 在 /dev/mapper/CryptDisk 上设置 LVM
    • sudo pvcreate /dev/mapper/CryptDisk
    • sudo vgcreate vg0 /dev/mapper/CryptDisk
    • sudo lvcreate -n swap -L 2G vg0
    • sudo lvcreate -n root -L 10G vg0
    • sudo lvcreate -n home -l +100%FREE vg0

从实时操作系统安装

  1. 现在您已准备好安装。当您进入安装的“安装类型”部分时,选择“其他”选项。然后手动分配 /dev/mapper/vg0-* 分区,因为您希望配置。不要忘记将 /dev/sdb1 设置为 /boot。/boot 分区不得加密。如果是这样,我们将无法启动。将“用于引导加载程序安装的设备”更改为 /dev/sdb,然后继续安装。
  2. 安装完成后不要重启!选择“继续测试”选项。

来自实时操作系统的安装后配置

如果您希望系统启动,这一点非常重要!我花了很多时间研究这个以找出这些安装后的步骤。就我而言,我实际上是这样做的,因为我想在 /dev/sda 上自定义 /boot 的大小,但所有这些工作也应该适用于您的情况。

  1. 在终端中,键入以下内容并查找 /dev/sdb2 的 UUID。记下该 UUID 以备后用。

    • sudo blkid | grep LUKS
    • 我机器上的重要一行是 /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. 接下来让我们重新安装新安装的系统,以便我们可以进行更多更改。

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # 这可能不是必需的
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # 我不完全确定这是必要的
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (仅当您使用 EFI 时): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. 现在运行sudo chroot /mnt以访问已安装的系统

  4. 从 chroot 中,挂载更多东西

    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. 设置 crypttab。使用您最喜欢的文本编辑器,创建文件 /etc/crypttab 并添加以下行,用您磁盘的 UUID 更改 UUID。

  • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  1. 最后,重建一些引导文件。
  • update-initramfs -k all -c —— update-grub
  1. 重新启动,系统应该要求输入密码才能在启动时解密!

特别感谢Martin EveEGIDIO DOCILEblog.botux.fr 上的人们发布的教程。通过从他们的帖子中提取碎片并进行一些额外的故障排除,我终于能够弄清楚这一点。

我尝试了很多次,但一次又一次地失败了。我必须根据错误消息为自己解决的问题是sudo mount --bind /run/lvm /mnt/run/lvm

  • @b_laoshi 非常棒的工作,但是需要`sudo mount --bind /dev /mnt/dev`,否则`update-initramfs -k all -c`会失败 (2认同)

归档时间:

查看次数:

40222 次

最近记录:

5 年,2 月 前