Czy można użyć hiperwizora, takiego jak VirtualBox, do uruchomienia zwirtualizowanego systemu operacyjnego, który można również uruchomić bezpośrednio?

60

To pytanie jest raczej teoretyczne:

Załóżmy, że mam komputer z dwoma różnymi systemami operacyjnymi na dwóch różnych partycjach: OS1 na sda1 i OS2 na sda2. Czy w jakiś sposób można skonfigurować program taki jak VMWare lub Virtualbox w OS1, który uzyskuje dostęp do sda2, uruchamia go i uruchamia OS2? Z drugiej strony OS2 powinien być również uruchamialny bezpośrednio.

Zdaję sobie sprawę, że emulowany OS2 byłby o wiele wolniejszy i prawdopodobnie nikt tak naprawdę nie użyłby tej konfiguracji, ale uważam to za bardzo interesujące.

Wauzl
źródło
1
@MorrisIriga jesteś pewien? Pamiętam, że było narzędzie do wirtualizacji, które było w stanie zamontować rzeczywiste dyski twarde. Nie jestem pewien, czy jego wyrocznia virtualbox lub microsoft virtualpc.
LPChip
1
@LPChip Przepraszamy, źle zrozumiałem pytanie. Tak, możesz zamontować fizyczny dysk twardy za pomocą VirtualBox. Spójrz na to lub tamto . Nie wiem o innym oprogramowaniu do wirtualizacji.
MorrisIriga
4
VMWare Fusion może uruchomić partycję „Boot Camp” jako maszynę wirtualną na hoście Mac OS X: kb.vmware.com/selfservice/microsites/…
Jacob Krall

Odpowiedzi:

58

Jest to możliwe , tak i niekoniecznie musi być wolniejsze, ponieważ obecnie nie jest to już emulacja , lecz wirtualizacja - większość procesorów obsługuje wirtualizację wspomaganą sprzętowo (VT-x i tak dalej), ale nawet bez nich VirtualBox ma wiele triki tworzenia wirtualnych maszyn wirtualnych działają szybko.

W każdym razie nie będzie to wolniejsze niż uruchomienie zwykłej starej maszyny wirtualnej. Może być nawet szybszy (ze względu na użycie surowej partycji zamiast rozdrobnionego obrazu dysku).


Ale nie jestem całkowicie pewien, jak to zrobić w VirtualBox - myślę, że musisz utworzyć specjalny plik .vdi, używając vboxmanagetych punktów do prawdziwej partycji? Nie mam też pomysłów, jak sprawić, by bootloader działał w takiej sytuacji.

Chociaż debugowałem różne problemy z uruchamianiem w systemie Linux, uruchamiając w sobie kopię tylko do odczytu bieżącego systemu operacyjnego, używając qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio.

grawitacja
źródło
6
Człowieku, naprawdę uruchomiłeś zwirtualizowany system operacyjny?
Wauzl,
8
Jasne, czemu nie? Nie różni się bardzo od uruchamiania zwykłej maszyny wirtualnej. Jedyną ważną częścią jest -snapshottworzenie tymczasowej kopii pliku / dev / sda (aby oba systemy nie blokowały się nawzajem).
grawity
6
Twoje wstępne zdanie na temat używania vboxmanage, więc skonfiguruj VDI (nie VHD) jako symbol zastępczy dla surowej partycji, jest poprawne. Instrukcja VBOX wyjaśnia to szczegółowo. Podoba mi się twoja sztuczka debugowania. Nigdy nie myślałem o zrobieniu tego w ten sposób, ale już myślę o niektórych przypadkach użycia ;-)
Tonny,
28

qemupozwoli ci używać urządzeń blokowych takich jak /dev/sda2itp. jako wirtualnych dysków twardych. VMWare również. Nie jestem pewien co do Virtualbox.

