e2image mengembalikan metadata sistem file

3

Saya mencoba membuat ulang metadata sistem file pada disk virtual. Saya dapat menyimpan metadata ini menggunakan e2image, dan halaman manual e2image memberitahu saya bahwa saya dapat menggunakan e2image -Iuntuk memulihkan sistem file. Sayangnya, halaman manual tidak memberikan informasi tentang cara menggunakan argumen ini. Saya sudah mencoba yang berikut (hasil perintah indentasi agar lebih mudah dibaca):

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

Sistem file saya sebenarnya adalah ext4, namun halaman manual mengatakan sebagai berikut:

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

Saya menggunakan perintah berikut untuk membuat gambar:

sudo e2image -Q /dev/mapper/nbd0p1 test.qcow2
mkingston
sumber

Jawaban:

3

e2image mendukung tiga format berbeda; secara default, ini menciptakan format file e2image khusus "normal". Dengan -r ia membuat file jarang besar dengan metadata pada offset yang tepat, dan dengan -Q ia membuat file format qcow2. (Opsi -Q ditambahkan agak baru-baru ini untuk membuat gambar filesystem besar lebih portabel).

Meskipun sama sekali tidak jelas dari manual, opsi -I hanya berlaku untuk format file e2image "normal" - yaitu gambar yang dibuat tanpa -r atau -Q.

Karena Anda memiliki gambar qcow2, Anda dapat menggunakan qemu-img untuk menuliskannya kembali ke perangkat blok:

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

Namun , Anda harus menyadari bahwa gambar yang dihasilkan e2image Anda hanya mengandung metadata , yaitu tidak ada data file sama sekali. Anda akan menulis metadata yang menunjuk ke berbagai blok di / dev / nbd1 untuk data file, dan karena itu file akan berisi data apa pun yang sebelumnya ada di blok tersebut di / dev / nbd1.

Jadi saya sudah memberi tahu Anda cara melakukannya, tapi harap pastikan itu yang sebenarnya ingin Anda lakukan!

Eric Sandeen
sumber
Hai, terima kasih banyak atas jawaban Anda. Saya sampai pada kesimpulan ini tentang metadata setelah melakukan beberapa membaca tentang sistem file. Dan terima kasih atas klarifikasi ulang: saklar baris perintah.
mkingston
Bahkan, sebagai catatan, metadata file adalah sesuatu yang saya tidak ingin simpan, karena saya ingin mengganti file saya di partisi tanpa mempertimbangkan alamatnya di perangkat. Jadi kesimpulannya, e2image sebenarnya bukan alat yang ingin saya gunakan. Terima kasih sekali lagi untuk jawaban yang jelas.
mkingston
3

Dimungkinkan untuk mengembalikan gambar QCOW2 yang dibuat menggunakan e2image -Qmenggunakan e2image -r. Sebagai contoh:

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

Perhatikan bahwa saya menguji ini dengan versi 1.42.12e2fsprogs.

Pada >= 1.42.9, e2imagejuga mendukung -aflag yang memungkinkan Anda untuk memasukkan data sistem file selain metadata:

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

Saya memverifikasi bahwa dalam kasus ini e2image -rhanya menulis blok yang dialokasikan kembali ke target, sedangkan qemu-img converttampaknya menulis seluruh sistem file logis. Itu dapat menghemat banyak I / O untuk sistem file yang sebagian digunakan.

Greg
sumber