Назад | Перейти на главную страницу

Автоматическое расширение файловой системы раздела виртуальной машины после изменения размера qemu-img

Я запускаю виртуальную машину с QEMU / KVM. После изменения размера образа диска qcow2 через

qemu-img resize Test.qcow2 +500M

И глядя на диск экземпляра через:

fdisk -l

внутри экземпляра я вижу следующее предупреждающее сообщение:

GPT PMBR size mismatch (17752063 != 19800063) will be corrected by w(rite).

Я хотел бы написать сценарий, который автоматически изменяет размер раздела, чтобы занять максимальное пространство, доступное после изменения размера диска, а затем изменяет размер файловой системы. Похоже, мне сначала нужно исправить это предыдущее предупреждающее сообщение.

Я успешно исправил это в интерактивном режиме с помощью утилиты parted, но я хотел бы сделать это автоматически, например:

  1. Исправьте несоответствие размера GPT PMBR.
  2. Расширить раздел.
  3. Расширьте файловую систему.

У утилиты parted есть флаг --script, но он здесь не помогает, поскольку, когда эта опция активна, утилита parted просто пропускает исправление и выводит только таблицу разделов.

№ 2. и 3. работают нормально. Как я могу автоматизировать номер 1 (т.е. без запроса какого-либо взаимодействия с конечным пользователем?)

В раздельный (8) man-страница sas, которая разделена, имеет

-s, --script
никогда не запрашивает вмешательство пользователя

параметр командной строки. Я думаю, вы можете использовать его с сценарий содержащие соответствующие команды parted, чтобы делать то, что вы хотите.

Эй, ребята, я нашел способ использовать sgdisk. Из руководства sgdisk:

-e, --move-second-header
Move backup GPT data structures to the end of the disk. Use this option if you've added disks to a RAID array, thus creating a virtual disk with space that follows the backup GPT data structures. This command moves the backup GPT data structures to the end of the disk, where they belong.

Так что мне просто нужно поставить:

sgdisk -e /dev/vda

в моем сценарии bash, и, похоже, он работает, как ожидалось.