Перехід від віртуальної машини (ВМ) до фізичної системи


124

Aka: Як я можу перетворити .vdi чи .vmdk у реальну установку на фізичному диску?

Чи можливо / доцільно перенести установку віртуальної машини Ubuntu на фізичну машину? Якщо можливо, наскільки складно це зробити та які кроки мені потрібно зробити, щоб підготуватися до міграції.

Я хотів би зробити тестування на віртуальному комп'ютері, і якщо він працює, перенесіть цю систему на фізичне обладнання замість того, щоб перевстановити все. Чи можливо це?


Відповіді:


98

Так, це можливо. Це навіть не що важко, він просто займає деякий час, в Ubuntu LiveCD, липкі назад-пластик, і зовнішній USB - диск (якщо ви не маєте більше одного внутрішніх дисків).

Попередній крок: Перетворіть диск на щось корисне

І VMWare, і VirtualBox (серед інших) використовують формати дисків, які не піддаються запису безпосередньо на диск. Ви можете, але я особисто вважаю, що зручніше спочатку написати це посередницькому, стандартному зображенню. Це можна зробити з вашої поточної системи, не завантажуючись на LiveCD.

  • Завантажте термінал і запаліть:

    cd /media/wherever-the-image-is/
    
    # for VMWare
    sudo apt-get install qemu-kvm
    qemu-img convert your-vmware-disk.vmdk -O raw disk.img
    
    # For VirtualBox
    VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW
    
  • Перемістіться /media/wherever-the-image-is/disk.imgкудись, до чого ви не збираєтесь писати. Якщо ви плануєте записати його на диск, на якому він зараз сидить, ви захочете вставити його на окремий внутрішній диск або, що найгірше, на гірший зовнішній диск.

  • Наступні інструкції передбачають, що ви перемістили його /media/dave/disk.img( daveце зовнішній USB-диск)

  • Перш ніж робити якісь серйозні записи, переконайтеся, що у вас є резервні копії . Це просто сказати, але один друкарський помилок, і є дуже реальна можливість, що ви забруднить вашу систему. Припустимо, що все піде не так і будьте готові. CloneZilla може допомогти вам зробити резервні копії всіх дисків, якщо у вас є десь для зберігання цих даних.

Запишіть зображення на власний диск

Вам захочеться зробити щось подібне. Це передбачає, що ви збираєтеся перезаписати цілий диск. Якщо ви хочете зробити поруч із установкою Windows, не дотримуйтесь цих інструкцій! Перехід до куль.

  • Завантажтесь на компакт-диск Ubuntu Live та натисніть кнопку "Спробувати Ubuntu".

  • Встановіть місце, де зберігається ваше зображення vmdk (наприклад, зовнішній диск USB як /media/dave). Ви НЕ встановіть місце , де ви хочете написати.

  • Тоді ми переходимо до роботи:

    sudo dd if=/media/dave/disk.img of=/dev/sdX
    

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

  • Потім ви можете відкрити gpartedабо щось інше, і ви повинні побачити свій розділ Ubuntu, що сидить на диску. Ви повинні мати можливість розширити його.

Запишіть зображення на диск поряд з іншою операційною системою

