extundelete – не удалось открыть устройство “/dev/sdb” в режиме только для чтения: Код ошибки 2133571347

Вопрос или проблема

У меня есть Synology NAS с конфигурацией RAID 1, на котором я недавно случайно удалил общую папку с данными, которые я хочу вернуть. Я отключил NAS и загрузился в машину с Ubuntu Live CD, подключив один из дисков NAS.

Я создал образ диска с помощью DD и теперь у меня есть файл oldhd.img на внешнем диске.

Затем я перешел на новую машину, загрузился с Live CD, подключил внешний диск и перешел в директорию внешнего диска, выполнив следующую команду:

mount -r -o loop oldhd.img /mnt

Затем я запустил fdisk -l и увидел, что диск, который мне нужно восстановить, находится на /dev/sdb.

Я перешел в папку жесткого диска моего компьютера и выполнил:

extundelete /dev/sdb --restore-all

Она возвращает:

extundelete - не удалось открыть устройство "/dev/sdb" в режиме только для чтения: Код ошибки 2133571347

Что я делаю не так? И что мне следует сделать вместо этого?

Когда вы используете mount с опцией -r, файловая система монтируется только для чтения. Чтобы выполнить запись на диск, вы не должны монтировать его в режиме только для чтения.

Таким образом, команда должна быть следующей:

mount -o loop oldhd.img /mnt

Также, из сообщения на форуме Sourceforge:

Код ошибки 2133571347 означает “EXT2_ET_BAD_MAGIC”
Это означает, что нет допустимой подписи для суперблока.

Либо:

  • Суперблок поврежден, в этом случае вы можете попытаться открыть файловую систему с помощью копий суперблока, смотрите опции -b blocknumber и -B blocksize, или
  • Вы допустили ошибку при создании образа файловой системы, или
  • Вы создали образ всего диска, а не копию файловой системы, в этом случае вам необходимо указать параметры смещения для losetup.

.

Ответ или решение

Ошибка, с которой вы столкнулись при использовании команды extundelete, указывает на проблему с чтением устройства в режиме только для чтения. Кроме того, ошибка с кодом 2133571347 связана с отсутствием действительного сигнатуры суперблока. Чтобы детально понять и устранить неполадку, рассмотрим теоритическую часть, приведем примеры и предложим практическое решение проблемы.

Теория

При восстановлении данных, особенно когда речь идет о RAID-массиве и файловых системах ext, важно понимать и правильно обрабатывать контекст, в котором находятся данные. Вы использовали dd для создания образа всего диска, но при этом важным шагом является принятие решения о том, какой именно раздел или файловая система требуется для восстановления, так как extundelete работает именно с файловыми системами ext.

Пример

Файловая система ext имеет суперблок, который является критически важным элементом структуры данных. Если суперблок поврежден или недоступен, extundelete не сможет корректно прочитать файловую систему. Ошибка "EXT2_ET_BAD_MAGIC" может возникнуть, если:

  1. При создании образа диска с помощью dd не был учтен правильный раздел, необходимый для восстановления.
  2. Был создан образ всего диска вместо отдельной файловой системы, и extundelete не знает, где точно находится начало файловой системы.
  3. Суперблок действительно поврежден, и нужно использовать резервные копии superblock для восстановления.

Применение

Рассмотрим пошаговую инструкцию для решения проблемы:

  1. Уточнение содержимого образа.
    Используйте команду fdisk -l oldhd.img для определения структуры разделов внутри образа oldhd.img. Это позволит убедиться, что вы оперируете с правильным разделом.

  2. Использование losetup для точной привязки.
    Если образ был создан для всего диска, а не только для его раздела, примените losetup для определения конкретной части файла, которая должна считаться началом нужной файловой системы. Например:

    losetup --find --show --partscan /path/to/oldhd.img
  3. Анализ суперблока.
    Если раздел определен и примонтирован, но все еще возникают проблемы, попробуйте использовать копии суперблока. Инструмент dumpe2fs /dev/loopX (где loopX — созданный loop-устройство) покажет расположение резервных суперблоков. После этого, попробуйте восстановить файловую систему с помощью найденного резервного суперблока:

    extundelete /dev/loopX --restore-all -b 32768

    Где 32768 — это номер блока резервного суперблока, который вы определите с помощью dumpe2fs.

  4. Избежание монтирования.
    Стоит отметить, что монтирование образа даже в режиме только для чтения до выполнения extundelete может повлиять на результат, если суперблок поврежден. Рекомендуется сначала проработать с самими образом и только после удачных манипуляций — монтировать его.

  5. Проверка источника проблем.
    Обратите внимание на дальнейшую диагностику причин удаления данных. RAID 1 обеспечивает отражение данных, что может помочь в будущем избежать повторной потери информации путем использования другой копии диска.

Перед любыми изменениями удостоверьтесь, что у вас есть резервные копии каждого критического шага для предотвращения утраты данных, уже доступных в виде образа. Восстановление данных — это деликатный процесс, требующий внимательного отношения на каждом этапе.

Оцените материал
Добавить комментарий

Капча загружается...