Come utilizzare una vera partizione con Windows 7 installato, in una virtualbox VM?


37

Ubuntu 12.04 è installato /dev/sda5 e Windows 7 attivo /dev/sda1. Quando eseguo Ubuntu, vorrei usare Virtualbox per eseguire Windows 7 in una macchina virtuale. La partizione di Windows 7 è 1 TB ed è piena per metà, cioè grande, quindi non voglio copiarla su un disco rigido virtuale.

Ho letto che è possibile utilizzare un vero disco rigido per una VM Virtualbox, ma le varie istruzioni che ho trovato differiscono l'una dall'altra e non riesco a farlo funzionare. Qualcuno sa come farlo funzionare in Ubuntu 12.04 e Virtualbox 2.1.12_Ubuntu r77245 (l'ultimo Ubuntu ha installato i repository)?

Si prega di pubblicare come funziona per te come voglio riprovare qualsiasi metodo che potrebbe funzionare.


Perché la tua partizione MSWIN è 1 TB? Tuttavia, non una soluzione completa: se possibile, sposta tutto ciò che non ha bisogno di essere lì (dati ... file multimediali?) E ridimensiona la partizione che faciliterà qualsiasi approccio. Se si desidera seguire il percorso dell'immagine, la cancellazione e la riduzione di quella partizione ti lasceranno abbastanza spazio per creare un'immagine completa della nuova partizione più piccola. :-)
Alastair,

Correlati: utilizzare l'
hard

Risposte:


27

Il comando che vuoi è

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Ciò creerà uno speciale file del disco virtuale VMDK (Win7.vmdk) che in realtà è un puntatore alla partizione del disco host /dev/sda1.

In teoria, è quindi possibile utilizzare questo come file del disco per una VM da eseguire direttamente dalla partizione del disco effettiva, ma ...

  • (a) Non l'ho mai provato, quindi non so quanto sia affidabile
  • (b) potresti avere problemi con l'attivazione di Windows a seconda della tua chiave di licenza e se Windows decide che l'hardware rilevato è cambiato in modo significativo

Grazie. Non ho nemmeno pensato al problema di attivazione. Di sicuro metterà fine ai miei piani.
Jazz,

1
Inoltre, anche se ha funzionato (che dubito) potresti danneggiare seriamente Windows quando esegui sia l'avvio che la VM.
Takkat,

@ ubnewbie2: probabilmente lo proverei solo come esperimento e / o quando uso una sorta di chiave Volume Licensing e probabilmente lo vedo come un'operazione a senso unico; cioè avresti più difficoltà a provare a invertire. In realtà eseguo Windows 7 e utilizzo una VM VirtualBox con Ubuntu, spesso in modalità a schermo intero, quindi il PC sembra eseguire solo Linux e sarebbe più sicuro di eseguire Ubuntu da una partizione del disco raw.
StarNamer,

Cordiali saluti, ora ho provato questo, al contrario. Avevo bisogno di cambiare una macchina che eseguiva Ubuntu su Win 7, quindi ho liberato un po 'di spazio ridimensionando le partizioni e creandone una nuova e ho installato Win 7. Questo ha sostituito grub2 con il suo bootloader di Windows, quindi ho installato VirtualBox e creato una nuova VM, con un disco virtuale minimo da cui prenotare, che quindi utilizza le partizioni "raw" esistenti da cui eseguire. Funziona bene, anche se un po 'lento a causa della memoria ridotta e vedendo solo 1 core della CPU (invece di 4).
StarNamer,

