Como consertar o VirtualBox VM quebrado?

2

Estou executando o Oracle VirtualBox em um host Ubuntu 11.10 de 64 bits com uma máquina guest de 64 bits do Ubuntu Server 12.04 LTS, com muitos snapshots. Depois de uma reinicialização do host (enquanto a VM estava em execução), a VM ficou "inacessível". Depois de bisbilhotar e fazer muitos gigabytes de backups, consegui-o para inicializar a tela do meio de inicialização. Você tem alguma sugestão ou solução sobre como obter meus dados, incluindo os dados do instantâneo mais recente, em uma nova VM ou, se possível, corrigir essa? Ficarei feliz em fornecer mais informações.

EDIT: Acho que minha cadeia de snapshots está corrompida / corrompida.

EDIT 2: não consigo consertar, acabei de criar uma nova VM.

    
por Glen 02.05.2012 / 05:34

2 respostas

1

Baring sendo capaz de voltar a um instantâneo de trabalho. Inicialize sua VM em um CD ao vivo e veja se você pode acessar seus discos rígidos. Se assim for o pior caso é construir uma nova vm com um novo servidor, adicione os discos rígidos da antiga vm; em seguida, recuperar dados dos discos rígidos.

    
por 02.05.2012 / 06:37
1
  1. Restaurar o instantâneo mais recente
  2. edite as informações do disco rígido e remova todos os discos rígidos inacessíveis
  3. adicione todos os discos rígidos que você pode encontrar na VM (isso os torna acessíveis)
  4. inicializar com um CD de recuperação ou um CD ao vivo
  5. decida como consertar isso ... geralmente você precisa montar o disco, chroot e instalar o grub

exemplo para # 5:

  1. Montar partições

    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
    
  2. Montar sistemas de arquivos especiais

    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 exemplo, no Ubuntu, é "nenhum" para o tipo de desenvolvimento:     mount -t nenhum devtmpfs / mnt / fixme / dev

    Você também pode precisar montar / sys. Eu esqueço. Você saberá quando receber uma mensagem de erro.

  3. Inicie o shell chroot (que é semelhante a ser inicializado em seu disco rígido) (Nota: isso funciona mal se você tiver outro disco no sistema, como se você pegasse seu disco quebrado e o conectasse em outro Linux que seja não inicializado a partir de um CD, mas de um disco; ele irá procurar no mtab para decidir qual é o seu disco de boot, e colocar esses guids na configuração do grub ao invés do disco reparado, então você precisa recuperar com o prompt boot e executar o grub -instalar novamente mais tarde)

    chroot /mnt/fixme
    
  4. Instalar o grub

    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
    
por 02.05.2012 / 21:01