Це, можливо, зовсім безпечніший спосіб робити справи. Ідея дуже схожа, крім того, що ви робите належну установку Ubuntu, а потім просто синхронізуєте файли з disk.img.

  • Цього разу для вашого LiveCD повинна бути та сама версія Ubuntu, що і ваша віртуальна установка. Завантажте Live CD і знову натисніть кнопку Встановити.

  • Слідкуйте за установкою через перерозподіл речей, як вам здається. Приблизно через 10 хвилин вас встановлять, і він попросить вас перезавантажити. Не перезавантажуйте. Неважливо, чи випадково ви це зробите, просто переконайтеся, що ви знову в LiveCD для наступних інструкцій.

  • Змонтуйте розділ нової інсталяції та зовнішній диск, на якому ви зберігали disk.imgраніше (просто двічі клацніть по них у nautilus).

  • Встановіть ваш disk.img ISO в термінал:

    sudo mkdir /media/oldinstall
    sudo mount -o loop /media/dave/disk.img /media/oldinstall
    

    -Примітка - Після створення потрібного .img-файлу іноді, коли ви намагаєтесь встановити його як циклічний пристрій, ви можете отримати таку помилку

    "Підпис NTFS відсутній. Не вдалося встановити '/ dev / loop0': Неправильний аргумент. У пристрої '/ dev / loop0', схоже, немає дійсного NTFS."

    Файл .img іноді містить основний запис завантаження та таблицю розділів перед фактичним розділом, який ви, можливо, захочете встановити. Звідси потрібно з’ясувати зміщення необхідного розділу. Для цього можна скористатися інструментом " Розділений" . Для прикладу подивіться відповідь sisco311 за цим посиланням http://ubuntuforums.org/archive/index.php/t-1576011.html

    Отже, якщо ви визначили ваш зсув "xxx", ви можете змонтувати розділ, використовуючи

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • Звідти ви можете або вибирати файли з вишнею, або просто копіювати все, що знаходиться поверх вашої нової установки Ubuntu, використовуючи щось на кшталт:

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • Перезавантажте програму, і вам слід привітатися зі старою установкою VMWare, але на голому металі. Якщо у вас виникли неприємні проблеми з грубою проблемою, ви можете виправити це, повернувшись до "Live CD", хронізуючи та виправляючи речі .


7
Чи знаєте ви про інструмент, який робить це автоматично?
the_drow

1
Для налаштувань у Windows / VirtualBox VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXкоманда все ще працюватиме. Все, що потрібно - це записати CD Program Files\Oracle\VirtualBoxперед запуском першої команди.
Авст

2
@Попевно сумніваюся, що /dev/sdXціль дійсна в Windows. AFAIK це буде \\Device\Harddisk0чи щось подібне.
Данатела

3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXне працює. У Linux це дає помилку: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. Потрібно скористатися VBoxManageкомандою, щоб спочатку надіслати його зображення. Потім використовуйте DD, щоб розмістити зображення на фізичному диску.
ЛД Джеймс

8

Можливо, це не зовсім те, про що ви просите, але це може здійснити те, що ви хочете зробити.

Оскільки всі ваші налаштування зберігаються у вашому домашньому каталозі, ви можете просто зробити резервну копію його на інший розділ на реальному диску. Після того, як ви встановили свіжий Ubuntu на реальний диск, просто запустіть програму резервного копіювання ще раз, щоб відновити домашній каталог із усіма налаштуваннями неушкодженими.

Ви можете використовувати дійсно акуратну програму резервного копіювання під назвою Déjà Dup .

Інформація з програмного центру ubuntu:

Déjà Dup - це простий інструмент резервного копіювання. Він приховує складність резервного копіювання правильного шляху (зашифрованого, поза межами сайту та регулярного використання) та використовує подвійність як бекенд.

Особливості:

  • Підтримка локальних, віддалених або хмарних резервних копій, таких як Amazon S3 або Rackspace Cloud Files

  • Безпечно шифрує та стискає ваші дані

  • Поступово створюйте резервну копію, що дозволяє відновити з будь-якої конкретної резервної копії

  • Графіки регулярних резервних копій

  • Добре інтегрується у робочий стіл GNOME

введіть тут опис зображення

Ви зробите менше ніж за дві години!

Щасти!


1
Звучить легко. Чи можете підтвердити, чи справді це працює?
Матенг

серед іншого .... UID (номери користувачів) може бути різним на той момент часу.
Томачі

5

Спробуйте UDPCast

Ідея полягає в тому, щоб передати весь ваш vmdk з його віртуальної машини на фізичну машину, де він записаний на фізичний hdd.

Порядок описаний нижче.

Оскільки у вас є файл vmdk, у вас може бути робоча станція VMWare, навіть повна віртуальна машина, до якої додається vmdk. Запустіть свою віртуальну машину із цим доданим vmdk, але замість звичайного завантаження використовуйте PartedMagic liveCD для завантаження з.

