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

5430
Chris Tonkinson

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

Теперь у меня есть две разные среды Windows, и это очень расстраивает. Я хотел бы отказаться от виртуальной машины Windows 7 и получить доступ к установке Windows 10 напрямую через VirtualBox для удобства, но не теряя возможности переключиться на двойную загрузку, когда мне нужна производительность в "сыром" виде.

Можно ли загрузить существующую установку Windows 10 на выделенный физический носитель (внутренний SATA3 SSD) через VirtualBox, не теряя при этом возможности двойной загрузки?

Если это усложняет (или делает невозможным), стоит отметить, что твердотельный накопитель Windows 10 защищен FDE через VeraCrypt.

8
Я был бы рад, если бы это было возможно, но я еще не нашел пути. Помимо проблемы запуска виртуальной машины с физическим диском, существует два аспекта переключения между жесткой и виртуальной загрузкой. (1) При переключении между рабочими средами будет происходить серьезная реконфигурация драйвера. (2) Как следствие, Windows, вероятно, потребуется повторная активация лицензии на каждом коммутаторе: если это даже возможно, лицензирование почти наверняка будет жаловаться после нескольких повторных активаций. Что вы можете сделать, это создать виртуальный диск из физической установки, но опять-таки, вероятно, возникнет проблема с лицензированием. AFH 7 лет назад 1
Вы можете лучше рассмотреть возможность установки Linux на виртуальной машине Windows: по крайней мере, это позволит избежать трудностей с лицензией. AFH 7 лет назад 0
@AFH Проблему с лицензией можно решить путем клонирования аппаратного uuid и серийных идентификаторов контроллера диска в виртуальную машину. Он позволяет запускать Windows один раз из виртуальной машины и один раз напрямую (хотя лицензия m $ по-прежнему не позволяет одновременно использовать несколько установок с одним и тем же ключом продукта, поэтому это можно сделать исключительно в запрашиваемой конфигурации). peterh 7 лет назад 0
@peterh - Спасибо. Я не знал, что клонирования UUID достаточно для лицензирования Windows. Остается проблема перенастройки драйвера при переключении. Я поэкспериментирую с вашим ответом, когда у меня будет время. AFH 7 лет назад 0

2 ответа на вопрос

6
peterh

Да, это возможно.

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

Существует еще одна опасность: если вы загружаетесь в виртуальную машину непосредственно с вашего хост-диска, возможно, вы загружаете одну и ту же ОС дважды. Или вы открываете один и тот же раздел дважды. Это убьет ваши данные, поэтому никогда не монтируйте несколько разделов одновременно. Кроме того, не монтируйте разделы NTFS, пока они используются вашей Windows (но вы все равно можете обмениваться данными между разделами, например, с Samba).

Если это произошло случайно, перезагрузитесь с помощью sysrq (alt + printscreen + b) и fsck everything. Для этого также может потребоваться некоторая хитрость grub (я переконфигурировал grub для загрузки окон по умолчанию, поэтому я избегаю проблемы, при которой я случайно загружаю свой Linux снова в виртуальной машине Windows - и это обязательно произойдет, потому что Центр обновления Windows часто перезагружает Windows за твоей спиной).

Осторожно: Win10 использует ваш системный UUID и UUID контроллера дисков для идентификации вашего ПК. Если вы пропустите (3), ваш win10 будет думать, что он был клонирован на новую машину, и он больше не будет активирован. Хотя, если вы вернетесь к исходному hw, он снова будет активирован.

Я сделал все, что вы написали в своем ответе, но я получаю сообщение об ошибке отказа в доступе. Я немного запутался, похоже, что `setfacl` не держит после перезагрузки. Предложения? Примечание: я не монтирую диск, потому что я не хочу повреждения данных. Документация ACL гласит, что диски, требующие ACL, должны быть включены в `fstab`, который монтирует его ... Kartik 6 лет назад 0
@Kartik Правильно, это не так. Самое простое, но немного грязное решение - вставить команду setfacl в ваш /etc/rc.local. Довольно хорошим решением было бы отредактировать его в / etc / udev. Лично я не перезагружаюсь достаточно часто, чтобы сделать ввод этой команды раздражающим. peterh 6 лет назад 1
Я использовал udev, чтобы установить правильные разрешения, но виртуальная машина застряла на логотипе Windows. Есть идеи? Kartik 6 лет назад 0
@Kartik Если он может хотя бы начать загрузку, то разрешения в порядке. Скорее всего, оно не имеет ничего общего с этим решением. Вероятная причина в том, что окна не запускаются в эмулируемой среде (выигрыш может увидеть, как если бы он был перенесен на совершенно новое оборудование, поэтому приходится перепрограммировать много драйверы). Попробуйте завести машину в какой-то степени ухудшившейся аналогичности. Или попробуйте включить какой-либо режим отладки, или аналогичный. Вы можете решить эту проблему как проблему «Windows не загружается на новом оборудовании». И попробуйте настроить в vbox наиболее похожую среду hw, как у вас на физической машине. peterh 6 лет назад 0
Ошибка при загрузке была вызвана обновлением 1703 или [Creator's Update] (https://www.microsoft.com/en-us/windows/upcoming-features), как называет его Microsoft. Откат этого обновления устранил проблему. Виртуальные машины несовместимы с этим обновлением. Если Windows обновляется при работе на металле, то [откатывая ее] (https://betanews.com/2017/04/11/how-to-rollback-and-uninstall-windows-10-creators-update/) исправляет попробую загрузиться в ВМ. Kartik 6 лет назад 1
1
bormat

Мне удалось с Windows 10 в качестве гостя и Linux Mint в качестве хоста.

Сначала вы должны удалить все обновления 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» в качестве пользователя root) и включите EFI на вкладке системы, и выберите windows xp 64 вместо windows 10, иначе у вас будет просто замороженный флаг windows 10. Это все.