Как попросить, чтобы curtin использовал GPT вместо MBR с МААСОМ?

Я развертываю узлы AMD64 с первым диском на 3 ТБ с МААСОМ, но я только получаю раздел на 2 ТБ, потому что curtin использует MBR вместо GPT для разделения.

2
задан 13 February 2019 в 14:25

2 ответа

Curtin пытается выбрать самый соответствующий тип таблицы разделов для данного узла:

  • Для систем, которые загружаются в режиме BIOS, он принимает значение по умолчанию к сохраненная MBR таблица
  • Раздела DOS Для систем, которые загружаются в режиме UEFI (включая находящиеся в ARMv8 UEFI-поддерживающие системы как Гром Cavium и APM X-Gene), он принимает значение по умолчанию к таблица разделов

GPT Поэтому, самый легкий способ получить таблицу разделов GPT состоит в том, чтобы настроить узел для начальной загрузки в режиме UEFI, который поддерживается запуск с МААСА 1.5 .

существует два дополнительных способа заставить curtin создавать разделы GPT:

  • можно изменить curtin конфигурацию, предоставленную МААСОМ curtin в /etc/maas/preseeds/curtin_userdata для включения:

    block-meta:
        format: gpt
    
  • , Если у Вас есть до 4 разделов, можно легко преобразовать таблицы Раздела DOS в разделы GPT, после установки. Curtin прилагает усилие для отъезда достаточного количества пространства в разделении, чтобы позволить преобразованию успешно происходить, и от r224 вперед, это гарантирует его . Преобразование может быть сделано с:

    sgdisk --mbrtogpt <device>
    
2
ответ дан 2 December 2019 в 02:56

Я попробовал много обходных решений (включая то, предложенное в решении kiko) напрасно.

следующие работы довольно надежно, по крайней мере, с МААСОМ 2.3.5, работающим Гостеприимном:

  1. Комиссия узел и раздел его диск, как Вы обычно были бы (например: использование веб-UI), но остановка прежде, чем развернуть узел.
  2. Выполнение следующий запрос cmd-строки: maas $USER block-devices read $nodeid ($nodeid может быть считан из URL на веб-UI, например; это - внутренние шесть alphanum идентификаторов для узла)
  3. Захват блочное устройство id. Вы будете видеть, что partition_table_type упорно говорит "MBR"
  4. Теперь вход в систему к Пост-ГРЭС МААСА DB: sudo -u postgres psql -d maasdb
  5. Обновление схема выделения разделов к GPT, update maasserver_partitiontable set table_type='GPT' where block_device_id=$block_dev_id (заменяют '$block_dev_id с идентификатором, который Вы читаете на шаге 3)
  6. Дополнительно повторяют запрос от шага 2 и проверяют, что эти partition_table_type был обновлен к GPT.
  7. Развертывают узел и обладают Вашей таблицей разделов GPT.

Это не особенно симпатично, поскольку взламывающий непосредственно в DB МААСА чувствует себя немного запрещенным, но это - следующая лучшая вещь, пока нам не дают способ сделать это через общедоступный API. Вид API, который я имею в виду, был бы чем-то как: maas $USER block-device update $node_id $block_device_id partition_table_type=GPT. Этот API уже существует и позволяет обновлять name из блочного устройства , как зарегистрировано , но игнорирует намного более полезное partition_table_type атрибут.

Примечание: если необходимо оставить неразделенное пространство на целевом диске GPT, остерегаться, та эта процедура, кажется, инициировала "функцию", посредством чего то пространство поглощено последним разделом, который Вы размечаете в МААСЕ. Обходное решение должно создать одноразовый раздел и удалить его после развертывания.

1
ответ дан 2 December 2019 в 02:56

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

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