Коли запускається liveCD, перейдіть до головного меню та знайдіть те UDPCast Disk Cloning. Діалогові вікна діалогу не пояснюються (див. Знімок екрана) Запуск екрану відкриття диска UDPCast

Вибравши цю Віртуальну машину для вибору sender, слід вибрати, який диск ви хочете транслювати (використовуючи позначення Unix, наприклад / dev / sda).

Після того як ви розпочали роботу sender, вам також потрібно почати receiver. Оскільки у вас є фізичний hdd, я припускаю, у вас також є повний ПК із цим доданим hdd. Тут те саме: вам потрібно почати liveCD з UDPCast Disk Cloningвибору receiverцього часу, а також відповідного фізичного hdd.

Варто зауважити, що вам слід домогтися всіх необхідних механізмів, щоб мати мережевий зв’язок між вашою Віртуальною машиною та фізичним обладнанням. Ви повинні вжити необхідних запобіжних заходів, якщо ваш vmdk містить приватні дані, оскільки його вміст буде ефективно передаватися через вашу мережу. Інша справа, що ваш цільовий hdd повинен мати не меншу ємність, ніж ємність вашого vmdk. Очевидно, але також варто відзначити, що ваше зображення викладається один на один на цільовому hdd і вам потрібно виконати відповідні операції з gparted або подібним, щоб скористатися більшою ємністю нового нового HDD.


Я хотів би зазначити, що цей метод справді простий і порівняно простий у виконанні. А саме, єдиний етап підготовки, який потрібно зробити, - це підготувати свій LiveCD з UDPCast на ньому або будь-яким іншим LiveCD, що достатньо для завантаження та запуску UDPCast. Якщо у вас є якийсь віртуальний hd-образ, ви напевно використовували його у віртуальній машині, яка вже налаштована і готова, з іншого боку, ви підготували свою фізичну систему, і вона також готова до виконання завдання.
PF4Public

Є ще: UDPCast можна запустити безпосередньо з PXE. udpcast.linux.lu/bootloader.html#pxe
PF4Public

4

Якщо у вас встановлений VirtualBox, ви можете за допомогою команди перетворити файл VDI (зображення диска VirtualBox) у формат IMGVBoxManage , а потім скопіювати його на фізичний диск, наприклад

VBoxManage clonehd --format RAW file.vdi file.img

Потім ви можете скористатися ddкомандою, щоб скопіювати файл у фізичний розділ:

dd if=./file.img of=/dev/<partition_here>

Примітка: За потреби використовуйте судо. Будьте обережні, вказуючи потрібний пристрій в / dev.


0

Якщо у вас новий фізичний диск, приєднаний до машини, віртуальний диск VM включений, ви можете конвертувати VDI у фізичний без проміжного перетворення, ймовірно, економлячи купу часу та дискового простору. Це якщо припустити, що ваш фізичний диск такий же або більший, ніж максимальний розмір віртуального диска. У моєму випадку мета полягала в перетворенні VDI на ZFS zvol, але підхід повинен бути однаковим для будь-якого блокового пристрою.

Спочатку створіть файл VMDK, що вказує на ваш блоковий пристрій:

VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX

Тоді (при відключенні VM!) Ви можете клонувати VDI до VMDK:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

Це займе певний час ... Коли це закінчиться, ви можете видалити файл VMDK, оскільки він використовувався лише як вказівник для VirtualBox для пошуку фізичного пристрою.

У моєму випадку новий zvol був точно такого ж розміру, що і віртуальний диск. Зважаючи на те, що ваш фізичний диск, ймовірно, інший, вам потрібно буде використовувати якийсь механізм зміни розміру розділів, щоб заповнити повний диск. Gparted чи щось можливо. Ви повинні мати змогу вказати, що на пристрої phys / dev / sdX, поки він ще приєднаний до VM-машини, не потрібно вдаватися до завантаження компакт-диска фізичним хостом.

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

У випадку, якщо ви хотіли продовжувати використовувати фізичний диск з VirtualBox, тримайте VMDK навколо та використовуйте VBoxManage storageattachдля підключення його до VM.


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