ubuntu 22.04 自动安装存储部分,“自动安装配置未创建所需的引导加载程序分区”

ubuntu 22.04 自动安装存储部分,“自动安装配置未创建所需的引导加载程序分区”

我尝试在用户数据中自定义存储布局以进行自动安装,这是我的用户数据的一部分

  storage:
    #layout:
    #  name: direct
    config:
      - type: disk
        match:
          size: largest
          #ssd: true
        id: ssd0
        ptable: gpt
        wipe: superblock
      - type: partition # create partitions on ssd0
        number: 1
        id: efi-partition
        device: ssd0
        size: 256M
        flag: boot        # uefi partition needs boot flag
        grub_device: true # and must be the grub device?
      - type: partition
        number: 2
        id: boot-partition
        device: ssd0
        size: 768M
      - type: partition
        number: 3
        id: root-partition
        device: ssd0
        size: -1
      - type: format # format partitions on ssd0
        id: efi-format
        volume: efi-partition
        fstype: fat32 # ESP gets FAT32
        label: ESP
      - type: format
        id: boot-format
        volume: boot-partition
        fstype: ext4
        label: BOOT
      - type: format
        id: root-format
        volume: root-partition
        fstype: ext4 # / (root) gets ext4, xfs, btrfs
        label: ROOT
      - type: mount # mount formatted partitions on ssd0
        id: root-mount # / (root) gets mounted first
        device: root-format
        path: /
      - type: mount
        id: boot-mount # /boot gets mounted next
        device: boot-format
        path: /boot
      - type: mount
        id: efi-mount # /boot/efi gets mounted next
        device: efi-format
        path: /boot/efi

然后我在安装过程中收到此错误

“自动安装配置没有创建所需的引导加载程序分区”

我对这个“自动安装程序”真的很失望......

答案1

由于我遇到了这里提到的相同问题(以及其他问题),我按照@dleidert 的建议运行交互式操作并查看生成的配置。

对我来说,解决方法是添加grub_device: truedisk,而不是分区。wipe: superblockpreserve: false也被添加到生成的配置中的所有内容中。 实际上与文档中的示例非常相似:https://curtin.readthedocs.io/en/latest/topics/storage.html#basic-layout

另外,grub_boot分区似乎是必需的,没有它grub-install就会失败。以下是两个相关部分:

更新:这比这更复杂,但合乎逻辑:D

MBR/BIOS:grub_device: true必须处于disk同一级别。

    config:
      - type: disk
        id: disk-vda
        ptable: gpt
        path: /dev/vda
        wipe: superblock-recursive
        preserve: false
        grub_device: true

bios_grub 分区:

      - type: partition
        id: grub-partition
        device: disk-vda
        size: 1M
        flag: bios_grub
        partition_type: EF02
        wipe: superblock
        preserve: false

GPT/UEFI:grub_device: true必须在efi分区上。bios_grub不需要分区。但您应该添加reorder_uefi: false

    grub:
      reorder_uefi: false
    config:
      - type: disk
        id: disk-vda
        ptable: gpt
        path: /dev/vda
        wipe: superblock-recursive
        preserve: false

efi 分区:

      - type: partition
        id: boot-partition
        device: disk0
        size: 512M
        flag: boot
        partition_type: EF00
        wipe: superblock
        preserve: false
        grub_device: true

答案2

尝试grub_device: false为磁盘本身设置。另外,fstype: fat32实际上允许吗?我认为这应该是vfat

但是,您可以创建storage一个交互式部分(这将使您的存储部分无效),在将系统设置为 UEFI 的情况下运行安装程序(JFTR:启用安全启动就可以了),然后将您找到的结果用户数据文件与您的文件进行比较/var/log/installer/

答案3

您不能将其用作largest分区大小。它只能在match块中使用。

从你的user-data

      - type: partition
        number: 3
        id: root-partition
        device: ssd0
        size: largest

答案4

经过几天的测试,也许这与 UEFI/BIOS 启动有关,使用 acer 台式机,当我以 BIOS 模式(安全启动禁用,CSM 启用传统模式)启动桌面时,使用默认存储布局

storage:
  layout:
    name: direct

自动安装没有错误,但安装完成后,机器无法启动到 ubuntu。然后我使用实时 USB 启动来检查磁盘布局,有一个 1MB 的分区,类型为 bios_grub,我不知道这是否看起来正确。

然后我尝试以 UEFI 模式(安全启动禁用/ CSM 禁用)启动机器,机器无法启动到安装程序,我必须使用 UEFI 创建配置 PXE(这是另一个故事),这一次,使用相同的用户数据,安装程序创建一个 1G 分区,类型为 ESP,重启后,该死的,机器启动并进入 ubuntu 桌面 !!!

我不知道所有这些测试是否有意义,但是 ubuntu 22.04 是否不支持 BIOS 启动?我是否应该考虑不再使用 BIOS 启动?

相关内容