Impossibile avviare dopo il ridimensionamento del disco rigido VHD in VirtualBox


15

In Windows 7, ho impostato un'altra macchina virtuale Windows 7 in VirtualBox. Ha funzionato alla grande. Quindi, avevo bisogno di aumentare le dimensioni del disco rigido virtuale. Quindi, ho usato l'utilità VBoxManage per farlo con il seguente commento:

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

Quindi, ho provato a eseguire di nuovo la VM ma non è possibile avviarla e mi dà il seguente errore:

FATAL: nessun supporto di avvio trovato! Sistema bloccato.

Quindi, ho provato a vedere cosa sta succedendo all'interno del disco rigido virtuale e provo a collegarlo all'interno di Gestione dispositivi e dice che non può essere allegato perché il file o la directory sono danneggiati e illeggibili .

Hai idea di cosa sia andato storto qui e come posso salvare la mia VM all'interno di quel file VHD?


Ho avuto esattamente lo stesso problema e non sono riuscito a trovare alcuna soluzione utile online, quindi ho iniziato ad analizzare manualmente il disco rigido virtuale secondo la documentazione di Microsoft. Attualmente sembra che ci sia un bug nell'implementazione di edithd in cui non ha adattato l'offset ai blocchi di dati dopo aver espanso la tabella di allocazione dei blocchi. Devo fare altri esperimenti per verificarlo.
billc.cn,

Su VirtualBox 4.3.10, ho ridimensionato un file .vhd. Sembra che non solo non abbia regolato i puntatori della tabella di allocazione dei blocchi, ma ha espanso la tabella di allocazione dei blocchi nel primo blocco di dati, sovrascrivendo il mio MBR e la tabella delle partizioni .. Non usare VirtualBox per ridimensionare i file .vhd!
Aaron,

Risposte:


12

Sfortunatamente la documentazione di VirtualBox per l'opzione --resize di VBoxManage è fuorviante. Non puoi semplicemente aumentare le dimensioni dell'immagine del disco e far funzionare tutto correttamente. Le informazioni sulla partizione del disco nell'immagine devono essere regolate in modo tale che il sistema operativo guest conosca il layout dell '"unità" che l'immagine del disco sta simulando. Questa regolazione si ottiene scaricando un'immagine CD avviabile con un editor di partizioni e avviando la VM su quel CD. Quindi utilizzare l'editor delle partizioni per regolare le partizioni dell'immagine del disco per utilizzare lo spazio aggiunto.

C'è un bel riassunto della procedura qui ; vai al passaggio 4.


Bene, questo è un peccato. Ciò significa che ho appena buttato via le 3 ore di lavoro. Grazie per le informazioni.
Tugberk,

4
Ho seguito il bel writeup (dopo aver ridimensionato il mio disco rigido virtuale e non sono riuscito ad avviarlo) e GParted non ha mostrato alcuna partizione sul disco rigido, solo 50 concerti di spazio non allocato. Ciò significa che modifyhdil disco è stato rovinato irreparabilmente?
GSerg,


1

