раздел хранилища curtin/autoinstall не работает при монтировании подкачки в конфигурации
Я использую раздел хранилища autoinstal для простого настраиваемого макета диска /dev/sda: sda1 (512 МБ) /boot, sda2 (2 ГБ) подкачки, sda3 (-1) /. У меня проблема с правильным определением свопа. Документы Curtin утверждают, что это:
- определить раздел,
- определить формат с помощью fstype: swap,
- определить монтирование без пути с некоторыми параметрами: (параметры: pri=1,discard=pages).
Моя простая конфигурация:
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'
". Если я удалю запись с идентификатором: sda-sda2-fs-mount1 (тот, который предназначен для подкачки) и раскомментирую раздел подкачки, указывающий на /dev/sda2. Я получаю рабочий своп. Как определить своп, используя только раздел конфигурации. Смешивание нескольких решений это не изящное решение имхо.
1 ответ
Я бы попробовал добавить аргумент
path: none
и посмотреть, работает ли это. Глядя на источник curtin, похоже, что это то, что он делает, когда нет значения пути, а файловая система находится в режиме подкачки
У меня нет такой настройки свопа, но ваша ссылка ведет к фрагменту сути четырехлетней давности какого-то парня. В Куртина документы находятся на 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 для проверки