No se puede iniciar después de cambiar el tamaño del disco duro vhd en VirtualBox

15

En Windows 7, configuré otra VM de Windows 7 en VirtualBox. Funcionó muy bien. Entonces, necesitaba aumentar el tamaño del HD VHD. Entonces, usé la utilidad VBoxManage para hacer eso con el siguiente comentario:

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

Luego, intenté ejecutar la VM nuevamente pero no se puede iniciar y me da el siguiente error:

FATAL: ¡No se encontró medio de arranque! El sistema se detuvo.

Luego, traté de ver qué está sucediendo dentro del VHD e intenté adjuntarlo dentro de Device Management y dice que no se puede adjuntar porque el archivo o directorio está dañado e ilegible .

¿Alguna idea de lo que salió mal aquí y cómo puedo guardar mi VM dentro de ese archivo VHD?

tugberk
fuente
Simplemente tuve el mismo problema y no pude encontrar ninguna solución útil en línea, así que comencé a analizar el VHD a mano de acuerdo con la documentación de Microsoft. Actualmente parece que hay un error en la implementación de modifyhd donde no ajustó el desplazamiento a los bloques de datos después de expandir la tabla de asignación de bloques. Necesito hacer algunos experimentos más para verificar esto.
billc.cn
En VirtualBox 4.3.10, cambié el tamaño de un archivo .vhd. Parece que no solo no ajustó los punteros de la tabla de asignación de bloques, sino que expandió la tabla de asignación de bloques al primer bloque de datos, sobrescribiendo mi MBR y la tabla de particiones. ¡No use VirtualBox para cambiar el tamaño de los archivos .vhd!
Aaron

Respuestas:

12

Lamentablemente, la documentación de VirtualBox para VBoxManage --resize es engañosa. No puede simplemente aumentar el tamaño de la imagen del disco y hacer que todo funcione correctamente. La información de la partición del disco dentro de la imagen debe ajustarse para que el sistema operativo invitado conozca el diseño de la "unidad" que simula la imagen del disco. Para realizar este ajuste, descargue una imagen de CD de arranque que tenga un editor de particiones y arranque la VM en ese CD. Luego usa el editor de particiones para ajustar las particiones de la imagen del disco para usar el espacio agregado.

Hay una buena reseña del procedimiento aquí ; solo salte al paso 4.

Kyle Jones
fuente
Bueno, eso es un fastidio. Esto significa que acabo de tirar las 3 horas de trabajo. Gracias por la info.
tugberk
44
Seguí la buena redacción (después de cambiar el tamaño de mi vhd y no pude arrancar desde allí), y GParted no mostró ninguna partición en el disco duro, solo 50 gigas de espacio sin asignar. ¿ modifyhdEso significa arruinar la unidad más allá de la reparación?
GSerg
1

