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


0

Recebi um .tar.gzarquivo 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 bruto para montá-los como uma VM.

Como faço para criar uma imagem de disco vazia, colocar um sistema de arquivos e descompactar o arquivo nele?

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

Respostas:


0

Você não especificou que o arquivo é do qual sistema de arquivos da Máquina Virtual. Se você estiver trabalhando no VMWare Workstation, basta adicionar um novo disco a partir da interface, inicialize a máquina com qualquer carregador de inicialização, copie o arquivo tar dentro dela usando qualquer ftp s / we desmarque-o. Se for um tar exato de uma máquina virtual em execução, sua máquina será inicializada na próxima vez, mesmo sem o carregador de inicialização.


Os arquivos são de um ambiente de VM alienígena, possivelmente Xen, e devem entrar em um hipervisor KVM, daí o uso de imagens de disco não processadas. Acho que tenho uma solução que tentarei amanhã.
Aethylred 12/12/12

0

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

Crie o 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 semelhante). Baixe uma imagem de disco original (CD) para configurar um sistema básico de sua distribuição na versão correta e instale-o na sua VM recém-criada. Assim, você pode criar sistemas de arquivos e partições (incluindo swap), instalar o grub ou similar etc. e testar a VM. Feito isso, inicialize na sua VM com um sistema de vida útil do Linux. Vá para a pasta "/" - da sua VM (não do sistema da vida) e renomeie várias pastas (como raiz): bin, boot, etc, lib, opt, root, sbin, srv, tmp, usr, var (assumindo que nenhum deles esteja em partições separadas) em algo como bin-old, boot-old ... Agora descompacte sua VM antiga no mesmo local. Deveria haver novas pastas bin, 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ê precisa, por exemplo, ajustar os arquivos em / boot, enquanto usa / boot-old como ajuda.


0

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

Lembre-se de usar kpartxno dispositivo de loopback para 'encontrar' as novas partições:

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

Como não tinha certeza de qual sistema de arquivos usar, decidi conservadoramente criar um ext2sistema de arquivos 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 morto:

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

Use chrootpara 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 grub!)

Saia do chroot, desmonte e desenrole tudo:

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

Finalmente, criei uma VM com isso como disco rígido. Usei o Super Grub2 Disk para resolver outros problemas com o gerenciador de inicialização.


Algum atraso neste enquanto eu muito sobre como obter o pacote grub instalado, sem rede, e ter que reconstruir dpkg etc.
Aethylred
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.