使用 debootstrap/chroot 安装 Ubuntu 服务器 23.10 - 启动时无法挂载正确的根分区

使用 debootstrap/chroot 安装 Ubuntu 服务器 23.10 - 启动时无法挂载正确的根分区

我正在尝试制定一个远程安装 Ubuntu Server 的过程。我想让另一端的人插入闪存驱动器并启动,然后我将 ssh 进入并安装。

以下是我目前制定的流程,主要基于这篇博文

  1. 使用 ssh 登录安装程序系统。
  2. 对硬盘进行分区:
  • sda、sdb 和 sdc - 三个相同的硬盘,每个硬盘都带有
    • 一个 500M 的 vfat 分区用于 EFI,以及
    • 其余部分分区为 RAID1(md127)。
  • md127-两个分区,
    • /boot 格式化为 ext4,并且
    • 使用 luksFormat 加密的 crypt_root
  • crypt_root
    • / - 格式化为 ext4 的单个逻辑卷 (LVM) (/dev/mapper/vgroot-vroot)

sda 8:0 0 1.8T 0 disk

├─sda1 8:1 0 476M 0 part

└─sda2 8:2 0 1.8T 0 part

└─md127 9:127 0 1.8T 0 raid1

├─md127p1 259:0 0 9.3G 0 part

└─md127p2 259:1 0 1.8T 0 part

└─crypt_root 252:0 0 1.8T 0 crypt

└─vgroot-vroot 252:1 0 1.8T 0 lvm

  1. 挂载文件系统(mnt/、mnt/boot 和 mnt/boot/efi)
  2. 安装基础系统:sudo debootstrap mantic mnt http://ca.archive.ubuntu.com/ubuntu/
  3. 生成 fstab:

sudo su - root -s /bin/bash -c 'genfstab -U /home/installer/mnt >> /home/installer/mnt/etc/fstab'

  1. 设置 mnt/etc/crypttab:

crypt_root UUID=... none luks

  1. 设置mnt/etc/apt/sources.list:

deb http://ca.archive.ubuntu.com/ubuntu mantic main universe

deb http://ca.archive.ubuntu.com/ubuntu mantic-security main universe

deb http://ca.archive.ubuntu.com/ubuntu mantic-updates main universe

  1. chroot 进入新系统:sudo arch-chroot mnt
  2. 安装 ubuntu-server 和一些其他软件包,启动 ssh,添加 sudo 用户,设置网络。
  3. 设置 EFI:

update-initramfs -u

bootctl install

cp --dereference /boot/vmlinuz /boot/initrd.img boot/efi/

  1. 克隆 EFI 分区:

dd if=/dev/sda1 of=/dev/sdb1 status=progress

dd if=/dev/sda1 of=/dev/sdc1 status=progress

  1. 使用 efibootmgr 删除安装程序系统(闪存驱动器)并添加 sdb1 和 sdc1
  2. 退出 chroot,关机,移除闪存驱动器,然后启动。

在启动时,我收到一个提示,要求输入加密驱动器的密码,该密码有效,然后当系统尝试加载根分区时,它会失败并显示消息“UUID=...不存在”。错误消息中的 UUID 与闪存驱动器的根分区匹配。我检查了 /etc/fstab,它有正确的 UUID。我如何将正确的配置应用于引导加载程序?

答案1

我的解决方案是更改 EFI 设置(步骤 11):

update-initramfs -u
bootctl install

然后编辑 /boot/efi/loader/entries/....conf 处的配置文件并更改启动选项中的根 UUID(可以在 /etc/fstab 中找到正确的 UUID)

我不需要复制 vmlinuz 或 initrd.img

相关内容