Ho avuto lo stesso problema e sono riuscito a recuperare i dati utilizzando il LiveCD GParted

  1. Crea nuovo disco rigido virtuale per ricevere i dati copiati (crea partizioni e formato)
  2. Scarica il LiveCD GParted e avvia su VirtualBox
  3. Seleziona Dispositivo -> Tenta recupero dati
  4. Fai clic su OK e dopo la scansione fai clic su Visualizza (questo monterà / tmp / gparted-roview-XXXXXX)
  5. Sul terminale, montare il secondo VHD (sudo mount / dev / sdb1 / mnt)
  6. Copia i file (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

Successivamente è possibile arrestare la macchina virtuale e montare il disco rigido virtuale su Gestione dispositivi di Windows.


1

Qui spiegano il problema (in spagnolo)

Sommario:

un. "vboxmanage edithd (resize)" genera errori in molti sistemi (versioni di Windows NT5, 9x, Server e x86). Il risultato è una partizione corrotta, molto difficile da recuperare

b. È necessario eseguire "vboxmanage edithd (ridimensionare)" (per ridimensionare il VDI) Nel percorso che contiene tutti i file e le cartelle associati al VDI. Guarda l'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Raccomandazione:

Sostituisci "vboxmanage edithd" con "vboxmanage clonehd"

  1. Crea un nuovo disco virtuale VDI (con le dimensioni che desideri espandere). Esempio: Old.vdi aveva 50 GB. New.vdi crearlo con 100 GB

    VBoxManage createhd --filename /path/New.vdi --size 100000

  2. Clonalo con il seguente comando:

    vboxmanage clonehd /path/Old.vdi /path/New.vdi --existing

Nota : entrambi i VDI non devono essere sullo stesso percorso

  1. Esegui New.vdi e vai a Gestione computer Windows ed Estendi lo spazio su disco (assegna lo spazio vuoto). Se non si desidera farlo manualmente, è possibile utilizzare qualsiasi applicazione di partizionamento gratuita, come AOMEI Partition Assistant Standard , GParted e molti altri.

aggiorna la risposta

0

Vale la pena notare che ho avuto lo stesso identico problema, dovuto al fatto che ho emesso il comando edithd mentre il guest era in esecuzione. La documentazione ufficiale non dice nulla, che è necessario eliminare prima le istantanee e che l'ospite avrebbe dovuto essere fermato.

Il mio piano era di ridimensionare il disco mentre la macchina era in esecuzione perché ho un volume dinamico che potrebbe anche essere aumentato al volo. Tuttavia, questa è stata una cattiva idea quando ho riavviato la macchina per ottenere le dimensioni complete del disco che mi è stato lasciato al buio con un'immagine corrotta, che non ho potuto ripristinare nemmeno con testdisk. Testdisk trova le partizioni ma il filesystem è gravemente danneggiato e non può essere riparato.

Quindi essere avvisato:

  1. Unisci tutte le istantanee nell'immagine di base
  2. Arrestare il sistema operativo guest

Ho ripetuto la procedura sul mio computer con un'immagine di backup e il sistema operativo guest è spento, questo funziona bene.


0

Sono stato in grado di recuperare un'immagine che è stata interrotta da questo errore. A differenza di Edison, l'immagine live partizionata non ha trovato nulla. Ecco cosa ho fatto:

  • Innanzitutto, poiché apparentemente il supporto VBox per VHD è difettoso e terribile, inizia convertendo il VHD in un VDI con VBoxManage clonehd foo.vhd --format vdi foo.vdi. Quando ho saltato questo passaggio, ho potuto recuperare i file dall'immagine ma si "spezzava" di nuovo dopo alcuni riavvii. Immagino che il bug rovini davvero il file VHD in un modo che successivamente l'I / O "ri-rompe" ... VBox non sembra avere questi problemi con VDI, quindi ho rinunciato a VHD.

  • Avviare in WinPE, l'ambiente di preinstallazione di Windows. Come fare questo potrebbe essere un articolo a sé stante. Se non hai familiarità con questo, ecco un collegamento: esegui l'avvio da un DVD di installazione di Windows (Vista o superiore) e premi shift-F10 una volta visualizzata la GUI, ti darà un prompt dei comandi.

  • Scarica testdisk , trova un modo per inserirlo nell'immagine WinPE (o funzionerebbe una semplice chiavetta USB) ed eseguilo dall'ambiente WinPE. (Nota: WinPE manca di WOW64, il livello di compatibilità a 32 bit per le app a 32 bit. Pertanto, la mia installazione di WinPE a 64 bit richiedeva il binario testdisk a 64 bit.)

  • Testdisk ha trovato le partizioni e le ha ripristinate.

  • A questo punto i file sono stati recuperati ma il bootloader non è riuscito per diversi problemi. Prima ho usato diskpartper contrassegnare la partizione come attiva ( list disk, sel disk <disk number>, sel par 0, active). Andato oltre, non si avvia. Sono tornato in WinPE ed eliminato \boot, quindi eseguito bcdboot C:\windows /s C:per reinstallare il bootloader.

  • Alla fine ho corso chkdisk /Rper essere sicuro che l'immagine fosse ok. Ci sono volute alcune ore, non ho riscontrato alcun problema.


-1

Ho avuto lo stesso problema, GParted non ha riconosciuto affatto le partizioni ed è stato mostrato come spazio non allocato. A questo punto ho capito che i dati avrebbero potuto essere persi.

Poi mi sono ricordato di aver usato testdisk per cercare partizioni perse su hard disk, quindi perché non provarlo su dischi virtuali? e ha funzionato.

  1. Avvio da GParted, al momento della stesura di questa risposta, GParted aveva "testdisk" al suo interno. Basta eseguire il terminale, eseguire "sudo testdisk / dev / sda" o qualunque cosa appaia nel computer. Esegui "sudo fdisk -l" per mostrare tutti i dischi.
  2. Analizza la tabella delle partizioni, scoprirà immediatamente la partizione, poiché è ancora nei primi settori. Scrivi nuova partizione, tabella, quindi procedi con GParted per continuare il recupero, come indicato in questo link: http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -o-vmware /
  3. La prossima volta che lo desideri, crea prima una copia del tuo VDISK.
  4. Ho notato nel link seguente che creano un nuovo disco rigido virtuale e poi clonano con --existing: http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / Non ho ancora provato, ma ho recuperato il mio disco con le istruzioni sopra.

Spero che questo aiuti qualcuno.


Si prega di citare le parti essenziali della risposta dai collegamenti di riferimento, poiché la risposta può diventare non valida se le pagine collegate cambiano.
DavidPostill
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.