我的电脑运行 Ubuntu。我想在另一种介质上安装 Ubuntu。我希望启用加密,但由于 ubuntu 安装程序的默认选择(擦除/沿着/等...)仅涉及默认驱动器,我必须选择“其他”并手动在另一个驱动器上创建分区,我创建〜 128mb 部分用于启动,然后我迷路了,如果我用其余空间创建一个加密分区,我无法分割它,所以我没有交换;相反,如果我创建两个加密分区,它似乎不正确,因为它想设置两个不同的密码......
那我该如何设置交换呢?(安装期间或安装后)。
我的电脑运行 Ubuntu。我想在另一种介质上安装 Ubuntu。我希望启用加密,但由于 ubuntu 安装程序的默认选择(擦除/沿着/等...)仅涉及默认驱动器,我必须选择“其他”并手动在另一个驱动器上创建分区,我创建〜 128mb 部分用于启动,然后我迷路了,如果我用其余空间创建一个加密分区,我无法分割它,所以我没有交换;相反,如果我创建两个加密分区,它似乎不正确,因为它想设置两个不同的密码......
那我该如何设置交换呢?(安装期间或安装后)。
2020-07-16 更新:这可能不适用于已远离 Ubiquity 安装程序的 Ubuntu 风格(例如,现在使用 Calamares 的 Lubuntu),因为其中一些安装程序甚至会停用他们自己没有的 LVM 分区,在预安装过程中配置。因此,使为系统安装配置的分区不可用。
如何使用LVM 和单个加密分区完成此操作##
警告
首先128M太小,无法开机!我用1G。否则,必然会发生的事情是您可能忘记删除旧内核并且 /boot 将填满,并且您将不得不处理尝试从系统中删除旧内核的痛苦,以便您可以获取
apt
或apt-get
工作再次。即使使用 1G,也要确保不时删除旧内核。后续步骤不适用于新手用户。
更新:我创建了一个脚本,它将为您执行以下操作等等!您所要做的就是在安装之前从 Live OS 运行它。你可以在我的博客上找到一篇文章。
从实时操作系统预安装
您想在手动分区时设置 LUKS 和 LVM!我在 Ubuntu 16.04.2 / 18.04 / 20.04 上测试了这个
从 Live OS 启动 Ubuntu 并选择选项以在不安装的情况下试用 Ubuntu。请按照我在下面概述的步骤操作。假设您要安装到 /dev/sdb。
sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M
请注意,这可能需要很长时间!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
从实时操作系统安装
实时操作系统的安装后配置
如果您希望系统启动,这一点非常重要!我花了很多时间研究这个以找出这些安装后的步骤。就我而言,我实际上是这样做的,因为我想在 /dev/sda 上自定义 /boot 的大小,但所有这些工作也应该适用于您的情况。
在终端中,键入以下内容并查找 /dev/sdb2 的 UUID。记下该 UUID 以备后用。
sudo blkid | grep LUKS
/dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
接下来让我们重新安装新安装的系统,以便我们进行更多更改。
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
sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
现在运行
sudo chroot /mnt
以访问已安装的系统从 chroot 安装更多的东西
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts
设置密码表。使用您最喜欢的文本编辑器,创建文件 /etc/crypttab 并添加以下行,将 UUID 更改为磁盘的 UUID。
CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
update-initramfs -k all -c
-update-grub
特别感谢Martin Eve、EGIDIO DOCILE和blog.botux.fr上的人们发布的教程。通过从他们的帖子中提取碎片并进行一些额外的故障排除,我终于能够弄清楚这一点。
我尝试了很多次,但一次又一次地失败了。我必须根据错误消息为自己解决的问题是
sudo mount --bind /run/lvm /mnt/run/lvm
如何完成这个多重加密分区并且没有LVM
因为我之前的答案太长了,如果您不想使用 LVM,我将发布第二个答案,该答案采用不同的方法。
您可以创建多个加密分区并使用decrypt_derived脚本,这样您只需要输入一次密码。查看此博客文章以获取分步说明。作者使用密钥文件,但解密派生的 LUKS 脚本也足够了。
完成任务的一种方法是使用 ubuntu 网络安装程序https://www.ubuntu.com/download/alternative-downloads
它不是图形安装程序。但是在您选择带有加密的完整磁盘安装后,它会为您提供明确的磁盘选择。
对于那些不断遇到这个问题想要稍微改变 Ubuntu 的默认分区的人来说,这就是答案。例如,删除
swap
分区并增加/boot
大小。我想很多人会不鼓励遵循 b_laoshi 的指示,因为所需的步骤很多。因此,对于带有加密的简单自定义分区,我建议使用“擦除磁盘并安装 Ubuntu”和“加密新的 Ubuntu 安装以确保安全”选项。我们要改变的是这个默认分区的配置。
此配置包含在
/lib/partman/recipes[-arch]/
. 为了我自己,我一直在改变/lib/partman/recipes-amd64-efi/30atomic
。为了获得 538Mefi
、1024M和ext4/boot
的其余部分,我将文件编辑为/
请注意,一旦您在安装程序中选择要擦除的磁盘,它会提示您分区摘要,因此您可以检查该技巧是否有效并且您是否获得了所需的分区。另请参阅https://askubuntu.com/a/678074/47073。