-partizioni alla fine un elenco delle partizioni che si desidera "vedere" nella finestra virtuale (non la partizione # che si desidera utilizzare) VBoxManage internalcommands --helpmostrerà altre cose che è possibile fare con i comandi interni, nonché il significato delle opzioni.
Boatcoder

16

Sì, puoi farlo con il createrawvmdkcomando interno , che non creerà un'intera immagine del disco, ma un puntatore all'hardware effettivo.

Ci sono due modi per farlo

  • A. Immagine disco intero (di / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. Immagine della partizione

    Come ha mostrato @StarNamer, puoi usare solo una o poche partizioni.

    Per creare un'immagine di una sola partizione (/ dev / sda1):

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Per creare una tabella delle partizioni personalizzata che mapperà / dev / sda2 e / dev / sda1 in questo ordine:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

La differenza più evidente sarà che l'immagine del disco completo utilizzerà il bootloader e la tabella delle partizioni esattamente come sono nel tuo disco, quindi in teoria (l'ho già fatto solo in qemu) sarai in grado di configurare il sistema operativo dalla tua macchina virtuale. E dalla mia esperienza limitata posso dire che l'immagine del disco completo funzionerà esattamente come qemu -hda /dev/sdb.

Nota: se si utilizza l'utente per accedere al disco, è necessario aggiungerlo a diske vboxusersgruppi, ad es

sudo usermod -aG disk,vboxusers ubuntu

quindi assicurati di accedere nuovamente o riavviare il computer.

Ulteriori letture:


"l'immagine del disco completo utilizzerà il bootloader e la tabella delle partizioni esattamente come nel disco" - in quale scenario, il primo (/ dev / sdb) o il secondo (con le partizioni specificate)?
naught101

1
Inoltre, virtualbox deve essere eseguito come root, altrimenti si ottiene Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
nought101

3
"Inoltre, la virtual box deve essere eseguita come root". In realtà no, devi essere un membro del disco di gruppo. Molto più sicuro dell'esecuzione di virtual-box come root.

2
Ecco cosa ha funzionato per me con Ubuntu 16.04 come sistema host e Windows 10 come ospite: ho creato il file .vmdk usando sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. In questo modo ho incluso la partizione di Windows e la partizione del caricatore di avvio EFI. Ho quindi seguito le istruzioni dello shilka su virtualbox.org/ticket/7702 e ho aggiunto cloverefiboot. Funziona come un fascino!
dzmanto,

Puoi anche aggiungere il prefisso VirutalBox (e VBoxManage) al comando sudo -g diskper concedere solo l'accesso a virtualbox, ma non tutti gli altri processi.
Jan Hudec,

0

Esiste un'opzione Disco chiamata "Immutabile", quindi in teoria se si seleziona questa opzione per il collegamento vmdk al proprio disco grezzo, non dovrebbe cambiare la partizione originale.

Per fare ciò, apri "Virtual Media Manager" che si trova in "File", seleziona la tua immagine e fai clic su "Modifica" (Devi assicurarti che questa immagine non sia collegata a nessuna macchina, altrimenti potresti ricevere un errore). Ora puoi impostare il tipo di supporto su "Immutabile".

Non ho provato questo, però. Se qualcuno lo fa (ovviamente con una configurazione di prova) sarebbe bene riportare qui.

Qualcuno ha delle considerazioni contrarie a questa idea?


0

Da diversi anni, eseguo Windows e Ubuntu con doppio avvio e Ubuntu Partition si avvia anche in Windows VirtualBox per sfruttare le funzionalità touch-screen che Linux non ha ancora acquisito.

L'ho impostato con istruzioni simili a quelle di seguito;

Le nuove macchine possono gestire simultaneamente entrambi i sistemi operativi meglio dei singoli sistemi su macchine vecchie.

Unico inconveniente: è necessario salvare le istruzioni utilizzate per l'installazione nel caso in cui un aggiornamento disabiliti la connessione VirtualBox (il mio problema attuale).


0

Dopo molti tentativi ho finito con una soluzione pulita e ordinata:

  1. Avvia la partizione di Windows che desideri virtualizzare
  2. Scarica l' utility Disk2VHD da Sysinternals
  3. Se si dispone di una partizione UEFI , seguire queste istruzioni
  4. Crea un'immagine VHD (non VHD X ) della tua C: partizione, ripristino, UEFI (se presente) e qualsiasi altra cosa tu voglia
  5. Torna a Linux, apri VirtualBox e crea una VM in base alle specifiche del tuo sistema operativo Windows
  6. Collegare a quella VM il disco VHD creato al punto 4
  7. Questo è tutto
  8. Profitto

Risoluzione dei problemi in caso di UEFI:

  1. Nelle impostazioni della macchina virtuale, in VirtualBox, selezionare l'opzione "Abilita EFI" nella scheda Sistema
  2. Se rimani bloccato su EFI Shell, esegui il comando seguente:

    fs0:\EFI\Boot\bkpbootx64.efi
    

Qualche commento sul downvote?
Garlix,

Vedo che è successo qualche giorno fa, ma non ricordo di averti dato voti negativi, almeno non di proposito. volentieri la voterei, scusa.
userfuser

0

VirtualBox ha molti svantaggi. Lo lascio alcuni anni fa. Ora uso qemu-kvm e, oltre ad altre belle funzioni, può essere configurato per utilizzare il dispositivo disco allo stesso modo dell'immagine del disco. Il trucco è configurare il virtuale "-drive if = sd, id = sda, format = raw, file = / dev / sda".

Ma! Prima di provare a virtualizzarlo, è necessario apportare alcune modifiche durante l'esecuzione di MSW sul bare metal: cercare la cartella "Driver" per la presenza dei driver corretti e l'albero "Registro" per essere quei driver abilitati e impostati per essere eseguire prima dell'avvio del sistema come:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Devi cercare il driver apropriet rispetto alla macchina virtuale se non vuoi vedere il BSOD.

È difficile dire quali driver attivare. Il modo migliore è installare prima un sistema di prova, quindi cercare nel registro la chiave di registro con "Start" = dword: 00000000 e quindi impostare questa chiave sulla macchina bare metal. Si consiglia inoltre di controllare l'indirizzo MAC sul bare metal per inserirlo nella configurazione di qemu. È possibile impedire al sistema di richiedere una nuova attivazione.

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.