Czy możliwe jest podwójne uruchomienie * i * wirtualizacja tego samego dysku fizycznego zawierającego system Windows 10?

11

Używam Linuksa jako mojego codziennego sterownika i właśnie zainstalowałem Windows 10 na nowym dysku fizycznym w moim komputerze do podwójnego uruchamiania. Przez jakiś czas korzystałem z systemu Windows 7 za pomocą obrazu VirtualBox, który zamontowałem na iSCSI 1 .

Teraz mam dwa różne środowiska Windows, co jest bardzo frustrujące. Chciałbym porzucić maszynę wirtualną z systemem Windows 7 i uzyskać dostęp do instalacji systemu Windows 10 bezpośrednio przez VirtualBox dla wygody, ale nie tracąc możliwości przejścia do podwójnego rozruchu, gdy potrzebuję wydajności na surowym metalu.

Czy można uruchomić istniejącą instalację systemu Windows 10 na dedykowanym nośniku fizycznym (wewnętrzny dysk SSD SATA3) za pośrednictwem VirtualBox, nie tracąc jednocześnie możliwości podwójnego rozruchu?

Jeśli sprawia, że ​​sprawy stają się bardziej skomplikowane (lub niemożliwe), warto zauważyć, że dysk SSD systemu Windows 10 jest chroniony FDE przez VeraCrypt.

Chris Tonkinson
źródło
1
Z przyjemnością bym to zrobił, ale nie znalazłem jeszcze sposobu. Oprócz problemu uruchamiania maszyny wirtualnej z dyskiem fizycznym istnieją dwa aspekty przełączania między uruchomieniem twardym a wirtualnym. (1) Za każdym razem, gdy zmienisz środowisko uruchomieniowe, nastąpi poważna rekonfiguracja sterownika. (2) W następstwie tego Windows prawdopodobnie będzie wymagał ponownej aktywacji licencji na każdym przełączniku: jeśli jest to nawet możliwe, licencja prawie na pewno narzeka po kilku reaktywacjach. Co możesz zrobić, to utworzyć dysk wirtualny z instalacji fizycznej, ale znowu licencja będzie prawdopodobnie problemem.
AFH,
Lepiej rozważyć uruchomienie instalacji Linux na maszynie wirtualnej z systemem Windows: przynajmniej pozwoli to uniknąć problemów z licencją.
AFH
@AFH Problem z licencją można rozwiązać, klonując identyfikator użytkownika sprzętu hosta i identyfikatory szeregowe kontrolera dysku na maszynie wirtualnej. Umożliwia uruchomienie systemu Windows raz z maszyny Wirtualnej, a raz bezpośrednio (chociaż licencja na m $ nadal nie pozwala na jednoczesne korzystanie z wielu instalacji z tym samym kluczem produktu, więc można to zrobić wyłącznie w zadanej konfiguracji).
peterh - Przywróć Monikę
@peterh - Dzięki: Nie wiedziałem, że klonowanie UUID wystarcza do licencjonowania systemu Windows. Podczas przełączania pozostaje problem z rekonfiguracją sterownika. Będę eksperymentować z twoją odpowiedzią, kiedy będę miał czas.
AFH

Odpowiedzi:

7

