Метаданные файловой системы восстановления e2image
Я пытаюсь воссоздать метаданные файловой системы на виртуальном диске. Я могу сохранить эти метаданные с помощью e2image, а на странице справки e2image говорится, что я могу использовать e2image -I
восстановить файловую систему. К сожалению, страница руководства не предоставляет никакой информации о том, как использовать этот аргумент. Я пробовал следующее (результаты команды с отступом для удобства чтения):
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
Моя файловая система на самом деле ext4, однако на странице руководства написано следующее:
The e2image program will save critical ext2, ext3, or ext4
Я использовал следующую команду для создания изображения:
sudo e2image -Q /dev/mapper/nbd0p1 test.qcow2
2 ответа
e2image поддерживает три разных формата; по умолчанию он создает "обычный" пользовательский формат файла e2image. С -r он создает большой разреженный файл с метаданными с правильными смещениями, а с -Q - файл формата qcow2. (Опция -Q была добавлена несколько недавно, чтобы сделать большие образы файловой системы более переносимыми).
Хотя это не совсем понятно из справочной страницы, опция -I действительна только для "нормального" формата файла e2image - то есть для изображения, созданного без -r или -Q.
Поскольку у вас есть образ qcow2, вы можете использовать qemu-img, чтобы записать его обратно на блочное устройство:
# qemu-img convert -O raw test.qcow2 /dev/nbd1
Однако вы должны знать, что изображение, сгенерированное в e2image, содержит только метаданные, то есть вообще не содержит никаких файловых данных. Вы будете записывать метаданные, которые указывают на различные блоки в / dev / nbd1 для данных файла, и поэтому файлы будут содержать любые данные, которые ранее были в этих блоках в / dev / nbd1.
Итак, я рассказал вам, как это сделать, но, пожалуйста, убедитесь, что это именно то, что вы хотите сделать!
Возможно восстановить изображение QCOW2, созданное с помощью e2image -Q
с помощью e2image -r
, Например:
# e2image -Q /dev/sdb1 image.qcow2
# e2image -r image.qcow2 /dev/sdb2
Обратите внимание, что я проверил это с версией 1.42.12
e2fsprogs.
По состоянию на >= 1.42.9
, e2image
также поддерживает -a
флаг, который позволяет вам включать данные файловой системы в дополнение к метаданным:
# e2image -Qa /dev/sdb1 image-full.qcow2
# e2image -r image-full.qcow2 /dev/sdb2
Я проверил это в этом случае e2image -r
записывает только выделенные блоки обратно в цель, тогда как qemu-img convert
появляется, чтобы написать всю логическую файловую систему. Это может сэкономить много ввода-вывода для частично используемых файловых систем.