
Estoy ejecutando Oracle VirtualBox en un host Ubuntu 11.10 de 64 bits con una máquina invitada Ubuntu Server 12.04 LTS de 64 bits, con muchas instantáneas. Después de reiniciar el host (mientras la VM estaba ejecutándose), la VM se volvió "inaccesible". Después de hurgar y hacer muchos gigabytes de copias de seguridad, logré que arrancara en una pantalla de medio de arranque que no se puede encontrar. ¿Tiene alguna sugerencia o solución sobre cómo transferir mis datos, incluidos los datos de la última instantánea, a una nueva máquina virtual o, si es posible, arreglar esta? Estaré encantado de proporcionar más información.
EDITAR: Creo que mi cadena de instantáneas está rota o corrupta.
EDITAR 2: No puedo solucionarlo, acabo de crear una nueva máquina virtual.
Respuesta1
Descubriendo poder volver a una instantánea de trabajo. Inicie su VM en un CD en vivo y vea si puede acceder a sus discos duros. Si es así, el peor de los casos es crear una nueva máquina virtual con un servidor nuevo, agregar los discos duros de la máquina virtual anterior; luego recuperar datos de los discos duros.
Respuesta2
- Restaurar la última instantánea
- edite la información del disco duro y elimine todos los discos duros inaccesibles
- agregue todos los discos duros que pueda encontrar a la VM (esto los hace accesibles)
- arrancar con un CD de recuperación o un CD en vivo
- decide cómo solucionarlo... normalmente necesitas montar el disco, hacer chroot e instalar grub
ejemplo para el n.° 5:
Montar particiones
mkdir /mnt/fixme parted -s /dev/sda print (based on output of above, decide which device is your /boot, /, etc., and modify next mount commands accordingly) mount /dev/sda2 /mnt/fixme mount /dev/sda1 /mnt/fixme/boot ... for all your partitions
Montar sistemas de archivos especiales
mount | grep "on /proc" mount | grep "on /dev" (based on the above, decide what the "from" and "type" should be; my example below is correct for openSUSE 12.1) mount -t proc proc /mnt/fixme/proc mount -t devtmpfs devtmpfs /mnt/fixme/dev
Por ejemplo, en Ubuntu, es "none" para el tipo de desarrollo: mount -t none devtmpfs /mnt/fixme/dev
Es posible que también necesites montar /sys. Yo olvido. Sabrá cuando reciba un mensaje de error.
Inicie el shell chroot (que es como iniciar en su disco duro) (Nota al margen: esto funciona mal si tiene otro disco en el sistema, como si tomara su disco roto y lo conectara a otro Linux que no se inicia desde un CD, pero desde un disco buscará en mtab para decidir cuál es su disco de arranque y colocará esos guids en la configuración de grub en lugar de los del disco reparado, por lo que deberá realizar la recuperación con el indicador de arranque y ejecutar grub-install nuevamente; más tarde)
chroot /mnt/fixme
instalar comida
On openSUSE: update-bootloader On Ubuntu: update-grub2 Alternate, on most systems, but not openSUSE, use both: install stage 1 bootloader: grub-install install guids and stuff in /boot (change cfg file to whatever you find is the correct one [menu.lst on openSUSE, grub.cfg on Ubuntu, etc.]) (if you skip the -o option, it just prints to standard out and doesn't save it in any files) find /boot -name "*grub*" -or -name "*.cfg" -or -name "*menu*" grub-mkconfig -o /boot/grub/grub.cfg