È possibile utilizzare un hypervisor come VirtualBox per avviare un sistema operativo virtualizzato che è anche direttamente avviabile?


60

Questa domanda è piuttosto teorica:

Supponiamo di avere un PC con due diversi sistemi operativi su due diverse partizioni: OS1 su sda1 e OS2 su sda2. È in qualche modo possibile impostare un programma come VMWare o Virtualbox in OS1, che accede a sda2, lo avvia ed esegue OS2? D'altra parte, anche OS2 dovrebbe essere avviabile direttamente.

Mi rendo conto che l'OS2 emulato sarebbe molto più lento e probabilmente nessuno userebbe davvero questa configurazione, ma lo trovo molto interessante.


1
@MorrisIriga sei sicuro? Ricordo che esisteva uno strumento di virtualizzazione in grado di montare veri e propri hard disk. Non sono sicuro se il suo oracle virtualbox o microsoft virtualpc.
LPChip,

1
@LPChip Siamo spiacenti, avevo frainteso la domanda. Sì, puoi montare un disco rigido fisico usando VirtualBox. Dai un'occhiata a questo o questo . Non conosco altri software di virtualizzazione.
MorrisIriga,



4
VMWare Fusion può avviare una partizione "Boot Camp" come macchina virtuale all'interno dell'host di Mac OS X: kb.vmware.com/selfservice/self
Jacob Krall,

Risposte:


58

È possibile , sì, e non deve necessariamente essere più lento, poiché oggigiorno non è più emulazione , è virtualizzazione : la maggior parte delle CPU supporta la virtualizzazione assistita da hardware (VT-x e simili), ma anche senza quelle, VirtualBox ha molte trucchi per rendere veloci le VM virtualizzate con software.

In ogni caso, non sarà più lento dell'avvio di una semplice vecchia macchina virtuale. Potrebbe anche essere più veloce (a causa dell'utilizzo di una partizione non elaborata anziché di un'immagine del disco frammentata).


Ma non sono del tutto sicuro di come farlo in VirtualBox - penso che tu debba creare uno speciale file .vdi usando vboxmanagequello che punta alla vera partizione? Inoltre, non ho idee su come far funzionare il bootloader in una situazione del genere.

Anche se ero solito eseguire il debug di vari problemi di avvio su Linux eseguendo una copia di sola lettura del sistema operativo corrente al suo interno, utilizzando qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio.


6
Amico, hai effettivamente eseguito un sistema operativo virtualizzato al suo interno?
Wauzl,

8
Certo, perché no? Non è molto diverso dall'esecuzione di una normale VM. L'unica parte importante è -snapshot, che crea una copia temporanea di / dev / sda (in modo che entrambi i sistemi non si blocchino reciprocamente i dati).
Grawity,

6
La tua affermazione provvisoria sull'uso di vboxmanage, quindi imposta un VDI (non VHD) come segnaposto per la partizione non elaborata è corretta. Il manuale di VBOX lo spiega in dettaglio. Mi piace il tuo trucco di debug. Non ho mai pensato di farlo in questo modo, ma sto già pensando ad alcuni casi d'uso ;-)
Tonny,

28

qemuti permetterà di utilizzare dispositivi a blocchi come /dev/sda2, ecc. come dischi rigidi virtuali. Anche VMWare lo fa. Non sono sicuro di Virtualbox.

Quando si avvia /dev/sda2in una macchina virtuale, avrà un effetto simile come se si estraesse un disco rigido e lo si avviasse su un altro computer con hardware diverso. Se il sistema operativo è in grado di gestire tale modifica, allora dovresti essere OK eseguendo il sistema operativo sia in una macchina virtuale che nativamente. Windows ti darà problemi, ovviamente, e Linux probabilmente lo tollererà molto bene.

Puoi mitigare potenziali problemi facendo corrispondere l'hardware virtuale il più vicino possibile all'hardware fisico sul tuo sistema, anche se ovviamente dovrai specificare meno RAM. Di particolare importanza è specificare lo stesso tipo di controller del disco (IDE, SCSI, ecc.).


8
Apparentemente virtualbox può farlo anche usando il comando 'VBoxManage internalcommands createrawvmdk' (visto qui )
Michael B,

19

È del tutto possibile, infatti, ero solito farlo!

