Неудачная попытка разделить сценарий

Неудачная попытка разделить сценарий

У меня есть шаблон VM, который я использую для создания других VM с помощью virt-clone / KVM. Шаблон VM имеет размер 4 ГБ для экономии места. Хранилище для VM, которые я создаю из него, находится на iSCSI-целях или томах LVM (в зависимости от функции), а размеры их файловых систем различаются в зависимости от роли машины.

После создания новой виртуальной машины из шаблона мне приходится изменять размер корневого раздела, если я создаю что-то, что потребует более 4 ГБ на диске. Это отлично работает при использовании parted в интерактивном режиме, но не в скриптовом. При попытке удалить файловую систему меня спрашивают, хочу ли я продолжить, несмотря на использование '-s'

Ниже представлен вывод неудачной попытки выполнения скрипта и работающий интерактивный сеанс для ее достижения.

Какой наилучший способ изменения размера корневого раздела после клонирования можно легко запрограммировать?

Неудачная попытка разделить сценарий

Раздел после клонирования

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

Попытка удаления скрипта

# parted /dev/vda -s rm 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
#

Раздел после неудачного удаления

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

Работает интерактивное изменение размера (с последующей перезагрузкой)

Раздел перед удалением

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

Удаление и создание нового раздела, использующего весь диск

# parted /dev/vda
(parted) rm 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
Yes/No? y
Error: Partition(s) 1 on /dev/vda have been written, but we have been unable to
inform the kernel of the change, probably because it/they are in use.  As a
result, the old partition(s) will remain in use.  You should reboot now before
making further changes.
Ignore/Cancel? I
(parted) mkpart p ext4 1 -1
(parted)

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.7GB  10.7GB  primary  ext4

Изменение размера файловой системы

# resize2fs /dev/vda1
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vda1 is now 2621184 blocks long.

# df -kh  .
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       9.8G  1.6G  7.9G  17% /

решение1

Я понял, как это сделать. Ключ в kpartx, чтобы сделать LVM доступным для parted вне VM (то есть на хосте Hypervisor). Затем вы изменяете размер раздела, затем загружаете гостя и увеличиваете файловую систему.

Итак, если у вас есть гостевая система с именем TESTVM и хранилищем в /dev/VMS/VIRT-TESTVM, вам нужно сделать следующее на хосте гипервизора:

# kpartx -a /dev/VMS/VIRT-TESTVM
# parted /dev/VMS/VIRT-TESTVM rm 1
# parted /dev/VMS/VIRT-TESTVM mkpart -a optimal p ext4 0% 100% 
# kpartx -d /dev/VMS/VIRT-TESTVM

Затем просто запустите машину, войдите в систему и сделайте

# resize2fs /dev/vda1 

Перезагрузите еще раз, просто чтобы быть уверенным.

Связанный контент