Como posso descompactar um backup do sistema de arquivos em uma imagem de disco da VM?

0

Recebi um arquivo .tar.gz contendo os arquivos de um sistema de arquivos da VM (mas não o próprio sistema de arquivos) e preciso descompactá-los em uma imagem de disco bruta para que eu possa montá-los como uma VM. / p>

Como eu faço uma imagem de disco vazia e coloco um sistema de arquivos nela, e então descompacte o arquivo nela?

Eu suspeito que precisarei instalar um gerenciador de inicialização e criar uma partição swap também.

    
por Aethylred 12.12.2012 / 04:09

3 respostas

0

Primeiro, criei um criei um dispositivo de loopback ( /dev/loop0 ) a partir de uma imagem de disco bruto em branco de 25 GB e particionei-o em uma partição de 20 GB para o sistema de arquivos e o restante para swap.

Lembre-se de usar kpartx no dispositivo de loopback para "encontrar" as novas partições:

    # kpartx -a /dev/loop0
    # ls /dev/mapper/
    control  loop0p1  loop0p2

Eu não sabia qual sistema de arquivos usar, então, de maneira conservadora, decidi criar um sistema de arquivos ext2 na primeira partição:

    # mkfs.ext2 /dev/mapper/loop0p1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    1313760 inodes, 5245214 blocks
    262260 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    161 block groups
    32768 blocks per group, 32768 fragments per group
    8160 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000

    Writing inode tables: done
    Writing superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 23 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.

Crie um ponto de montagem e monte a partição do dispositivo de loopback:

    # mkdir /mnt/disk
    # mount /dev/mapper/loop0p1 /mnt/disk

Mude para o diretório de montagem e descompacte o arquivo:

    # cd /mnt/disk
    # tar xzvf /path/to/disk_archive.tar.gz

Use chroot para montar a nova imagem de disco como um sistema de arquivos raiz:

    # mount -t proc none /mnt/disk/proc
    # mount -o bind /dev /mnt/disk/dev
    # chroot /mnt/disk /bin/bash

Faça as alterações necessárias no sistema de arquivos (como instalar os pacotes do grub!)

Saia do chroot e desmonte e desmarque tudo:

   # umount /mnt/disk/dev
   # umount /mnt/disk/proc
   # umount /mnt/disk
   # kpartx -d /dev/loop0
   # losetup -d /dev/loop0

Por fim, criei uma VM com isso como disco rígido. Eu usei Disco Super Grub2 para resolver quaisquer outros problemas com o bootloader.

    
por 13.12.2012 / 00:09
0

Você não especificou que o arquivo é de qual sistema de arquivos da Máquina Virtual. Se você estiver trabalhando no VMWare Workstation, basta adicionar um novo disco da interface, inicializar a máquina com qualquer carregador de inicialização, copiar o arquivo tar dentro dele usando qualquer ftp s / w e depois descompactá-lo. Se for um alcatrão exato de uma máquina virtual em execução, sua máquina inicializará da próxima vez, mesmo sem o bootloader.

    
por 12.12.2012 / 06:45
0

Isto é mais uma estratégia do que um manual perfeito, mas deve ajudar.

Crie seu "computador virtual", ou seja, crie um disco rígido vazio. Então, do meu ponto de vista, é a melhor opção para descobrir qual distribuição Linux está dentro do seu arquivo .tar.gz. Imagine que é um sistema openSUSE, versão 12.1 (deve funcionar com qualquer outra distribuição de maneira similar). Faça o download de uma imagem de disco original (CD) para configurar um sistema básico de sua distribuição na versão correta e instale-a em sua VM recém-criada. Assim, você pode criar sistemas de arquivos e partições (incluindo swap), instalar o grub ou similares, etc. e testar a VM. Feito isso, inicialize em sua VM com um sistema de vida Linux. Vá para a pasta "/" - da sua VM (não a do sistema de vida) e renomeie um número de pastas (como root): bin, boot, etc, lib, opt, root, sbin, srv, tmp, usr, var (assumindo que não estão em partições separadas) em algo como bin-old, boot-old ... Agora descompacte sua antiga VM no mesmo local. Deve haver novas pastas boot, bin ... ao lado das antigas renomeadas. Agora você precisa alterar alguns arquivos da sua VM antiga para inicializar no sistema antigo dentro da nova VM. Supondo que a VM antiga estava usando o grub, você, por exemplo, precisa ajustar os arquivos em / boot, enquanto usa / boot-old como ajuda.

    
por 12.12.2012 / 17:08