Русский
Русский
English
Статистика
Реклама

Запуск Linux с виртуального диска vmdk на реальном железе и VirtualBox

Возникла необходимость обеспечить работу Linux как на виртуальной машине (VirtualBox), так и на реальном железе. После долгих поисков и попыток запускать Linux с виртуального диска формата VHD, по примеру Windows, которые либо слишком сложны, либо не работают, я пришел к достаточно простому способу сделать это. Правда не из дисков в формате VHD, а из образа раздела диска в формате VMDK.


Linux возможно загрузить из образа раздела. Теперь нужно сделать так, что бы у нас был и образ диска, который понимает VirtualBox и образ раздела, который может загрузить grub.


Далее расписано, как это можно сделать быстро и без лишней головной боли.


Все что далее, сделано из Windows.


Создаем новый диск фиксированного размера в формате vmdk:


VBoxManage createmedium disk --format VMDK --variant Fixed --filename test1.vmdk --size 10000

Имеем созданные файлы:


  • test1.vmdk дескриптор диска, текстовый файл
  • test1-flat.vmdk файл с образом диска

Теперь необходимо в начало диска добавить еще один кусок размером 1M.


Создаем файл test1-boot.vmdk размером 1M:


fsutil file createnew test1-boot.vmdk 1048576

В test1.vmdk меняем createType="custom" на createType="monolithicFlat". Это будет означать, что диск состоит из нескольких файлов.


Добавляем test1-boot.vmdk в test1.vmdk, первым. После добавления test.vmdk должен выглядеть как-то так:


...createType="monolithicFlat"RW 2048 FLAT "test1-boot.vmdk" 0RW 20480000 FLAT "test1-flat.vmdk" 0...

где 2048 это 2048*512=1048576 байт (1M) для этой части диска.


Создаем виртуальную машину для установки Linux, подключаем к ней диск test1.vmdk и ставим ubuntu/kubuntu/xubunu. Я ставил только эти дистрибутивы, начиная с версий 18.04 до последней (еще не вышедшей) 21.04, все остальное не проверял.


Особенность при установке: должен быть создан только один раздел на виртуальном диске и должен он быть на границе 1M. Это поведение по умолчанию при ручном создании раздела.


Загрузчик должен быть установлен на диск /dev/sda, а не на раздел /dev/sda1. Это тоже поведение по умолчанию.


После того, как все установили, перезагружаемся в VirtualBox, что бы убедится, что Linux загружается.


Теперь загрузим только что установленный Linux на реальном железе. Проще всего сделать это с использованием загрузочной флешки.


Создаем загрузочную флешку (или usb-диск) с использованием Ventoy (https://www.ventoy.net/).


Создаем файл ventoy\ventoy_grub.cfg на разделе данных флешки со следующим содержимым:


menuentry 'boot linux from vmdk part' {     set imgfile="/mydisks/test1-flat.vmdk"    set d_label="MYDISK"    search --set=root --label ${d_label}     loopback loop0 ${imgfile}    set root=(loop0)    linux /boot/vmlinuz root=/dev/disk/by-label/${d_label} loop=${imgfile} rw nosplash    initrd /boot/initrd.img}

Здесь:


  • imgfile="/mydisks/test1-flat.vmdk" путь до файла с образом раздела
  • d_label="MYDISK" метка раздела, где лежит файл с образом раздела test1-flat.vmdk

Загружаемся с этой флешки, нажимаем F6 и попадаем в меню, где выбираем пункт "boot linux from vmdk part". Радуемся запущенному Linux.


Можно вернуться в свою рабочую OS, запустить VirtualBox и загрузить Linux из виртуального диска.


Таким вот, незамысловатым, способом можно иметь возможность сидя в Windows запускать Linux в VirtualBox, настраивать его А потом запускать на реальном железе.


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


Кстати, образ test1-flat.vmdk можно скопировать на флешку Ventoy, и запускать с нее, тоже работает.


Ну и на последок. Ventoy умеет загружать linux из vhd, но требует дополнительных манипуляций с установленным Linux (https://www.ventoy.net/en/plugin_vtoyboot.html). Но, к сожалению, у меня эти манипуляции привели к тому, что загрузка работает либо на реальном железе, либо в VirtualBox. И там и там с одним образом не получается.

Источник: habr.com
К списку статей
Опубликовано: 17.03.2021 14:12:14
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Настройка linux

Linux

Virtualbox

Vmdk

Grub

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru