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

разделы kvm / vmbuilder меньше, чем должны быть, 10% логического тома всегда нераспределены

Я использую инструмент vmbuilder для создания виртуальных машин KVM в моей хост-системе ubuntu. Для каждой виртуальной машины я создал текстовый файл vmbuilder.partitions, в котором определены размеры разделов виртуальной машины.

Так просто как:

root 100000
swap 4000

Теперь я бы создал новый логический том для виртуальной машины, размер которого точно соответствует размеру всех определенных разделов. (В этом примере я бы запустил lvcreate -L 104G ...)

В результате получается LV размером ровно 104 ГиБ. Но мой корневой раздел размером 100 ГБ занимает всего 93,13 ГБ. И поменять местами около 3,72 ГиБ. В LV имеется около 7 ГиБ незанятого пространства.

Это очень странно, потому что даже если вы вычисляете номера vmbuilder.partitions по 1024 байта / мегабайт, размер корневого раздела все равно должен быть 97,65 ГиБ, а не около 93. И размер подкачки должен быть около 3,9 ГиБ вместо 3,72. (К сожалению, эти числа увеличиваются, определение 1 ТБ будет иметь только около 930 ГиБ вместо 976.)

Это МОЖЕТ быть исправлено путем ручного удаления оценочного количества байтов из LV. Но я хочу с самого начала иметь разумные ценности. А иметь 10% нераспределенного пространства в каждой виртуальной машине явно недопустимо.

Кто-нибудь знает логику этого? Большое спасибо.

Что ж, пока я не найду реальный ответ, я буду придерживаться следующего обходного пути с использованием LiveCD gparted. Как оказалось, перегородки действительно легко исправить, не касаясь самого LV. Если вы используете комбо LVM / libvirt / KVM / QEMU, вы можете использовать следующее.

  • поместите gparted LiveCD-iso в удобное для чтения место (то есть не в / root)
  • virsh edit <vmname> изменение <boot dev="hd" /> к <boot dev="cdrom" />
  • добавьте рядом с другими дисковыми блоками:

<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/some/vm-readable/path/gparted-live-0.14.0-1.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>

  • переопределить и перезапустить vm, подключиться через VNC (например, используя virt-viewer)

Используя графический интерфейс gparted, вы можете перетаскивать разделы, чтобы заполнить каждый последний байт LV.

Не забудьте снова изменить загрузочное устройство вашей виртуальной машины на «hd». Переопределите и перезапустите, и будьте довольны размерами ваших разделов, как они должны были быть все время.