Можливо подвійне завантаження * та * віртуалізація того ж фізичного диска, що містить Windows 10?


11

Я використовую Linux як свій щоденний драйвер, і щойно встановив Windows 10 на новий фізичний диск у своєму ПК для подвійного завантаження. Якийсь час я використовував Windows 7 через зображення VirtualBox, яке я встановив над iSCSI 1 .

Зараз у мене є два різних середовища Windows, і це дуже засмучує. Я хотів би відмовитися від Windows 7 VM і отримати доступ до інсталяції Windows 10 безпосередньо через VirtualBox для зручності, але не втрачаючи можливості перейти до подвійного завантаження, коли мені потрібна продуктивність із сировини.

Чи можливо завантажувати існуючу установку Windows 10 на спеціальні фізичні носії (внутрішній SATA3 SSD) через VirtualBox, не втрачаючи також можливості подвійного завантаження?

Якщо це ускладнює (або неможливо), варто зауважити, що Windows 10 SSD захищено FDE через VeraCrypt.


1
Мені б подобалося, якби це було можливо, але я ще не знайшов способу. Крім проблеми запуску VM з фізичним диском, є два аспекти перемикання між жорстким і віртуальним завантаженням. (1) Буде здійснена основна конфігурація драйвера щоразу, коли ви переключитесь на запущені середовища. (2) Наслідком, Windows, ймовірно, потребуватиме повторної активації ліцензії на кожному комутаторі: якщо це навіть можливо, ліцензування майже напевно поскаржиться після пари повторних активацій. Що ви можете зробити, це створити віртуальний диск з фізичної установки, але знову ліцензування буде ймовірною проблемою.
АФХ

Вам може бути краще розглянути можливість запуску інсталяції Linux у Windows VM: принаймні це дозволить уникнути труднощів з ліцензією.
AFH

@AFH Проблему з ліцензією можна вирішити, клонувавши апаратний uuid хоста та серійні ідентифікатори контролера диска у VM. Це дозволяє запускати Windows один раз з VM та один раз безпосередньо (хоча m $ ліцензування все ще не дозволяє одночасно використовувати декілька установок з одним і тим же ключем продукту, тому це можна зробити виключно в заданій конфігурації).
peterh

@peterh - Дякую: я не знав, що клонування UUID було достатньо для ліцензування Windows. Залишається проблема переконфігурації драйвера при перемиканні. Я буду експериментувати з вашою відповіддю, коли матиму час.
АФХ

Відповіді:


7

Так, можливо.

  1. Налаштуйте віртуальну скриньку для використання фізичного диска. Це трохи ризиковано, адже гість VM буде бачити ваш хост-диск безпосередньо. Деталі тут .
  2. Надати прямий доступ для читання / запису на свій фізичний диск ( setfacl -m u:yourusername:rw /dev/sda)
  3. Оновіть свій VM virtualbox, щоб використовувати той же системний uuid, що і ваш хост ( dmidecode -s system-uuidпоказує систему uuid, vboxmanage modifyvm your-vm-name --hardwareuuid <your-hardware-uuid>). Можливо, вам знадобиться клонувати також уїди контролера накопичувача ( lsblk --nodeps --no name,serialпоказує серійні ідентифікатори вашого хоста. Мені не потрібно було клонувати їх у свою віртуальну скриньку, але вона може знадобитися. Можливо, якась хитра vboxmanage modifyvmкоманда це робить, або вам доведеться редагувати vm config xml вручну.
  4. Спробуйте налаштувати ті ж типи дискових та DVD-контролерів у VM, що і ваш хост (якщо ваш хост на базі SATA, використовуйте віртуальні контролери SATA, якщо він базується на IDE, використовуйте IDE та ін.).

Існує ще одна небезпека: якщо ви завантажуєте в VM свій головний диск безпосередньо, можливо, ви двічі завантажуєте ту саму ОС. Або ви відкриваєте один і той же розділ двічі. Це знищить ваші дані, тому ніколи не монтуйте декілька розділів одночасно. Крім того, не монтуйте розділи NTFS, поки вони використовуються вашою Windows (але ви все одно можете обмінюватися даними між своїми розділами, наприклад, з Samba).

Якщо це трапилося випадково, перезавантажте програму sysrq (alt + printscreen + b) і fsck все. Для цього може знадобитися і деяка хитрість з grub (я налаштував grub для завантаження Windows за замовчуванням, таким чином я уникаю проблеми, що я випадково завантажую свій Linux знову всередині VM Windows - і це, безумовно, станеться, тому що оновлення Windows часто перезавантажує вашу Windows за спиною).

Остерігайтеся: Win10 використовує ваш системний uuid і ваші контрольні пристрої, щоб ідентифікувати ваш ПК. Якщо ви пропустите (3), ваш win10 подумає, що його клонували до нової машини, і він більше не активується. Хоча якщо ви завантажитеся до початкової програми hw, вона буде активована знову.


Я зробив усе, що ви написали у своїй відповіді, але мені дістається помилка в доступі. Я трохи розгублений, виявляється, що setfaclне тримається після перезавантаження. Пропозиції? Примітка. Я не монтую накопичувач, оскільки не хочу пошкодження даних. Документація ACL говорить про те, що диски, які потребують ACL, повинні бути включені fstab, які б змонтували його ...
Kartik

1
@Kartik Правильно, це не відповідає. Найпростіше, але трохи брудне рішення - вставити команду setfacl у /etc/rc.local. Досить вдалим рішенням було б відредагувати його в / etc / udev. Я особисто не перезавантажуюсь досить часто, щоб зробити введення цієї команди дратує.
peterh

Я використовував udev для встановлення правильних дозволів, але віртуальна машина застрягла на логотипі Windows. Будь-які ідеї?
Картик

@Kartik Якщо це можна принаймні почати завантажувати, тоді дозволи будуть нормальними. Це рішення, мабуть, не має нічого спільного з цією проблемою, ймовірною причиною є те, що вікна не запускатимуться в емульованому середовищі (виграш може бачити, як ніби він був переміщений у абсолютно нове обладнання, тому йому доведеться перезавантажувати багато водіїв). Спробуйте запустити машину в деградації більше подібних. Або спробуйте увімкнути якийсь модуль налагодження чи подібний. Ви можете впоратися з нею як з проблемою "Windows не завантажується на новому апаратному забезпеченні". І спробуйте налаштувати у vbox можливе найбільш схоже оточення hw, яке було у фізичної машини.
peterh

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

1

Мені вдалося отримати Windows 10 як гостьовий та Linux Linux, як Host.

Спочатку вам слід видалити всі оновлення для Windows 10 (про всяк випадок, можливо, марні), тоді: Під Linux відкрийте консоль і рядок за рядком:

 sudo su

 fdisk -l # looking for EFI et Microsoft basic data for me 1 and 3 of sdb 

 VBoxManage internalcommands createrawvmdk -filename /home/borto/ww10.vmdk -rawdisk /dev/sdb -partitions 1,3 -relative

Додайте машину у віртуальний ящик (завжди з корінкою "sudo virtualbox") та ввімкніть EFI на вкладці системи, і виберіть windows xp 64 замість windows 10. Це все.

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