Як скопіювати вміст VDI VirtualBox на розділ та подвійне завантаження ОС з нього?


12

Я користувач Linux, але стислий ISO Windows XP зберігаю при собі на накопичувачі пера, якщо мені абсолютно потрібна Windows, щоб щось зробити. Це працює у VirtualBox більшу частину часу.

Але зараз я хочу пограти в деякі ігри, тому я хотів би запустити зображення Windows на власному рівні. На моєму комп’ютері немає CD-накопичувача, тому не можна просто записати ISO і зробити встановлення нормально.

Що я намагаюся зробити, це перемістити встановлене зображення Windows на фізичний розділ NTFS на моєму жорсткому диску і налаштувати GRUB, щоб дозволити мені подвійне завантаження.

Я знайшов багато навчальних посібників, які займаються тим, як зробити VDI для фізичного приводу. Але вони припускають, що я хочу перезаписати весь свій диск. Переміщення неочищеного образу диска ddна розділ призвело до пошкодження розділу.

Я також спробував фокус VMDK використовувати цей порожній розділ та встановити на ньому Windows. Хоча фаза текстового режиму установки закінчується без проблем, VM не працюватиме, або виходить з ладу і продовжує перезавантаження або просто негайно заморожується (залежно від того, як я створив VMDK, з -rawdisk /dev/sda3або -rawdisk /dev/sda -partition 3).

Відповіді:


4

Я вчора провів усі дослідження, і нарешті зміг зробити завантаження Windows XP. Це має бути дещо схожим і для інших ОС. Але операція - це все, але не банально.

Оскільки це небезпечна операція, рекомендую створити резервну копію дорогоцінних даних.

Ось такі кроки:

Підготовка

У випадку, коли Windows XP потрібно змусити його забути поточні параметри букви диска та розділів, тому вам потрібно видалити всі значення з клавіші HKEY_LOCAL_MACHINE / MountedDevices на віртуальній машині перед переміщенням. Ядро відновить його при наступному перезавантаженні. На віртуальних машинах Linux це означає фіксацію fstab після міграції.

Монтаж зображення VDI

Ви не можете просто скопіювати весь VDI в розділ, оскільки він містить і MBR. Вам потрібно скопіювати лише віртуальний розділ, тому спочатку потрібно знайти спосіб монтажу VDI.

Вам потрібен nbdдрайвер і qemu-nbdкоманда. У Ubuntu це в qemu-kvmпакеті.

Спочатку завантажте драйвер nbd:

# modprobe nbd

Це має зробити деякі nbdпристрої в /dev.

Потім встановіть VDI:

# qemu-nbd -c /dev/nbd0 path_to.vdi

Це повинно зробити /dev/nbd0p1, /dev/nbd0p2, і /dev/nbd0p3т.д. для всіх віртуальних розділів. Вони можуть бути змонтовані, як і будь-які звичайні пристрої.

Міграція розділу

Використовуйте ddдля цього, демонтуйте обидві секції перед операцією:

# dd -if=<nbd_device> -of=<real_partition>

напр .:

# dd -if=/dev/nbd0p3 -of=/dev/sda4

Робота ddбезшумно, це може зайняти кілька хвилин, навіть півтори години. Під час операції ви можете відкрити термінал і використовувати, fdisk -lщоб побачити, як все йде добре.

ОНОВЛЕННЯ:

Мабуть, nbd не є надійним рішенням. Це може спричинити помилку вводу-виводу та призвести до відмови DD. Крім того, наступна спроба не вдається негайно. Ви також можете спробувати створити VMDK з неочищеного диска за допомогою цієї команди (під Linux):

$ VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sda

Вам потрібно бути в diskгрупі, щоб змусити її працювати. Потім додайте цей vmdk до віртуальної машини як вторинний жорсткий диск, а потім використовуйте Live Linux ISO до ddрозділу.

Виправлення завантажувального сектору розділу NTFS

Це хакітська частина.

