Як використовувати реальний розділ із встановленою Windows 7, у віртуальну скриньку vm?


37

Мій Ubuntu 12.04 інстальовано /dev/sda5 та Windows 7 увімкнено /dev/sda1. Коли я запускаю Ubuntu, я хотів би використовувати Virtualbox для запуску Windows 7 у віртуальній машині. Розділ Windows 7 має 1 ТБ і наполовину заповнений, тобто великий, тому я не хочу копіювати його на віртуальний жорсткий диск.

Я прочитав, що можна використовувати справжній жорсткий диск для VM Virtualbox, але різні знайдені нами інструкції відрізняються одна від одної, і я не можу зробити так, щоб він працював. Хтось знає спосіб змусити його працювати в Ubuntu 12.04 та Virtualbox 2.1.12_Ubuntu r77245 (остання Ubuntu встановила репост)?

Будь ласка, опублікуйте, як це працює для вас, оскільки я хочу спробувати будь-який метод, який може працювати.


Чому ваш MSWIN-розділ 1TiB? Хоча це не повне рішення: Якщо можливо, перемістіть усе, що не повинно бути там (дані ... медіа-файли?), А потім повторно розміріть розділ, що полегшить будь-який підхід. Якщо ви хотіли піти шляхом зображення, очищення, а потім зменшення цього розділу залишить у вас достатньо місця для створення повного зображення меншого нового розділу. :-)
Аластер

Відповіді:


27

Команда, яку ви хочете, є

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Це створить спеціальний файл віртуального диска VMDK (Win7.vmdk), який фактично є вказівником на розділ хост-диска /dev/sda1.

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

  • (а) Я ніколи цього не пробував, тому не знаю, наскільки це надійно
  • (b) у вас можуть виникнути проблеми з активацією Windows, залежно від вашого ліцензійного ключа та чи вирішить Windows, що виявлене "обладнання" суттєво змінилося

Дякую. Я навіть не думав про проблему активації. Це обов'язково зупинить мої плани.
Джаз

1
Крім того, навіть якщо це спрацювало (в чому я сумніваюся), ви можете серйозно пошкодити вашу Windows під час роботи як із завантажувального, так і з VM.
Таккат

@ ubnewbie2: я, мабуть, спробую це лише в якості експерименту та / або при використанні якогось ключа об'єму ліцензування, і я, мабуть, розглядаю це як операцію в одну сторону; тобто у вас буде більше труднощів при спробі змінити це. Я фактично запускаю Windows 7 і використовую VirtualBox VM з Ubuntu, часто в повноекранному режимі, тому комп'ютер, здається, працює лише під Linux, і був би впевненіший у запуску Ubuntu на сирому розділі диска.
StarNamer

FYI, я зараз спробував це, навпаки. Мені потрібно було змінити машину під управлінням Ubuntu на Win 7, тому я звільнив простір, змінивши розмір розділів і створивши новий і встановив Win 7. Це замінив grub2 на завантажувач він Windows, тому я встановив VirtualBox і створив нову віртуальну машину, з мінімальний віртуальний диск для бронювання, на якому потім використовуються існуючі "необроблені" розділи. Він працює добре, хоча трохи млявий через зменшення пам’яті та бачення лише 1 ядра процесора (замість 4).
StarNamer

-розділи в кінці списку розділів, які ви хочете, щоб віртуальне вікно «бачило» (а не розділ, який ви хочете використовувати) VBoxManage internalcommands --help, покаже вам інші речі, які ви можете зробити з внутрішніми командами, а також те, що означають параметри.
boatcoder

16

Так, ви можете зробити це за допомогою внутрішньої createrawvmdkкоманди, яка створить не ціле зображення диска, а покажчик на власне обладнання.

