为了在不投资多台计算机的情况下明确区分不同任务(工作、开源编程、游戏)的关注点,我更喜欢在单独加密的分区上安装并行操作系统。
愿望清单,目标:
- 使用带有单个硬盘驱动器的单台机器。
- 将UEFI与安全启动一起使用。
- 并行安装多个高度分离的 Linux 实例。
- 单独加密的分区以确保不会(轻松)访问其他实例的磁盘。
- 保留自己的软件、设置和主文件夹。
- 目前Ubuntu 18.x 桌面。
- 可能是其他发行版,但这里没有涉及。
- 安装一个 Windows 实例。
- 不是主要焦点。
- 目前是Windows 10。
- 可选择使用其他分区或磁盘进行一般(共享)存储。
- 这里不涉及。
使用以下步骤在一台机器上设置三个独立的 Ubuntu 系统。效果很好!
想法
refind
而不是管理系统选择。grub
/boot
每个 Linux 实例使用单独的分区。让我们直接从EFI 系统分区 (ESP)refind
引导内核。refind
.概述
refind
并确保它使用安全启动启动。refind
启动过程。按实例安装
假设GUID 分区表 (GPT)和 ESP 已由 Windows 安装程序设置,并且 Ubuntu 实例有额外的分区或空磁盘空间。
分区路径和名称
为了保持一致性,我将在下面使用此分区路径命名。您的系统上的路径会有所不同,并且会因实例而异,因此请注意。
/dev/nvme0n1p11
是你的ESP。/dev/nvme0n1p22
是你的临时/boot
分区。/dev/nvme0n1p33
是您的每个实例的“加密物理卷”(锁定)根/
分区。/dev/mapper/nvme0n1p33_crypt
是您的(解锁的)根/
分区。分区并安装一个新的(额外的)Ubuntu 实例
efi
找到类型为 ESP 的分区。/dev/nvme0n1p11
./dev/nvme0n1p22
./boot
./dev/nvme0n1p33
._crypt
。/dev/mapper/nvme0n1p33_crypt
./
。refind
为新实例设置。进入
chroot
新操作系统进行更多更改。/etc/fstab
并注释掉/boot
. 其他条目是正确的。vmlinuz
_ _ _initrd
_ _refind
记得ubuntu-instance
用我们自己的东西代替。我使用“ubuntu-work”和类似的。不要只使用“ubuntu”,因为它可能会被 Ubuntu 安装程序覆盖。/dev/nvme0n1p33
,此实例的加密物理卷。记下(或复制到剪贴板)UUID(但不是 PARTUUID)。refind
为.in中的加密分区准备Ubuntu实例内核启动选项refind_linux.conf
。/boot/efi/EFI/ubuntu-instance/refind_linux.conf
从以下模板 创建,但使用您的路径和 UUID。chroot
并重新启动。记得在refind
.清理
可选的。这将删除
refind
. 我喜欢保留它们作为备份,直到系统稳定为止。内核或驱动程序更新后的维护
由于 Ubuntu 不知道
refind
,内核+驱动程序更新需要 vmlinuz+initrd 的手动复制步骤。/boot
到未加密的 ESPubuntu-instance
,如上所示。refind
通过选择自定义引导选项从单用户模式。/boot
./boot
到 ESP 中ubuntu-instance
,如上所示。未来的改进
refind
读取加密的 LUKS 分区时,请调查不要将内核保留在未加密的 ESP 上。这可能会大大简化上述设置。ubiquity --no-bootloader
跳过安装shim-signed
,因此第三方 DKMS 模块/驱动程序(nvidia 等)需要手动签名才能安全启动。这可以在每次内核/驱动程序更新后使用kmodsign
for/lib/modules/x.y.z/updates/dkms/*.ko
来完成。更流畅的替代方法是安装shim-signed
(包括 的部分grub
),它会自动签名。也许有一个不那么肮脏的替代方案?refind
。/boot
文件。不希望通过意外格式化或类似的方式破坏 ESP 的额外风险,但可能同样有效。灵感
谢谢!
refind
.1这个Wayland 加上 Nvidia 图形驱动程序问题引起了我的注意。磁盘解锁后会导致黑屏。幸运的是,它很容易修复,并且一旦安装了更新的 Nvidia 驱动程序,Wayland 就可以恢复——只需记住将更新的内核+initrd 复制到您的 ESP。