Avevo una partizione / disco (dimentico quale) con Windows uno con Linux, penso che fosse ai tempi di Windows XP (è vero che è durato un po '). È stato un buon modo per avere accesso a entrambi i set di dati senza utilizzare un carico di spazio su disco con installazioni diverse.

L'unico problema che ricordo di avere era che dovevo configurare due diversi profili hardware in XP. Si è davvero confuso quando si è avviato con quelli sbagliati.

Non sono sicuro di come gli attuali processi di attivazione risponderebbero al cambio di hardware. Ciò potrebbe causare alcuni problemi ... (ma se avessi mai avviato Windows come macchina fisica e avessi Linux come macchina virtuale o fisica, ciò avrebbe risolto il problema)

Come ricordo, l'ho fatto con la workstation VMware. Questo sicuramente supporta l'avvio da un disco non elaborato. Sono sicuro che la versione MS fa. Non sono così sicuro delle macchine virtuali Linux, ma sarei molto sorpreso se no.


Oh, profili hardware ... Non ho mai toccato quella funzione. Le licenze lo rovinerebbero sicuramente ora.
sinni800,

@ sinni800 Questa è stata la mia unica volta in assoluto ad usarli, secondo questo esistono ancora, ma sono passati al kit driver come devconx64.exe
Michael B,

I profili hardware sono stati rimossi da Vista e dai sistemi Windows successivi
ZAB,

8

È interessante notare che per coloro che eseguono VMware Fusion su un Mac, con una partizione bootcamp di Windows, è possibile avviare una macchina virtuale che esegue la partizione bootcamp:

VMware Fusion ti consente di avviare una partizione Boot Camp già installata senza comprometterne la capacità di avvio nativo. Ciò ti dà la possibilità di accedere a una partizione Boot Camp sia dall'interno del Mac OS usando Fusion, sia riavviando e avviando Windows direttamente.

Nota, tuttavia:

È possibile che venga richiesto di riattivare Windows poiché il sistema operativo riconosce l'hardware diverso.

Fonte: VMware : avvio della partizione Boot Camp in VMware Fusion


3
Ti raccomandano di installare prima i loro strumenti in modo che il processo di attivazione veda lo stesso "hardware" in entrambe le situazioni. Segui le istruzioni o finirai per parlare con i server di attivazione Microsoft sul telefono.
Thorbjørn Ravn Andersen,

@ ThorbjørnRavnAndersen ottimo consiglio - grazie
magma

7

L'ho fatto . È abbastanza utile, ma ci sono alcune limitazioni e configurarlo non è banale.

  • Il sistema operativo nativo o VM deve essere tollerante nei confronti dell'hardware su cui viene eseguito. Alla maggior parte delle distribuzioni Linux non importa e funziona solo su qualsiasi cosa tu le avvii, finché l'architettura della CPU corrisponde. Non è così semplice con Windows. Puoi anche affrontare problemi di attivazione / licenza.

  • Su Windows, non è possibile avviare il sistema operativo in una macchina virtuale mentre la sua partizione è montata sull'host. Questo non è un grosso problema, poiché in questo caso probabilmente ti piacerebbe avviare Linux all'interno di Windows e Windows non supporta extcomunque i filesystem.

  • L'impostazione dei bootloader è complicata. È necessaria una configurazione di avvio separata per l'avvio in VM e per l'avvio nativo. Ho usato Grub4DOS / NeoGrub come bootloader di 1 ° stadio durante l'avvio nativo, quindi sono stato in grado di caricare a catena il bootloader di Windows o avviare Ubuntu. La VM aveva un'unità piccola (pochi MB) montata con priorità più alta rispetto all'unità principale. Quell'unità conteneva GRUB2 installato manualmente che ho usato per avviare Ubuntu all'interno della VM.

  • La configurazione insolita del bootloader richiede un attento aggiornamento. Ad esempio, l'aggiornamento di GRUB durante l'esecuzione nativa di Linux potrebbe interrompere la catena del bootloader. L'aggiornamento all'interno della VM richiede l'installazione manuale nella partizione di avvio.


0

Questo è possibile abbastanza facilmente .. Se usi dischi rigidi separati per ogni installazione!

Dai un'occhiata qui ad esempio: http://www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html - oppure cerca nel sito Web VirtualBox (che è inattivo al momento) per queste parole chiave.

Lo uso per essere in grado di accedere alla mia partizione Linux quando eseguo alcuni lavori di Windows, come roba di Adobe o altre cose che non funzioneranno facilmente con Wine o Virtualization di Windows in Linux.

Inoltre, poiché accedo spesso alla mia torre da remoto - e tutto il mio disco rigido Linux è crittografato, mentre il mio disco rigido Windows non è e contiene solo dati non sensibili. Quindi avvio Windows (la voce di Windows in GRUB è preselezionata) accedo a Teamviewer, avvio Virtualbox e quindi il mio disco rigido Linux.

In questa direzione - Windows -> Virtualbox -> altri HD con Linux -> è possibile abbastanza semplice, grazie al rilevamento dell'hardware superiour, al volo, che Linux, cioè Ubuntu, supporta.

Nella direzione opposta, finirai con un casino. A Windows non piace mai cambiare hardware .. Potrebbe rovinare il tuo sistema, non si avvia affatto, o anche se lo fa, forse ti dice che la tua licenza non è più valida perché troppe modifiche hardware accadono troppo spesso.

Detto questo, vuoi mantenere Windows come voce di avvio preselezionata in GRUB, ma fai davvero attenzione a selezionare la voce giusta in GRUB quando viene eseguita in Virtualbox. Se hai problemi con i ritardi da remoto, aumenta il timeout di avvio in GRUB per sicurezza.

Spero che ti abbia aiutato :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.