Є два способи зробити це

  • A. Повне зображення диска (of / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. Зображення перегородки

    Як показав @StarNamer, ви можете використовувати лише один або кілька розділів.

    Щоб створити зображення лише одного (/ dev / sda1) розділу:

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Щоб створити власну таблицю розділів, яка буде відображати / dev / sda2 та / dev / sda1 у такому порядку:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

Найяскравішою відмінністю буде те, що повне зображення диска використовуватиме завантажувач та таблицю розділів саме так, як вони є на вашому диску, тому теоретично (я це робив раніше лише у qemu), ви зможете налаштувати ОС зі своєї віртуальної машини. І з мого обмеженого досвіду можу сказати, що повне зображення диска буде працювати саме так qemu -hda /dev/sdb.

Примітка: Якщо ви використовуєте користувач для доступу до диска, необхідно додати його diskі vboxusersгрупу, наприклад ,

sudo usermod -aG disk,vboxusers ubuntu

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

Подальше читання:


"Повне зображення диска буде використовувати завантажувач та таблицю розділів саме так, як вони є на вашому диску" - за якого сценарію, перший (/ dev / sdb) або другий (із вказаними розділами)?
naught101

1
Також virtualbox потрібно запустити як root, інакше ви отримаєте Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101

3
"Також віртуальну скриньку потрібно запустити як root". Насправді ні, вам потрібно бути членом групового диску. Набагато безпечніше, ніж запуск віртуальної коробки як root.

2
Ось що для мене працювало з Ubuntu 16.04 як хост-системою та Windows 10 як гість: я створив файл .vmdk за допомогою sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. Таким чином я включив розділ Windows, а також розділ завантажувача EFI. Потім я дотримувався вказівок шилки на virtualbox.org/ticket/7702 і додав cloverefiboot. Працює як шарм!
dzmanto

Ви також можете встановити префікс команди VirutalBox (і VBoxManage), sudo -g diskщоб лише надавати доступ до virtualbox, але не до всіх інших процесів.
Ян Худек

0

Існує опція Disk під назвою "Immutable", тому теоретично, якщо ви виберете цей параметр для посилання vmdk на ваш необроблений диск, він не повинен змінювати початковий розділ.

Для цього відкрийте "Віртуальний медіа-менеджер", знайдений у розділі "Файл", виберіть своє зображення та натисніть "Змінити" (Ви повинні переконатися, що це зображення не приєднано до жодної машини, інакше ви отримаєте помилку). Тепер ви можете встановити тип медіа на "Immutable".

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

Хтось міркує, хто говорить проти цієї ідеї?


0

Вже декілька років я працюю з подвійним завантаженням Windows і Ubuntu з Ubuntu Partition, також завантажуючись у Windows VirtualBox, щоб скористатися можливостями сенсорного екрана, які Linux ще не освоїв.

Я налаштував це за допомогою інструкцій, подібних нижче;

Нові машини можуть одночасно працювати з обома ОС краще, ніж окремі системи на старих машинах.

Знизу: Вам потрібно зберегти інструкції, які ви використовуєте для налаштування, якщо оновлення відключить з'єднання VirtualBox (моя поточна проблема).


0

Після багатьох спроб я закінчився акуратним і чистим рішенням:

  1. Завантажте розділ Windows, який ви хочете віртуалізувати
  2. Завантажте утиліту Disk2VHD від Sysinternals
  3. Якщо у вас є розділ UEFI , дотримуйтесь цих інструкцій
  4. Створіть VHD (не VHD X ) зображення вашого C: розділ, відновлення, UEFI (якщо такий є) і все, що ви хочете
  5. Поверніться до Linux, відкрийте VirtualBox та створіть VM відповідно до специфікацій вашої операційної системи Windows
  6. До цього ВМ додайте диск VHD, створений у точці 4
  7. Це воно
  8. Прибуток

Усунення несправностей у випадку UEFI:

  1. У налаштуваннях VM у VirtualBox встановіть прапорець "Увімкнути EFI" на вкладці Система
  2. Якщо ви застрягли в оболонці EFI, запустіть таку команду:

    fs0:\EFI\Boot\bkpbootx64.efi
    

Деякі зауваження щодо голосування?
Гарлікс

Я бачу, що це сталося кілька днів тому, але я не пам’ятаю, щоб давали вам голоси, принаймні, не спеціально. я б із задоволенням скасував це, вибачте.
userfuser

0

У VirtualBox є маса недоліків. Я залишаю це кілька років тому. Тепер я використовую qemu-kvm, і крім інших прекрасних функцій, він може бути налаштований на використання пристрою диска так само, як зображення диска. Хитрість полягає в налаштуванні віртуального "-drive if = sd, id = sda, format = raw, file = / dev / sda".

Але! Спочатку потрібно виконати деякі зміни під час запуску MSW на голому металі, перш ніж спробувати його віртуалізувати: перегляньте папку "Драйвери", щоб були наявні належні драйвери, і дерево "Реєстр", щоб ті драйвери були включені та встановлені як запустити до запуску системи, як:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Вам потрібно шукати драйвер apropriet щодо віртуальної машини, якщо ви не хочете бачити BSOD.

Важко сказати, яких драйверів активувати. Найкращий спосіб - спочатку встановити тестову систему, а потім знайти в ній реєструвати ключ реєстрації за допомогою кнопки "Пуск" = dword: 00000000, а потім встановити ці клавіші на голій металевій машині. Також рекомендується перевірити MAC-адресу на голому металі, щоб поставити його в конфігурацію qemu. Ви можете завадити системі просити нову активацію.

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