Tak to mozliwe.

  1. Skonfiguruj virtualbox, aby używał twojego dysku fizycznego. Jest to trochę ryzykowne, ponieważ gość VM zobaczy bezpośrednio twój dysk hosta. Szczegóły tutaj .
  2. Daj bezpośredni dostęp do odczytu / zapisu na dysku fizycznym ( setfacl -m u:yourusername:rw /dev/sda)
  3. Zaktualizuj maszynę wirtualną Virtualbox, aby używała tego samego identyfikatora użytkownika systemu co host ( dmidecode -s system-uuidpokazuje identyfikator systemu vboxmanage modifyvm your-vm-name --hardwareuuid <your-hardware-uuid>). Może być konieczne sklonowanie również lsblk --nodeps --no name,serialidentyfikatorów użytkownika kontrolera dysku ( pokazuje numery seryjne twojego hosta. Nie musiałem klonować ich do mojej wirtualnej skrzynki, ale może być to konieczne. Prawdopodobnie jest to trudne vboxmanage modifyvmzadanie lub musisz edytować vm config xml ręcznie.
  4. Spróbuj skonfigurować te same typy kontrolerów dysków i dvd w maszynie wirtualnej, co host (jeśli host jest oparty na SATA, użyj kontrolerów wirtualnych SATA, jeśli jest oparty na IDE, użyj IDE itp.).

Istnieje inne niebezpieczeństwo: jeśli uruchomisz maszynę wirtualną bezpośrednio na dysku hosta, możliwe jest, że uruchomisz dwa razy ten sam system operacyjny. Lub otwierasz dwukrotnie tę samą partycję. Spowoduje to zabicie danych, więc nigdy nie montuj jednocześnie wielu partycji. Ponadto nie montuj partycji NTFS, gdy są one używane przez system Windows (ale nadal możesz udostępniać dane między partycjami, na przykład Sambie).

Jeśli to przypadkowo się zdarzyło, uruchom ponownie system z sysrq (alt + printscreen + b) i fsck wszystko. Może być też do tego potrzebna pewna sztuczka z grubem (zrekonfigurowałem grub, aby domyślnie uruchamiał Windows, więc unikam problemu, że uruchamiam przypadkowo mój Linux ponownie na maszynie wirtualnej Windows - i na pewno się to zdarzy, ponieważ Windows Update często restartuje Windows za twoimi plecami).

Uwaga: Win10 używa identyfikatora systemu i identyfikatora komputera do identyfikowania komputera. Jeśli spudłujesz (3), twój Win10 pomyśli, że został sklonowany na nową maszynę i nie będzie już aktywowany. Chociaż jeśli wrócisz do pierwotnego oprogramowania, zostanie ono ponownie aktywowane.

peterh - Przywróć Monikę
źródło
Zrobiłem wszystko, co napisałeś w odpowiedzi, ale dostaję błąd odmowy dostępu. Jestem trochę zdezorientowany, wygląda na to, że setfaclnie uruchamia się po ponownym uruchomieniu. Propozycje? Uwaga: nie instaluję dysku, ponieważ nie chcę uszkodzenia danych. Dokumentacja ACL mówi, że dyski wymagające ACL powinny być dołączone fstab, co by je zamontowało ...
Kartik
1
@Kartik Racja, to się nie trzyma. Najprostszym, ale nieco brudnym rozwiązaniem jest wstawienie polecenia setfacl do pliku /etc/rc.local. Całkiem dobrym rozwiązaniem byłoby edytowanie go do / etc / udev. Osobiście nie uruchamiam się zbyt często, aby denerwować pisanie tego polecenia.
peterh - Przywróć Monikę
Użyłem udev, aby ustawić prawidłowe uprawnienia, ale maszyna wirtualna utknęła na logo Windows. Jakieś pomysły?
Kartik,
@Kartik Jeśli można przynajmniej uruchomić komputer, uprawnienia są w porządku. Prawdopodobnie nie ma to nic wspólnego z tym rozwiązaniem, prawdopodobnym powodem jest to, że okna nie będą się uruchamiać w emulowanym środowisku (wygrana może wyglądać tak, jakby została przeniesiona na zupełnie nowy sprzęt, więc musi przeplecić wiele sterowniki). Spróbuj uruchomić maszynę w niektórych zdegradowanych bardziej podobnych. Lub spróbuj włączyć moduł debugowania lub podobny. Możesz sobie z tym poradzić, ponieważ problem „Windows nie uruchamia się na nowym sprzęcie”. I spróbuj skonfigurować w vbox możliwie najbardziej podobne środowisko sprzętowe, jakie miałeś na fizycznym komputerze.
peterh - Przywróć Monikę
1
Błąd rozruchu został spowodowany przez aktualizację 1703 lub aktualizację twórcy, jak nazywa ją Microsoft. Wycofanie tej aktualizacji rozwiązało problem. Maszyny wirtualne są niezgodne z tą aktualizacją. Jeśli system Windows zaktualizuje się podczas uruchamiania na metalu, wówczas wycofanie go naprawia zablokowany rozruch na maszynie wirtualnej.
Kartik,
1

Udało mi się z Windows 10 jako gość i Linux jako Host.

Najpierw musisz odinstalować wszystkie aktualizacje systemu Windows 10 (na wszelki wypadek, być może bezużyteczne), a następnie: W systemie Linux otwórz konsolę i wiersz po wierszu:

 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

Dodaj maszynę do wirtualnego pudełka (zawsze z „sudo virtualbox”, aby być rootem) i włącz EFI na karcie systemowej, i wybierz Windows XP 64 zamiast Windows 10, w przeciwnym razie po prostu masz piękną zamrożoną flagę Windows 10. To wszystko.

bormat
źródło