e2image restaurar metadados do sistema de arquivos

2

Estou tentando recriar metadados do sistema de arquivos em um disco virtual. Eu posso salvar esses metadados usando o e2image, e a man page do e2image me diz que eu posso usar e2image -I para restaurar o sistema de arquivos. Infelizmente, a página man não fornece nenhuma informação sobre como usar esse argumento. Eu tentei o seguinte (resultados de comando recuados para facilitar a leitura):

msk $ e2image /dev/nbd1 -I test.qcow2
  e2image 1.42.5 (29-Jul-2012)
  e2image: Wrong magic number for Ext2 Image Header while trying to open test.qcow2
msk $ sudo e2image /dev/nbd1 -I test.qcow2
  e2image 1.42.5 (29-Jul-2012)
  e2image: Wrong magic number for Ext2 Image Header while trying to open test.qcow2
msk $ sudo e2image test.qcow2 -I /dev/nbd1
  e2image 1.42.5 (29-Jul-2012)
  e2image: Wrong magic number for Ext2 Image Header while trying to open /dev/nbd1

Meu sistema de arquivos é, na verdade, ext4, no entanto, a página man diz o seguinte:

The e2image program will save critical ext2, ext3, or ext4

Eu usei o seguinte comando para criar a imagem:

sudo e2image -Q /dev/mapper/nbd0p1 test.qcow2
    
por mkingston 06.09.2013 / 16:33

2 respostas

2

O e2image suporta três formatos diferentes; Por padrão, ele cria um formato de arquivo e2image personalizado "normal". Com -r, ele cria um arquivo grande esparso com metadados nos deslocamentos adequados e, com -Q, cria um arquivo no formato qcow2. (A opção -Q foi adicionada um pouco recentemente para tornar as imagens grandes do sistema de arquivos mais portáteis).

Embora não esteja claro na página do manual, a opção -I só é válida para um formato de arquivo e2image "normal" - ou seja, uma imagem criada sem -r ou -Q.

Como você tem uma imagem qcow2, pode usar o qemu-img para gravá-la em um dispositivo de bloco:

# qemu-img convert -O raw test.qcow2 /dev/nbd1

No entanto , você deve estar ciente de que a imagem gerada pelo e2image contém somente metadados , ou seja, sem dados de arquivo. Você estará escrevendo metadados que apontam para vários blocos em / dev / nbd1 para os dados do arquivo, e os arquivos conterão, portanto, quaisquer dados que estivessem anteriormente naqueles blocos em / dev / nbd1.

Então, eu disse a você como fazer isso, mas por favor, tenha certeza de que é realmente o que você quer fazer!

    
por 15.09.2013 / 19:33
2

É possível restaurar uma imagem QCOW2 criada usando e2image -Q usando e2image -r . Por exemplo:

# e2image -Q /dev/sdb1 image.qcow2
# e2image -r image.qcow2 /dev/sdb2

Note que eu testei isso com a versão 1.42.12 de e2fsprogs.

A partir de >= 1.42.9 , e2image também suporta o -a flag, que permite incluir dados do sistema de arquivos, além de metadados:

# e2image -Qa /dev/sdb1 image-full.qcow2
# e2image -r image-full.qcow2 /dev/sdb2

Verifiquei que, neste caso, e2image -r grava apenas os blocos alocados de volta no destino, enquanto qemu-img convert parece gravar todo o sistema de arquivos lógico. Isso pode economizar muita E / S para sistemas de arquivos parcialmente utilizados.

    
por 09.12.2014 / 23:57