Установка Linux из виртуальной машины на съемный диск

Прочитал статью Оживление легенды: ставим ОС на Libretto 50 CT
в которой описывается способ №3 установки ОС Linux на HDD из виртуальной машины. И решил предложить другой вариант, как мне кажется более правильный, чем тот, который изложен в статье. Во всяком случае автору статьи, smashrod, советую попробовать. Может быть этот вариант окажется рабочим.

Для решения задачи нам понадобится:
1.работающий компьютер с ОС Linux
2.установленный в этой ОС VMware Server
3.съемный диск, подключенный к рабочему компьютеру

Что нужно сделать:

1.Создать виртуальную машину в VMware по конфигурации приближенную к той, в которой будет работать реальная система. Винт нужно создать IDE, необходимого размера, не резиновый, цельный.
2.Разбить виртуальный hdd на разделы, установить систему.
3.Далее нам понадобятся сведения о конфигурации винта в виртуальной системе. Для этого нужно выполнить команду в консоли: sudo fdisk -ul /dev/sda, где /dev/sda имя винта в системе. Важно заметить, что ключ «u» следует указывать обязательно, он переводит единицы измерения границ разделов из цилиндров в секторы.

Результат выполнения команды будет примерно таким:

Диск /dev/sda: 74.3 ГБ, 74355769344 байт
255 heads, 63 sectors/track, 9039 cylinders, всего 145226112 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x23e223e1

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 63 530144 265041 82 Linux своп / Solaris
/dev/sda2 * 530145 16996769 8233312+ 83 Linux
/dev/sda3 16996770 145211534 64107382+ 83 Linux

Более всего нас интересует третья колонка в таблице разделов — смещение начала раздела (в секторах). На ее основе вычислим смещение в байтах. Сделаем это для корневого раздела /dev/sda2: смещение начала = 530145 секторов, размер сектора = 512 байт. Считаем:

echo $((530145*512))
271434240
где: 271434240 — это и есть смещение начала раздела /dev/sda2 в байтах

4.Затем корректно завершаем работу виртуальной машины, создаем в ее каталоге новый подкаталог vmroot и монтируем в него виртуальный винт:
mount -t ТИП -o ro,loop,offset=271434240 hda.img ./vmroot
где: ТИП — тип файловой системы; 271434240 — смещение начала раздела (см. выше)
5.Подключаем съемный hdd к реальной системе, разбиваем его на разделы, такие же как и на виртуальном и в том же порядке, форматируем, затем примонтируем этот hdd в систему.
6.Переходим в подкаталог vmroot и копируем:
cp -axv ./bin ./home ./sbin ./sys ./usr ./boot ./etc ./lib ./opt ./root ./srv ./var /dev/съемный диск
7.Заходим в новую систему:
chroot /mnt/съемный диск
8.Правим /etc/lilo.conf и /etc/fstab
9.Далее нужно восстановить загрузчик lilo
/sbin/lilo
lilo -r /mnt/hdd

После этого нужно отмонтировать съемный диск, подключить к целевому компьютеру и попробовать загрузиться.

P. S. За этот способ нужно благодарить snobs-diary
+19
3 декабря 2008, 23:14
25
Dr_Linux 4,9

комментарии (15)

–2
BuriK666 #
VMware — платный продукт, есть OpenSource аналоги, Qemu и VirtualBox

а с qemu все в разы проще,
qemu -hda /dev/hd# -cdrom /lala/blabla/os.iso
+5
gatech #
VMware Server — бесплатный, даже для корпоративного рынка.
0
kostin #
А похожая магия есть для VirtualBox? Поверхностное гугление меня не спасло :(
0
BuriK666 #
linuxopen.ru/2008/06/10/migracija-virtualnykh-mashin-virtualbox.html
+1
odessky #
А еще можно взять stage, развернуть и chrootнуть на диск, после чего православно поставить Linux. Впрочем, это для настоящих Ъ.
0
BuriK666 #
Это для Гентушнеков ;)
0
odessky #
Я могу так сделать не только с gentoo.
0
icCE #
Согласен, я так делаю давно с Fedora и Suse ну и gentoo аля stage4
0
smashrod #
мы делали это тоже самое и в виртуалке и на физической машине, только разбивку делали не руками а с помощью dd копировали с одной на другую
+1
postdig #
а копировать лучше через dump / restore

cd /mnt/съемный_диск
dump -f- / | restore -rf-

0
efoxxi #
а ещё лучше через partimage
0
jean #
через dd в данном случае попроще будет, причем можно через loopback-устройство а можно через netcat в материнскую систему залить. да и вроде бы была возможность vmware физический диск отдать.
0
Amon_Sha #
Всем, кто создаёт разделы на устройстве /dev/sdY идентичные разделам на устройстве /dev/sdX (вручную или с помощью dd), советую почитать man sfdisk.
0
roller #
название статьи созвучно с «Удаление гланд через сами-знаете-что»
простите, не удержался)
0
romy4 #
возник немного иной вопрос: линух, установленый из-под винды записался в .bin файлик на виндовом разделе. как его можно перенести на физический раздел и потом растянуть на всё свободное место?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.