Метаданные файловой системы восстановления e2image

2377
mkingston

Я пытаюсь воссоздать метаданные файловой системы на виртуальном диске. Я могу сохранить эти метаданные с помощью 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

2 ответа на вопрос

2
Eric Sandeen

e2image поддерживает три разных формата; по умолчанию он создает «обычный» пользовательский формат файла e2image. С -r он создает большой разреженный файл с метаданными с правильными смещениями, а с -Q - файл формата qcow2. (Опция -Q была добавлена ​​несколько недавно, чтобы сделать большие образы файловой системы более переносимыми).

Хотя это не совсем понятно из man-страницы, опция -I действительна только для «нормального» формата файла e2image, то есть для изображения, созданного без -r или -Q.

Поскольку у вас есть образ qcow2, вы можете использовать qemu-img, чтобы записать его обратно на блочное устройство:

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

Однако вы должны знать, что изображение, сгенерированное в e2image, содержит только метаданные, то есть вообще несодержитникаких файловых данных. Вы будете записывать метаданные, которые указывают на различные блоки в / dev / nbd1 для данных файла, и поэтому файлы будут содержать любые данные, которые ранее были в этих блоках в / dev / nbd1.

Итак, я рассказал вам, как это сделать, но, пожалуйста, убедитесь, что это именно то, что вы хотите сделать!

Привет, большое спасибо за твой ответ. Я пришел к такому выводу о метаданных после прочтения файловых систем. И спасибо за разъяснения по поводу переключателей командной строки. mkingston 10 лет назад 0
На самом деле, для записи, метаданные файлов - это то, что я не хочу хранить, потому что я хотел заменить мои файлы в разделе без учета их адреса на устройстве. Итак, в заключение, e2image на самом деле не тот инструмент, который я хочу использовать. Еще раз спасибо за четкий ответ. mkingston 10 лет назад 0
2
Greg

Можно восстановить образ QCOW2, созданный с e2image -Qпомощью e2image -r. Например:

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

Обратите внимание, что я проверял это с версией 1.42.12e2fsprogs.

По состоянию >= 1.42.9, e2imageтакже поддерживает -aфлаг, который позволяет включать данные файловой системы в дополнение к метаданным:

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

Я проверил, что в этом случае e2image -rзаписывает только выделенные блоки обратно в цель, тогда как, qemu-img convertкажется, записывает всю логическую файловую систему. Это может сэкономить много ввода-вывода для частично используемых файловых систем.

Похожие вопросы