这种 Fedora 加密 /boot 方法适用于 Ubuntu 16.10 吗?

这种 Fedora 加密 /boot 方法适用于 Ubuntu 16.10 吗?

我找到一个教程,介绍如何将 /boot 分区移动到 /,以便它属于我已设置的 LUKS 加密。不过,该教程是针对 Fedora 制作的。这安全吗?它可以在 Ubuntu 16.10 上运行吗?

[root@localhost ~]# mount --bind / /mnt/
[root@localhost ~]# cp -a /boot/* /mnt/boot/
[root@localhost ~]# cp -a /boot/.vmlinuz-* /mnt/boot/
[root@localhost ~]# diff -ur /boot/ /mnt/boot/
[root@localhost ~]# umount /mnt
[root@localhost ~]# umount /boot
[root@localhost ~]# sed -i -e '//boot/d' /etc/fstab
[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.0.4-301.fc22.x86_64
Found initrd image: /boot/initramfs-4.0.4-301.fc22.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-3f9d22f02d854d9a857066570127584a
Found initrd image: /boot/initramfs-0-rescue-3f9d22f02d854d9a857066570127584a.img
done
[root@localhost ~]# cat /boot/grub2/grub.cfg | grep cryptodisk
        insmod cryptodisk
        insmod cryptodisk
[root@localhost ~]# echo GRUB_ENABLE_CRYPTODISK=y >> /etc/default/grub
[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rd.luks.uuid=luks-cb85c654-7561-48a3-9806-f8bbceaf3973 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_CRYPTODISK=y
[root@localhost ~]# grub2-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
[root@localhost ~]# reboot

唯一令人讨厌的是,你必须在启动时输入两次 LUKS 密码,但总比没有好。我确实看到了一种方法,可以消除启动时输入密码的需要,但它似乎相当复杂,我不想花几个小时来排除无法启动系统的问题。

答案1

我可以确认它可以与 Ubuntu 16.04 兼容。

不过,脚本确实需要稍微调整一下。以下是我使用的:

$ sudo mkdir /mnt/root-bind && sudo mount --bind / /mnt/root-bind
$ sudo cp --archive --no-target-directory /boot /mnt/root-bind/boot
$ sudo diff -ur /boot /mnt/root-bind/boot  # Check output of this to verify that no differences are found.
$ sudo umount /mnt/root-bind && sudo rmdir /mnt/root-bind
$ sudo umount /boot
$ sudo cp -a /etc/fstab /etc/fstab.backup-before-removing-boot && sudo sed -i -e '/\/boot/d' /etc/fstab
$ echo 'insmod cryptodisk' | sudo tee --append /etc/grub.d/40_custom
$ echo 'GRUB_ENABLE_CRYPTODISK=y' | sudo tee --append /etc/default/grub
$ sudo update-grub
$ sudo grub-install /dev/sda  # Or whatever your main drive is.

这就是我刚刚使用的方法,它将(很快[1])在我的这个页面上更详细地记录:Karl 的 IT 文档:Eddings 设置

[1] 只要我将该网站复制到我重建的服务器上就可以了。

相关内容