Сбой хранилища curtin / autoinstall при монтировании подкачки в конфигурации

Я использую раздел хранилища автоустановки для простой пользовательской разметки диска / dev / sda: sda1 (512 МБ) / boot, подкачка sda2 (2 ГБ), sda3 (-1) /. У меня проблемы с определением свопа. Документы Curtin утверждают, что это:

  1. определить раздел,
  2. определить формат с помощью fstype: swap,
  3. определить mount без пути с некоторыми опциями: (options: 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

При установке я получаю: « Ошибка типа: __init __ () отсутствует 1 обязательный позиционный аргумент: 'путь' ". Если я удаляю запись с id: sda-sda2-fs-mount1 (тот, что для swap) и раскомментируем раздел swap, указывающий на / dev / sda2 Я получаю рабочий своп. Как определить своп, используя только раздел конфигурации. Смешивание нескольких решений не является элегантным решением imho.

0
задан 15 July 2020 в 20:03

1 ответ

Я бы попытался добавить путь аргумента : нет и посмотреть, работает ли это. Глядя на источник для curtin , он выглядит так, как будто он не имеет значения пути и файловая система «swap»

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

Я не настроил swap как этот, но ваша ссылка на четырехлетний фрагмент гистограммы какого-то парня. Документы curtin находятся по адресу https://curtin.readthedocs.io/en/latest/topics/storage.html?#mount-command

Цитаты из раздела монтирования

Необходимо указать путь к целевой точке монтирования, а также целевая файловая система

Если указанное устройство отформатировано как пространство подкачки, то запись будет добавлена ​​в / etc / fstab целевой системы, чтобы использовать это пространство подкачки.

Я нашел curtin До этого документы были неверными, поэтому я обнаружил, что этот файл определяет требования к схеме. Я не уверен, как его проанализировать, но мне кажется, что путь не требуется, так как у вас есть аргумент device

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

Существует также вероятность того, что subiquity является причиной ошибки. subiquity выполняет свою собственную проверку yaml. Он использует эту схему, но похоже, что раздел storage не имеет никаких требований. Я предполагаю, что они используют curtin для проверки

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

0
ответ дан 30 July 2020 в 22:07

Другие вопросы по тегам:

Похожие вопросы: