我使用autoinstal的存储部分来进行简单的自定义/dev / sda磁盘布局: sda1 (512 2GB) /boot、sda2 (2GB)交换、sda3 (-1) /。我很难正确定义交换。柯廷博士声称它是:
我的简单配置:
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的取消注释交换部分删除条目。我得到了工作交换。如何使用只使用配置部分定义交换。混合几个解决方案并不是优雅的解决方案。
发布于 2020-07-15 20:03:36
我会尝试添加参数path: none,看看它是否有效。查看curtin的源代码,当没有路径值且文件系统是“交换”时,这似乎就是它所做的事情。
我没有像这样设置交换,但是你的链接是指向某个人的四岁的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://askubuntu.com/questions/1259379
复制相似问题