Kiedy uruchomisz /dev/sda2maszynę wirtualną, będzie to miało podobny efekt, jakbyś wyjął dysk twardy i uruchomił go na innym komputerze z innym sprzętem. Jeśli system operacyjny jest w stanie obsłużyć tę zmianę, powinieneś być w stanie uruchomić system operacyjny zarówno na maszynie wirtualnej, jak i natywnie. Windows oczywiście sprawi ci problemy, a Linux prawdopodobnie dobrze go toleruje.

Możesz złagodzić potencjalne problemy, dopasowując sprzęt wirtualny tak ściśle, jak fizyczny sprzęt w twoim systemie - choć oczywiście będziesz musiał określić mniej pamięci RAM. Szczególnie ważne jest określenie tego samego typu kontrolera dysku (IDE, SCSI itp.).

LawrenceC
źródło
8
Najwyraźniej virtualbox może to zrobić również za pomocą komendy 'creatorawvmdk' komend wewnętrznych VBoxManage (patrz tutaj )
Michael B
19

Jest to całkowicie możliwe, w rzeczywistości kiedyś to robiłem!

Miałem jedną partycję / dysk (nie pamiętam która) z Windows jedną z Linuksem, myślę, że to było w czasach Windows XP (wprawdzie to trwało przez jakiś czas). Był to dobry sposób na uzyskanie dostępu do obu zestawów danych bez korzystania z dużej ilości miejsca na dysku w różnych instalacjach.

Jedyny problem, jaki pamiętam, to to, że musiałem skonfigurować dwa różne profile sprzętowe w XP. Naprawdę się zagubił, gdy uruchomił się w niewłaściwych.

Nie jestem pewien, jak obecne procesy aktywacyjne zareagują na zmianę sprzętu. Może to powodować pewne problemy ... (ale jeśli kiedykolwiek uruchomisz system Windows jako maszynę fizyczną i masz Linux jako maszynę wirtualną / lub fizyczną, to by to rozwiązało)

Jak pamiętam, zrobiłem to ze stacją roboczą VMware. To zdecydowanie obsługuje uruchamianie z surowego dysku. Jestem pewien, że wersja MS ma. Nie jestem pewien co do maszyn wirtualnych systemu Linux, ale byłbym bardzo zaskoczony, jeśli nie.

Michael B.
źródło
Och, profile sprzętowe ... Tak naprawdę nigdy nie dotknąłem tej funkcji. Licencjonowanie z pewnością zepsułoby to teraz.
sinni800
@ sinni800 To był mój jedyny raz, kiedy ich używałem, zgodnie z tym nadal istnieją, ale przeniosłem się do zestawu sterowników jako devconx64.exe
Michael B
Profile sprzętowe zostały usunięte z systemów Windows Vista i późniejszych
ZAB
8

Co ciekawe, dla osób korzystających z VMware Fusion na komputerze Mac z partycją bootcamp Windows możliwe jest uruchomienie maszyny wirtualnej, która uruchamia się z partycji bootcamp:

VMware Fusion pozwala uruchomić już zainstalowaną partycję Boot Camp bez wpływu na jej zdolność do rozruchu natywnego. Umożliwia to dostęp do partycji Boot Camp zarówno z poziomu systemu Mac OS za pomocą Fusion, jak i poprzez ponowne uruchomienie i bezpośrednie uruchomienie systemu Windows.

Uwaga:

Może pojawić się monit o ponowną aktywację systemu Windows, ponieważ system operacyjny rozpoznaje inny sprzęt.

Źródło: VMware - Uruchamianie partycji Boot Camp w VMware Fusion

magma
źródło
3
Zalecają, aby najpierw zainstalować ich narzędzia, aby proces aktywacji zobaczył ten sam „sprzęt” w obu sytuacjach. Postępuj zgodnie z instrukcjami, inaczej skończysz rozmawiać przez telefon z serwerami aktywacyjnymi Microsoft.
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen świetna rada - dziękuję
magma
7