Tuve el mismo problema y logré recuperar los datos usando el LiveCD de GParted

  1. Crea un nuevo VHD para recibir los datos copiados (crea particiones y formatea)
  2. Descargue el LiveCD de GParted y arranque en VirtualBox
  3. Seleccione Dispositivo -> Intento de rescate de datos
  4. Haga clic en Aceptar y después de Escanear, haga clic en Ver (esto montará / tmp / gparted-roview-XXXXXX)
  5. En el terminal, monte el segundo VHD (sudo mount / dev / sdb1 / mnt)
  6. Copie los archivos (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

Después de eso, puede apagar la máquina virtual y montar el VHD en el Administrador de dispositivos de Windows.

Edison Henrique Andreassy
fuente
1

Aquí explican el problema .

Resumen:

a. "vboxmanage modifyhd (redimensionar)" genera errores en muchos sistemas (Windows NT5, 9x, Server y versiones x86). El resultado es una partición corrupta, muy difícil de recuperar.

si. Debe ejecutar "vboxmanage modifyhd (cambiar tamaño)" (para cambiar el tamaño del VDI) en la ruta que contiene todos los archivos y carpetas asociados con el VDI. Mira la imagen

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Recomendación:

Reemplace "vboxmanage modifyhd" con "vboxmanage clonehd"

  1. Cree un nuevo disco virtual VDI (con el tamaño que desea expandir). Ejemplo: Old.vdi tenía 50 gb. New.vdi lo crea con 100GB

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

  2. Clónelo con el siguiente comando:

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

Nota : Ambos VDI no deben estar en la misma ruta

  1. Ejecute New.vdi y vaya a Windows Computer Management y extienda el espacio en disco (asigne el espacio vacío). Si no desea hacerlo manualmente, puede usar cualquier aplicación de partición gratuita, como AOMEI Partition Assistant Standard , GParted y muchas otras.

fuente
actualizar la respuesta
0

Vale la pena señalar que obtuve exactamente el mismo problema, debido a que emití el comando modifyhd mientras el invitado se estaba ejecutando. La documentación oficial no dice nada acerca de que primero debe eliminar las instantáneas y que ese invitado debería haberse detenido.

Mi plan era cambiar el tamaño del disco mientras la máquina estaba funcionando porque tengo un volumen dinámico que también podría aumentarse sobre la marcha. Sin embargo, esta fue una mala idea, ya que reinicié la máquina para obtener el tamaño completo del disco, me quedé en la oscuridad con una imagen corrupta, que no pude restaurar ni siquiera con testdisk. Testdisk encuentra las particiones pero el sistema de archivos está muy dañado y no puede repararse.

Así que tenga en cuenta:

  1. Combinar todas las instantáneas en la imagen base
  2. Apague el SO invitado

He repetido el procedimiento en mi máquina con una imagen de respaldo y el sistema operativo invitado está apagado, esto funciona bien.

Carsten Menke
fuente
0

Pude recuperar una imagen rota por este error. A diferencia de Edison, la imagen en vivo dividida no encontró nada. Esto es lo que hice:

  • Primero, dado que aparentemente el soporte de VBox para VHD es defectuoso y terrible, comience por convertir el VHD a un VDI con VBoxManage clonehd foo.vhd --format vdi foo.vdi. Cuando omití este paso, pude recuperar archivos de la imagen pero se "rompió" nuevamente después de unos reinicios. Supongo que el error realmente arruina el archivo VHD de una manera que luego I / O lo "vuelve a romper" ... VBox no parece tener estos problemas con VDI, así que renuncié a VHD.

  • Inicie en WinPE, el entorno de preinstalación de Windows. Cómo hacer esto podría ser un artículo en sí mismo. Si no está familiarizado con esto, aquí hay un acceso directo: inicie desde un DVD de instalación de Windows (Vista o superior) y presione shift-F10 una vez que aparezca la GUI, le dará un símbolo del sistema.

  • Descargue testdisk , encuentre una forma de obtenerlo en su imagen WinPE (o una simple memoria USB funcionaría) y ejecútelo desde el entorno WinPE. (Nota: WinPE carece de WOW64, la capa de compatibilidad de 32 bits para aplicaciones de 32 bits. Por lo tanto, mi configuración de WinPE de 64 bits necesitaba el binario testdisk de 64 bits).

  • Testdisk encontró las particiones y las restauró.

  • En este punto, los archivos se recuperaron pero el gestor de arranque falló por varios problemas. Primero utilicé diskpartpara marcar la partición como activa ( list disk, sel disk <disk number>, sel par 0, active). Llegó más lejos, no arrancaría. Regresé a WinPE y lo eliminé \boot, luego corrí bcdboot C:\windows /s C:para reinstalar el gestor de arranque.

  • Al final corrí chkdisk /Rpara asegurarme de que la imagen estaba bien. Tomó algunas horas, no encontré ningún problema.

asveikau
fuente
-1

Tuve el mismo problema, GParted no reconoció las particiones en absoluto, y se mostró como espacio no asignado. En este punto, entendí que los datos podrían haberse perdido.

Entonces recordé usar testdisk para buscar la partición perdida en los discos duros, entonces ¿por qué no probarlo en discos virtuales? Y funcionó.

  1. Arranque desde GParted, al momento de escribir esta respuesta, GParted tenía "testdisk" dentro. Simplemente ejecute el terminal, ejecute "sudo testdisk / dev / sda" o lo que sea que aparezca en su computadora. Ejecute "sudo fdisk -l" para mostrar todos los discos.
  2. Analice la tabla de particiones, descubrirá la partición inmediatamente, ya que todavía está en los primeros sectores. Escriba una nueva partición, tabla, luego proceda con GParted para continuar la recuperación, como se indica en este enlace: http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -o-vmware /
  3. La próxima vez que desee hacer esto, primero haga una copia de su VDISK.
  4. Noté en el siguiente enlace que crean un nuevo VHD y luego clonan con --existente: http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / Todavía no lo intenté, pero recuperé mi disco con las instrucciones anteriores.

Ojalá eso ayude a alguien.

Yousef
fuente
Cite las partes esenciales de la respuesta de los enlaces de referencia, ya que la respuesta puede volverse inválida si las páginas enlazadas cambian.
DavidPostill