LINUX.ORG.RU
ФорумAdmin

По-быстрому переразметить виртуальный диск


0

1

Чем можно быстро переразметить образ жесткого диска для виртуальной машины? Допустим, образ VirtualBox: файл *.vdi.

Сейчас делаю LiveCD GParted в виртуалке - но грузит по минуте, а переразмечать нужно часто.

Спасибо за внимание!



Последнее исправление: mclaudt (всего исправлений: 1)

Один раз разметить как тебе нравится.. а потом забекапить *.vdi ... и потом простым копированием бекапа делать новый размечины раздел... нэ ?

Tok ★★
()
Ответ на: комментарий от Tok

>>Один раз разметить как тебе нравится.. а потом забекапить

Задача немного другая - постоянно пробовать новую разметку.

Думал есть утилита которая использует уже запущенную систему и её драйвера, а не пускает свое по новой.

mclaudt
() автор топика

ага, ещё можно использовать диск формата raw, вместо cow, но я не помню, получилось ли у меня переразбивать такой диск fdisk'ом или нет

anonymous
()

Опиши задачу, пожалуйста. А то я вообще плохо представляю, для чего нужно размечать образ VM, тем более делать это часто.

Почему нельзя грузить виртуалку с одного образа, а из неё уже размечать другой образ?

thesis ★★★★★
()
Ответ на: комментарий от thesis

>>Опиши задачу, пожалуйста.

Экспериментирую с kiwi. Он то переразмечает локальный диск, то нет, в зависимости от конфига.

Почему нельзя грузить виртуалку с одного образа, а из неё уже размечать другой образ?

После каждой переразметки нужно загрузить пробную виртуалку с этим образом, а это сделать затруднительно, если он будет подложен под другую виртуалку с LiveCD GParted.

mclaudt
() автор топика
Ответ на: комментарий от anonymous

>>попробуй parted, gparted это гуй у нему

Да я как бы в курсе про них, в шапке написано даже, но им разве можно скормить файл-образ vdi?

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

Экспериментирую с kiwi

Что это?

После каждой переразметки нужно загрузить пробную виртуалку с этим образом, а это сделать затруднительно, если он будет подложен под другую виртуалку с LiveCD GParted.

Я имел в виду: один образ = система, другой образ - тот, который у тебя должен переразмечаться. Грузишься с первого образа, монтируешь второй, издеваешься сколько влезет.

thesis ★★★★★
()
Ответ на: комментарий от mclaudt

>Да я как бы в курсе про них, в шапке написано даже, но им разве можно скормить файл-образ vdi?

Можно. Грузишся в виртуалку с gparted.iso и перезамечаешь

Led ★★★☆☆
()
Ответ на: комментарий от thesis

>>Грузишься с первого образа, монтируешь второй, издеваешься сколько влезет.

Да, но, повторюсь, это не прокатит если надо после каждой переразметки с этим образом грузиться на виртуалке - он уже будет ассоциирован с виртуалкой LiveCD GParted.

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

Я почему-то думал, что VirtualBox умеет добавлять-отключать оборудование при работающей виртуалке. Сейчас посмотрел - похоже, ни он, ни virt-manager не умеют. VMWare Server 2 так умеет, ЕМНИП, так что, если очень надо - озадачься.

Кстати, тебе критично постоянно работать с одним образом, или можно его пересоздавать каждый раз? А то ведь пересоздвать и переразбивать скриптом проще и быстрее.

thesis ★★★★★
()
Ответ на: комментарий от thesis

>>kiwi

Что это?

Мегаудобная система создания собственных дистров, livecd, pxe-образов на основе openSUSE. http://en.opensuse.org/Portal:KIWI

inb4 -ir «*лавры дениски*»

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

>уже dd-ить весь образ на жесткий диск по любому дольше чем минута.
Ты по ссылке ходил? loop0 должно получиться fdisk'абельно, а следовательно и parted'абельно.

x3al ★★★★★
()
Ответ на: комментарий от x3al

>>Ты по ссылке ходил? loop0 должно получиться fdisk'абельно, а следовательно и parted'абельно.

Упс, точно, не дочитал, поторопился - благодарю.

mclaudt
() автор топика
Ответ на: комментарий от mclaudt

Сделал все как по ссылкам.

od -j344 -N4 -td4 ./HardDisk.vdi | awk 'NR==1{print $2;}'

Полученный offset подставляем в losetup:

losetup -f --show -o 2048 ./HardDisk.vdi

Запускаю gparted /dev/loop1

Отображается все правильно, но при изменении получаю ругань

Error: Error informing the kernel about modifications to partition        
/dev/loop1_part1 -- Invalid argument.  This means Linux won't know about any
changes you made to /dev/loop1_part1 until you reboot -- so you shouldn't mount
it or use it in any way before rebooting
mclaudt
() автор топика
Ответ на: комментарий от Led

А ничего, что об этом написано в стартовом сообщении? ;)

Я так и делаю, причем даже по pxe. А выше был сарказм.

mclaudt
() автор топика
Ответ на: комментарий от anonymous

ага, ещё можно использовать диск формата raw, вместо cow, но я не помню, получилось ли у меня переразбивать такой диск fdisk'ом или нет

Если заменить VBox на KVM, то да, можно

$ sudo fdisk -l /dev/mapper/vg1-win2000sp4

Disk /dev/mapper/vg1-win2000sp4: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc291c291

                      Device Boot      Start         End      Blocks   Id  System
/dev/mapper/vg1-win2000sp4p1   *           1         521     4184901    7  HPFS/NTFS


$ sudo fdisk -l /dev/mapper/vg1-centos54_1

Disk /dev/mapper/vg1-centos54_1: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cd189

                      Device Boot      Start         End      Blocks   Id  System
/dev/mapper/vg1-centos54_1p1   *           1          13      104391   83  Linux
/dev/mapper/vg1-centos54_1p2              14         522     4088542+  8e  Linux LVM
sdio ★★★★★
()
Ответ на: комментарий от mclaudt

>Error: Error informing the kernel about modifications to partition

/dev/loop1_part1 — Invalid argument. This means Linux won't know about any

changes you made to /dev/loop1_part1 until you reboot — so you shouldn't mount


it or use it in any way before rebooting


Ничего страшного. Просто говорит, что может не получиться смонтировать в хост-системе до partprobe(). Если очень хочется, то как минимум можно пересоздать loop-девайс.

x3al ★★★★★
()
Ответ на: комментарий от x3al

И да, возможно, оно уже смонтировано где-то.

x3al ★★★★★
()

Есть такой совет

а переразмечать нужно часто.

одним и тем же способом? parted, который консольный, можно скриптовать, а потом проиграть скрипт из файла

anonymous
()

to lazyklimm, anonymous

Спасибо за наводку про nbd - интересная вещь. Завелась, правда приходится вручную чистить rm /var/lock/qemu-nbd-nbd0.

#qemu-nbd --verbose --connect=/dev/nbd0  --offset 2048 ./HardDisk.vdi
NBD device /dev/nbd0 is now connected to file ./HardDisk.vdi

Однако все равно после gparted /dev/nbd0 и попытки переразметки получаем откат действий и сообщение:

Error informing the kernel about modifications to partition /dev/nbd0_part1 -- Invalid argument.  This means Linux won't know about any changes you made to /dev/nbd0_part1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
mclaudt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.