Zrobiłem to . Jest to dość przydatne, ale istnieją pewne ograniczenia, a jego konfiguracja nie jest trywialna.

  • System operacyjny natywny lub VM musi tolerować sprzęt, na którym działa. Większość dystrybucji Linuksa nie dba o to i po prostu uruchamia się na czymkolwiek, na którym je uruchomisz, o ile architektura procesora pasuje. W systemie Windows nie jest tak płynnie. Możesz także napotkać problemy z aktywacją / licencjonowaniem.

  • W systemie Windows nie można uruchomić systemu operacyjnego na maszynie wirtualnej, gdy jej partycja jest zamontowana na hoście. Nie jest to wielka sprawa, ponieważ w tym przypadku prawdopodobnie chcesz uruchomić system Linux w systemie Windows, a system Windows i tak nie obsługuje extsystemów plików.

  • Ustawienie programów ładujących jest trudne. Potrzebujesz osobnej konfiguracji rozruchu do rozruchu na maszynie wirtualnej i do rozruchu natywnego. Używałem Grub4DOS / NeoGrub jako bootloadera 1. stopnia podczas rozruchu natywnie, potem mogłem załadować bootloader Windows lub uruchomić system Ubuntu. Maszyna wirtualna miała zamontowany mały (kilka MB) dysk o wyższym priorytecie niż dysk główny. Ten dysk zawierał ręcznie zainstalowany GRUB2, którego użyłem do uruchomienia Ubuntu wewnątrz VM.

  • Nietypowa konfiguracja bootloadera wymaga starannej aktualizacji. Na przykład aktualizacja GRUBa podczas pracy z Linuksem natywnie może przerwać łańcuch bootloadera. Aktualizacja wewnątrz maszyny wirtualnej wymaga ręcznego zainstalowania jej na partycji rozruchowej.

gronostaj
źródło
0

Jest to całkiem łatwe. Jeśli używasz osobnych dysków twardych do każdej instalacji!

Zajrzyj tutaj na przykład: http://www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html - lub przeszukaj stronę VirtualBox (która jest wyłączona w tej chwili) dla tych słów kluczowych.

Używam go, aby mieć dostęp do mojej partycji Linuksa, kiedy wykonuję niektóre prace w systemie Windows, takie jak Adobe lub inne rzeczy, które nie działają tak płynnie w Wine lub wirtualizacji Windows w Linuksie.

Ponadto, ponieważ często uzyskuję zdalny dostęp do mojej wieży - a cały dysk twardy systemu Linux jest zaszyfrowany, podczas gdy mój dysk twardy systemu Windows nie jest i zawiera na nim tylko wrażliwe dane. Więc uruchamiam system Windows (wpis Windows w GRUB-ie jest wstępnie wybrany), loguję się do Teamviewer, uruchamiam Virtualbox, a następnie mój dysk twardy Linux.

W tym kierunku - Windows -> Virtualbox -> inne HD z Linuksem -> jest to całkiem proste, ze względu na super wykrywanie sprzętu, w locie, które obsługuje Linux, a mianowicie Ubuntu.

W przeciwnym kierunku skończy się bałagan. Windows nie lubi nigdy zmieniać sprzętu. Może to zepsuć system, w ogóle się nie uruchamia, a nawet jeśli tak, może ci powiedzieć, że twoja licencja nie jest już ważna, ponieważ zbyt wiele zmian sprzętu zdarza się zbyt często.

To powiedziawszy, chcesz zachować Windows jako wstępnie wybrany wpis rozruchu w GRUB, ale naprawdę uważaj, aby wybrać odpowiedni wpis w GRUB, gdy działa on w Virtualbox. Jeśli masz problemy z opóźnieniami zdalnie, zwiększ limit czasu uruchamiania w GRUB-ie, aby być bezpiecznym.

Mam nadzieję, że Ci pomogło :)

Markus
źródło