LINUX.ORG.RU

Как загрузить образ vmdk на реальном железе?

 ,


0

1

Имеется виртуальная машина с linux (xubuntu 18.04). В качестве диска используется формат vmdk. Можно ли с этого образа диска загрузится на реальном железе?

Файл vmdk - это просто raw. Он прекрасно распознается и монтируется через losetup -P. Grub2 через loopback его так же видит (и partition распознаются). А вот как заставить сделать его в grub2 корневой файловой системой - никак не могу найти... Это вообще возможно?


В ядре наравне с поддержкой таблиц разделов, вроде, видел возможность прописать разделы в cmdline ядру. Не знаю, может ли он файлы, сам не пробовал.

Есть ещё вариант сделать initramfs с losetup.

boowai ★★★★
()

Сделай раздел скопируй туда содержимое, потом обнови груб и ребутайся, всё.

anonymous
()
Ответ на: комментарий от boowai
menuentry 'Tipa run1' { 
    loopback loop0 (hd0,1)/vhd/lindisk1-flat.vmdk
    set root=(loop0,1)
    linux /vmlinuz root=/dev/sda1 loop=/vhd/lindisk1-flat.vmdk rw nosplash
    initrd /initrd.img
}

Вот что grub.cfg в качестве эксперимента. Естественно вываливается в initramfs.

/vhd/lindisk1-flat.vmdk - это собственно файл-образ диска. В нем имеется 1 раздел ext4, который root в виртуальной машине.

/dev/sda1 - это диск, на котором валяется vmdk.

loop=/vhd/lindisk1-flat.vmdk - это вот откуда-то взял с какой-то статьи в инете, но не могу найти откуда... Предполагалось, что этот файл подключится как loop-устройство, но оказалось что я скопировал это как мартышка, что удручает. Найти описание параметра loop что не смог...

После вываливания в initramfs имею доступ к /dev/sda1, примонтированном к /host. Т.е. /host/vhd/lindisk1-flat.vmdk имеется.

Вот.

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

Так то понятно, но не нужно. Нужно именно с этого образа, да еще потом что бы он остался таким, что бы можно было снова в VirtualBox загрузить...

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

Вероятно loop-файл ожидается без таблицы. Посмотри документацию по своему initramfs или внутри самого. Может можно задать смещение раздела через loopflags, или вроде того. Если нельзя, то переделать скрипт.

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

Мда... Пробелов в знаниях у мну оказывается больше, чем я наивно предполагал... Не могли бы вы ткнуть в меня пальцем, а потом ткнуть в места (в ссылки), которые нужно изучить, что б понимать как вмешиваться в процесс загрузки... Пошерстил я поверхностно гугла, но в основном разжевывается как iso-загрузить да обои красивые поставить, а вот фундаментальных описаний что-то не нашел...

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

Сконвертируй qemu-img в raw образ, залей его через dd на реальный раздел. Что-то такое я делал с вендой, прекрасно работала. Так vmdk это по-моему не просто raw, то, что он распознаётся, это наверное бонус дизайна.

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

Не, это просто-тупо raw-образ диска. Имеется файлик xxx.vmdk текстовый, в котором описано что это за фигня, и собственно образ xxx-flat.vmdk, который просто образ диска. Именно с него я и пытаюсь загрузится... По крайней мере

sudo losetup -P -f ./xxx-flat.vmdk
все распознает, устройства типа /dev/loop0p1 появляются и нормально монтируются....

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

Если loopflags работает как я думаю, то надо приписать вроде loopflags=offset=1048576 , или сколько там у тебя байт до раздела. Погугли и попробуй сначала просто mount -o loop,offset=смещение файл точка .

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

Вообщем сделал я образ раздела, а не диска и с него прекрасно грузится:

menuentry 'Tipa run1' { 
    loopback loop0 (hd0,1)/vhd/root.img
    set root=(loop0)
    linux /vmlinuz root=/dev/sda1 loop=/vhd/root.img rw nosplash
    initrd /initrd.img
}

Ну и так как принципиально загрузка идет, то дальше уж разберусь. Либо через loopflags (спасибо, кстати, за наводку), либо разобью vmdk на запчасти-разделы. Думаю, что оно (vmdk) это умеет.

fguest
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.