Ми майже готові, але Windows XP не завантажиться, тому що нам потрібно встановити кількість прихованих секторів файлової системи при зміщенні 0x1C. В основному це декілька секторів до розділу NTFS. Ми можемо отримати це число з fdisk -ulкоманди. startПоле вихідних станів , який сектор даний розділ починається, яка в основному число секторів до розділу. Тому дістаньте число звідти, перетворіть його в шістнадцятковий, використовуючи, наприклад, gcalctool.

Відкрийте розділ hexeditтаким чином:

# hexedit /dev/sda4

Потім запишіть кількість прихованих секторів у невеликому ендіантному порядку при 1Cзміщенні. Маленький ендієць означає: 0xABCDEFGHбуде GH EF CD AB. Якщо шістнадцяткове число коротше, ніж 8 цифр, передуйте його нулю.

Закінчивши, збережіть його та вийдіть (Ctrl + X).

Налаштування GRUB

Ви повинні сказати GRUB, щоб він безпосередньо завантажував цей розділ, для GRUB додайте такий запис у меню:

title       Microsoft Windows XP Professional
root        (hd0,3)
savedefault
makeactive
chainloader +1

Де (hdX, Y)ідентифікує розділ. X - 0 для жорсткого диска за замовчуванням, 1 для /dev/sda, 2 для /dev/sdbі т.д. Y - номер розділу. 0 за /dev/sda1, 1 за /dev/sda2тощо.

Це має бути подібним і для GRUB2, але для записів меню використовується трохи інший синтаксис.

Заключні штрихи

Новий розділ NTFS готовий до завантаження. Але вам все-таки потрібно трохи зламати, щоб дістатися до робочого столу Windows XP. Для інших систем можуть знадобитися різні хаки. Спочатку boot.ini потрібно виправити.

[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

Відповідно встановіть номер розділу. Я встановив його на / dev / sda4. Отже номер розділу повинен бути 3.

Можливо, вам доведеться виправити запис реєстру MountedDevices в реєстрі, якщо Windows застигне прямо перед екраном входу.

Реєстр є у <path to windows>/system32/config/systemвас, ви можете переглянути його chntpw. Це може бути проблемою, якщо лист вашого системного накопичувача не є C. Оскільки chntpwможливості запису в реєстр досить обмежені, вам потрібно виправити резервний копію та використати гексидатор, як-от ghex2. У моєму випадку вам потрібно знайти \DosDevices\C:та замінити C іншою літерою диска F.

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

Джерела

Переміщення Windows XP на інший розділ

Встановіть VDI під Linux


0

ви можете спробувати використовувати partimage та gdisk, щоб зробити це. Візьміть gdisk або іншу програму розділів та змініть розмір свого поточного диска / налаштуйте розділ на диску десь. ідеально це буде первинний розділ. Зазвичай я зберігаю розділ 1 для Windows та 2+ для даних Linux.

як тільки розділ налаштований, ви можете використовувати gdisk або інший клон привидів для створення резервних файлів або прямого зображення на інший диск. можливо встановити мережеве з'єднання з хостом, якщо вам потрібно перенести файл таким чином, або ви можете зробити файли img, потім скопіювати потім з файлу vmdk у вашу хост-систему ... потім скористайтеся програмним забезпеченням для зображення для відновлення розділу до місця, яке ви створили в хост-системі

конфігуруйте grub за необхідності для додавання завантаження до цього розділу ntfs.


ви, ймовірно, також можете вимацати vmdk у манерті, яка дозволить програмному забезпеченню зображення безпосередньо читати його з хоста jsut, залежить від того, яким є програмне забезпечення для зображення.
Кендрік

Я вчора провів усі дослідження, і нарешті зміг зробити завантаження Windows XP. Я збираюся це детально записати. Це не банально.
Кальмарій

це досить іронічно, але мені потрібно буде зробити цей процес найближчим часом. У мене є ПК, який не любить встановлювати solaris з якихось причин, тому мені доведеться перетягувати дані з vm у мене на новій машині.
Кендрік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.