如何在安装过程中使用加密的 lvm root 挂载 /?

iso*_*man 6 server installation encryption luks

为了更好地理解 Linux,我尝试手动配置一个加密的根 lvm 分区。

我已经通过选择 lvm 加密选项在 Ubuntu 服务器安装程序中尝试了这一点,并且成功了。我的问题很简单,我创建了一个 /boot 分区(未加密)和一个加密的根分区,但安装程序找不到根分区。我想我必须挂载 / 分区。

我怎样才能做到这一点?

Pan*_*her 5

假设您使用的是现场桌面 CD:

安装你的地穴

这假设您的 crypt 被调用crypt,物理分区是/dev/sda1,并且 /dev/mapper 中的根分区分区被调用root,根据您的设置进行相应调整。

  1. 启动 live (Desktop) CD 并安装 lvm2 和 cryptsetup。

    sudo apt-get update && sudo apt-get install lvm2 cryptsetup
  2. 加载 cryptsetup 模块。

    须藤 modprobe dm-crypt
  3. 解密您的文件系统。

    sudo cryptsetup luksOpen /dev/sda1 crypt
  4. 获取 Live CD 以识别(激活)您的 LVM。

    须藤 vgscan --mknodes
    须藤 vgchange -ay
  5. 您现在可以访问/挂载地穴

    须藤 mkdir /media/crypt_root
    须藤挂载 /dev/mapper/root /media/crypt_root

安装到加密分区

我没有从 Ubuntu live CD 手动完成此操作,老实说我不确定它是否会起作用,这取决于您已经知道多少以及我忘记了多少。这将是一篇很长的文章,所以我可能不会涵盖每一个细节;)。

您可以尝试运行图形安装程序并尝试使用 /dev/mapper/root 作为您的根 ( / ) 分区。您需要先卸载它。

如果失败,您可以使用 chroot 安装很长的路

安装到 chroot 中相当容易,您需要创建您正在使用的任何其他分区,包括 /boot(您已经拥有)、swap,如果您需要 /home

然后使用 debootstrap 安装基本系统,使用 /media/crypt_root 作为 chroot。

输入 chroot 的所有命令对于已经很长的帖子来说太长了,但是DebootstrapChroot引导您逐步完成此操作

使用 debootstrap 安装基础后,我们将 chroot 并安装/配置其余部分。

注意:按照上面的链接之后,你应该已经配置了 chroot ,/media/crypt_root,包括 resolv.conf,并且你应该在 chroot 中安装了 proc、sys 和 dev。涵盖所有内容,但只是确保;)

sudo -i

#mount your boot partition in the chroot
mount /dev/sda2 /media/chroot_root/boot

#mount home also if you have a separate home
#If you do not have a separate home, skip this
mount /dev/your_home_partition

chroot /media/crypt_root 
Run Code Online (Sandbox Code Playgroud)

在 chroot 中运行这些命令

apt-get install ubuntu-desktop lvm2 cryptsetup linux-generic grub2

# Add and configure your user
useradd your_user 
passwd your_user
usermod usermod -a -G admin,users
Run Code Online (Sandbox Code Playgroud)

配置chroot。您将需要编辑/etc/fstab/etc/crypttab

/etc/crypttab定义你的地穴

crypt  /dev/sda1  none  luks
Run Code Online (Sandbox Code Playgroud)

/etc/fstab确保你定义分区,交换等

/dev/mapper/crypt_root  /  ext4  defaults,errors=remount-ro  0  1
Run Code Online (Sandbox Code Playgroud)

确保您的 FSTAB 完整,包括 swap、proc、home(如果您使用单独的 home、tmpfs 等。如果需要,使用 live desktop cd 作为模板。

退出chroot

exit
Run Code Online (Sandbox Code Playgroud)

退出 Chroot

您现在需要安装 grub,从 live CD 运行此命令

sudo grub-install --root-directory=/media/crypt_root /dev/sda
Run Code Online (Sandbox Code Playgroud)

就是这样,我想我没有忘记任何重大的事情。我无法填写您所有分区的所有详细信息,因为我不知道您的布局,也不知道您对 /etc/fstab 了解多少或了解多少。

如果您需要进一步的帮助,或者我忘了回帖,或者有人会插话。

如果所有这些看起来都令人难以抗拒,那么这就是人们使用备用 CD 的原因,它会自动执行该过程。

补充参考:

http://en.gentoo-wiki.com/wiki/DM-Crypt_with_LUKS

https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS

这些链接将包含 gentoo 和 arch 特定信息,您可以像在 Ubuntu 上一样忽略这些信息。但它们包含有关如何设置 LVM 和 crypt 的更详细说明,包括 crypttab 和 fstab 的示例。

希望有帮助。