首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >curtin/autoinstall存储部分在config中的交换挂载上失败

curtin/autoinstall存储部分在config中的交换挂载上失败
EN

Ask Ubuntu用户
提问于 2020-07-15 17:03:45
回答 1查看 1.7K关注 0票数 1

我使用autoinstal的存储部分来进行简单的自定义/dev / sda磁盘布局: sda1 (512 2GB) /boot、sda2 (2GB)交换、sda3 (-1) /。我很难正确定义交换。柯廷博士声称它是:

  1. 定义分区,
  2. 使用fstype:交换定义格式,
  3. 使用一些选项定义没有路径的挂载:(选项: pri=1,discard=pages)。

我的简单配置:

代码语言:javascript
复制
  storage:
    version: 1
#    swap:
#      filename: /dev/sda2
#      size: 2GB
#      maxsize: 2GB
    config:
      - type: disk
        id: sda
        path: /dev/sda
        ptable: msdos
        name: system-disk
        wipe: superblock
        grub_device: true
      - type: partition
        id: sda-sda1
        number: 1
        size: 512MB
        device: sda
        name: boot-partition
        flag: boot
      - type: partition
        id: sda-sda2
        number: 2
        size: 2GB
        device: sda
        name: swap-partition
        flag: swap
      - type: partition
        id: sda-sda3
        number: 3
        size: -1
        device: sda
        name: root-partition
      - type: format
        id: sda-sda1-fs
        fstype: ext4
        label: boot
        volume: sda-sda1
      - type: format
        id: sda-sda2-fs
        fstype: swap
        label: swap
        volume: sda-sda2
      - type: format
        id: sda-sda3-fs
        fstype: ext4
        label: root
        volume: sda-sda3
      - type: mount
        id: sda-sda1-fs-mount1
        path: /boot
        device: sda-sda1-fs
      - type: mount
        id: sda-sda2-fs-mount1
        options: pri=2,discard=pages
        device: sda-sda2-fs
      - type: mount
        id: sda-sda3-fs-mount1
        path: /
        device: sda-sda3-fs

在安装时,我得到的是:"TypeError: __init__() missing 1 required positional argument: 'path'“。如果我使用id: sda-sda2-fs-挂载1(用于交换的条目)和指向/dev/sda 2的取消注释交换部分删除条目。我得到了工作交换。如何使用只使用配置部分定义交换。混合几个解决方案并不是优雅的解决方案。

EN

回答 1

Ask Ubuntu用户

发布于 2020-07-15 20:03:36

我会尝试添加参数path: none,看看它是否有效。查看curtin的源代码,当没有路径值且文件系统是“交换”时,这似乎就是它所做的事情。

https://github.com/canonical/curtin/blob/b4f5078663d9cbfd31a7d23b77c458e6a7447226/curtin/commands/block_meta.py#L1107

我没有像这样设置交换,但是你的链接是指向某个人的四岁的gist片段。柯廷博士在https://curtin.readthedocs.io/en/latest/topics/storage.html?#mount-command

挂载部分的引号

如果指定的设备被格式化为交换空间,则必须指定目标挂载点的路径以及目标文件系统,然后将一个条目添加到目标系统的/etc/fstab中,以利用此交换空间。

我以前发现curtin文档是错误的,所以我发现这个文件似乎定义了模式需求。我不确定如何解析它,但在我看来,path并不是必需的,因为您有一个device参数

https://github.com/canonical/curtin/blob/master/curtin/block/schemas.py

还有一种可能性,即亚质量是产生错误的原因。subiquity进行自己的yaml验证。它使用这个模式,但是看起来storage部分没有要求。我猜他们依赖于curtin的验证

https://ubuntu.com/server/docs/install/autoinstall-schema

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1259379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档