Восстановление ext4

Файловая система Ext2/Ext3/Ext4 — основная система для Linux — платформы, включая множество устройств хранения, подключенных к сети (NAS — network attached storage), основанных на Lunux’e. А для множества дистрибутивов она является дефолтной. Диски Ext2/3/4FS не распознаются ни Windows, ни Mac OS X машинами без специальных программ от сторонних произваодителей. Это означает что если диск используется исключительно на Linux-машине, скорее всего он отформатирован как Ext2/3/4FS-устройство

В этой статье мы продемонстрируем вам типичный сценария при восстановлении данных с дисков Ext4FS: мы покажем вам как использовать R-Studio для восстановлении файлов после переформатирования диска Ext4FS. Эту же самую процедуру можно использовать и для RAID’ов, созданных устройствами NAS. См. он-лайн справку по R-Studio: Volume Sets and RAIDs.

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

Диск, который вы пытаетесь восстановить, имеет переформатированый раздел Ext2/3/4FS.
Рекомендации в этой статье применимы только к дискам, отформатированным под Ext2/3/4FS. Если вам надо восстановить данные с другого типа диска, то обратитесь к нашим другим статьям:

  • С диска exFAT/FAT (Windows/Mac OS X/Linux): Восстановление данных с переформатированного диска exFAT/FAT
  • С диска NTFS (Windows): Восстановление данных с переформатированного диска NTFS
  • С диска HFS (Mac OS X): Восстановление данных со стертого диска HFS или HFS+
  • С диска APFS (macOS): Восстановление данных со стертого диска APFS

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

  • Система совсем не распознает устройство, или распознает его под необычным или искаженным именем
  • Утилиты по мониторингу параметров S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology — Технология самоконтроля, анализа и отчётности) предупреждает что произошел серьезный отказ оборудования. R-Studio может проверять состояние параметров S.M.A.R.T. для вашего диска, и ниже мы расскажем как это сделать.
  • Жесткий диск издает необычные звуки, щелчки, или раскрутка и запуск диска занимает много времени.
  • На жестком диске постоянно появляются плохие блоки.

Лучше всего с такими случаями справляются квалифицированные специалисты по восстановлению данных. У них есть специальное оборудование, программы, и, что самое главное, необходимые навыки работы с такими дисками. Ни R-Studio, ни другие программы восстановления данных не смогут помочь вам в таких случаях. Более того, всякое дальнейшие попытки работы с таким диском наверняка причинят еще больше вреда вашим данным. Очень часто такие повреждения могут сделать восстановление полностью невозможным.

И последнее напоминание…
Ничего не пишите на диск, с которого вы собираетесь восстанавливать данные! Новые данные могут перезаписать ваши старые файлы, и вы можете потерять их навсегда.

Тестовый диск: Первоначальная структура файлов и папок на диске
Чтобы показать вам процесс восстановления мы подготовили тестовый диск с типичным набором пользовательских файлов, которые могут быть на внешнем диске Ext2/3/4FS, распределенными по некоторой структуре папок:

Документы:

  • Архивы:файлы .zip, созданные в программе WinZip
  • PDF: файлы .pdf, созданные в программе Adobe Acrobat
  • Microsoft Office: файлы .doc и .docx, созданные в программе Word; файлы .xls и .xlsx, созданные в программе Excel
  • OpenOffice: файлы .odt и .docx, созданные в программе Writer; файлы .ods и .xlsx, созданные в программе Calc

Мультимедия:

  • Музыка: файлы .mp3
  • Графика: файлы .jpg и .png
  • Видео: файлы .avi, .flv, .m4v, .mov, .mp4, .mpeg, .mts, и .mkv.

Корневая папка на тестовом диске показана на Рис. 1.

Рис.1: Корневая папка на тестовом диске
Кликни по изображению для его увеличения

После записи файлов мы переформатировали диск при помощи дисковыми инструментами (Disk tool) в Linux’е. После этого диск оказался полностью пустым.

Процесс восстановления данных
Предварительная подготовка:

  • До начала работы подготовьте место на дисках, достаточное для сохранения всех восстанавливаемых файлов. Это может быть любой диск, видимый операционной системой, или сетевой диск. Не пытайтесь сохранять файлы на том диске, с которого вы собираетесь их восстанавливать.
  • Если вы еще этого не сделали, скачайте и установите R-Studio. Прямо сейчас нет необходимости ее покупать и регистрировать. В демо-режиме R-Studio позволяет вам выполнять все необходимые операции по восстановлению данных, за исключением сохранения восстановленных файлов. Это позволяет вам понять, сможет ли она успешно восстановить файлы, и, следовательно, имеет ли смысл ее покупать. Вам не потребуется переустанавливать или перезапускать программу для ее регистрации.
    Замечание:В качестве образца мы будем использовать версию R-Studio для Linux’а для показа процесса восстановления данных, но все указания полностью подходят для версий R-Studio для Mac и Windows. Панели и диалоги будут выглядеть слегка по-другому, но вся функциональность будет полностью такой же.

1. Подсоедините диск к компьютеру с R-Studio.

Подсказка: Операции сканирования диска и восстановления данных могут быть достаточно долгими, особенно для очень больших дисков. Поэтому надо использовать наиболее быстрый интерфейс из доступных. Самые быстрые интерфейсы — SATA/eSATA и USB 3.0. Много внешних дисков имеют несколько таких интерфейсов. Наиболее распространенный USB 2.0 может быть слишком медленным для больших дисков.

2. Запустите R-Studio и определите переформатированный диск и диск, предназначенный для записи восстановленных дисков.

Рис.2: Главная панель R-Studio с переформатированным диском
Кликни по изображению для его увеличения

Проверьте параметры S.M.A.R.T. для переформатированного диска:

  • Если состояние диска CAUTION, то могут быть небольшие проблемы с диском, но все равно можно безопасно использовать диск для восстановления данных. Скорее всего состояние будет ухудшаться, поэтому регулярно проверяйте параметры S.M.A.R.T. чтобы убедиться что состояние не перешло в BAD. Рекомендуется создать образ диска, но это потребует дополнительного места для его хранения.
  • Если состояние диска BAD, то это очень критично, и высоки шансы на то, что диск может полностью выйти из строя. Наилучшая рекомендация — прекратить работу с таким диском и отдать его специалистам по восстановлению данных. На свой страх и риск вы можете продолжить работу с ним, но очень рекомендуется создать образ диска.

Если аттрибуты S.M.A.R.T. нормальные, то можно начинать восстановление данных.

3. Выберите отформатированный диск и кликните по кнопке Scan. Появится диалог Scan.

Рис.3: Диалог сканирования диска
Кликни по изображению для его увеличения

Так как мы знаем с какой файловой системы мы пытаемся восстановить данные, мы может улучшить результаты путем задания только нужной файловой системы. Кликните по кнопке Change… и оставьте выбранной только файловую систему Ext2/Ext3/Ext4. Также имеет смысл сохранить информацию о сканировании если вам придется прервать восстановление данных и затем его возобновить. Когда вы в следующий раз откроете диск, вам не придется пересканировать его; вы сможете загрузить информацию о сканировании сохраненную с предыдущего раза.

4. Убедитесь что выбрано Extra search for Known File Types и кликните по кнопке Known File Types…

Рис.4: Диалог Known File Types
Кликни по изображению для его увеличения

Укажите только те типы файлов которые вы считаете, что они были на удаленном диске. Лучше всего сделать это следующим образом: кликните по кнопке Clear и затем выберите только необходимые типы в списке. Затем кликните по кнопке OK на диалоге Scan. Кликните по кнопке Scan.

5. R-Studio начнет сканирование диска, показывая его прогресс.

Рис.5: Прогресс сканирования диска
Кликни по изображению для его увеличения

6. Посмотрите на результаты сканирования и найдите обнаруженный раздел, соответствующий удаленному диску.

Рис.6: Результаты сканирования
Кликни по изображению для его увеличения

В нашем случае это раздел Recognized1.

Если когда-то на диске были другие разделы, R-Studio может найти их. Среди них нужно определить именно тот, который требуется. В большинстве случаев раздел, с которого вы пытаетесь восстановить данные, будет иметь тот же размер, что и существующий раздел. См. он-лайн справку по R-Studio: Восстановление Данных при помощи R-Studio.

7. Дважды кликните по разделу Recognized1. R-Studio пересчитает файлы на нем и покажет его дерево папок.

Рис.7: Файлы и папки, найденные на переформатированном диске
Кликни по изображению для его увеличения

Когда Linux стирает диск Ext4FS, он полностью стирает все следы от предыдущей файловой системы, и ее файлы можно найти только по их сигнатурам. Этот метод восстановления файлов называется «Поиск известных типов файлов». Используя этот метод, невозможно восстановить имена файлов и папок, или другие файловые атрибуты.

R-Studio сортирует файлы, восстановленные по известным типам файлов, по их типам и автоматически генерирует имена файлов типа. В некоторых случаях R-Studio может попытаться восстановить осмысленные имена файлов и временные метки из информации и атрибутов, записанных в файловые тэги или метаданные.

Если вы ищите какой-нибудь особый файл или несколько файлов, вы можете использовать мощные возможности по поиску и выбора файлов в R-Studio. См. он-лайн справку по R-Studio: Поиск Файла.

8. Используйте встроенный предпросмотрщик для определения шансов на успешное восстановление данных. Это особенно полезно для больших графических файлов. Дважды кликните по файлу для его предпросмотра.

Рис.8: Предпросмотр файлов
Кликни по изображению для его увеличения

Если несколько файлов будут отображаться правильно, то можно купить лицензию и зарегистрировать R-Studio. Теперь можно начать сохранение восстановленных файлов.

9. Выберите файлы и папки, которые вы хотите восстановить, и выберите место для их сохранения
Рис.9. Файлы, помеченные для восстановления и опции восстановления
Кликни по изображению для его увеличения

При необходимости, укажите другие параметры восстановления. См. он-лайн справку по R-Studio. Затем кликните по кнопке Recover Marked.

10. R-Studio начнет восстановление файлов, показывая его прогресс.
Рис.10: Процесс восстановления файлов
Кликни по изображению для его увеличения

11. По окончании восстановления R-Studio покажет финальный отчет с результатами восстановления.
Рис.11: Результаты восстановления данны
Кликни по изображению для его увеличения

Результаты восстановления данных
Чтобы посмотреть на восстановленные файлы, перейдите к папке, в которую вы их сохранили в пункте 9.
Рис.12: Результаты восстановления данных
Кликни по изображению для его увеличения

В нашем сценарии мы смогли восстановить все файлы с переформатированного диска. Но была утеряна вся информация об оригинальной файловой структуре, именах файлов и других атрибутах. R-Studio дана имена некоторым файлам используя информацию из тэгов и других атрибутов этих файлов.

Заключение
Если у вас есть случайно отформатированный диск Ext2/3/4FS, попробуйте выполнить все вышеуказанные действия в демо-режиме R-Studio. Если вы сможете успешно найти и просмотреть файлы, которые вы ищете, вы можете продолжить и зарегистрировать программу чтобы восстановить ваши файлы. Попытка восстановить данные с случайно отформатированного диска при помощи R-Studio безопасно при условии что диск в хорошем физическом состоянии и вы не записывали на него новые данные. Во многих случаях можно восстановить 100% ваших данных, даже если некоторая информация о них утеряна (имена файлов и структура папок). R-Stuido способна даже вытащить такую информацию из файловых тэгов и метаданных.

Из-за различных неполадок или неожиданного отключения компьютера файловая система может быть повреждена. При обычном выключении все файловые системы монтируются только для чтения, а все не сохраненные данные записываются на диск.

Но если питание выключается неожиданно, часть данных теряется, и могут быть потерянны важные данные, что приведет к повреждению самой файловой системы. В этой статье мы рассмотрим как восстановить файловую систему fsck, для нескольких популярных файловых систем, а также поговорим о том, как происходит восстановление ext4.

Немного теории

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

Современные файловые системы делятся на два типа — журналируемые и нежурналируемые. Журналиуемые файловые системы записывают в лог все действия, которые собираются выполнить, а после выполнения стирают эти записи. Это позволяет очень быстро понять была ли файловая система повреждена. Но не сильно помогает при восстановлении. Чтобы восстановить файловую систему linux необходимо проверить каждый блок файловой системы и найти поврежденные сектора.

Для этих целей используется утилита fsck. По сути, это оболочка для других утилит, ориентированных на работу только с той или иной файловой системой, например, для fat одна утилита, а для ext4 совсем другая.

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

Основы работы с fsck

В этой статье мы рассмотрим ручную работу с fsck. Возможно, вам понадобиться LiveCD носитель, чтобы запустить из него утилиту, если корневой раздел поврежден. Если же нет, то система сможет загрузиться в режим восстановления и вы будете использовать утилиту оттуда. Также вы можете запустить fsck в уже загруженной системе. Только для работы нужны права суперпользователя, поэтому выполняйте ее через sudo.

А теперь давайте рассмотрим сам синтаксис утилиты:

$ fsck

Основные опции указывают способ поведения утилиты, оболочки fsck. Раздел диска — это файл устройства раздела в каталоге /dev, например, /dev/sda1 или /dev/sda2. Опции файловой системы специфичны для каждой отдельной утилиты проверки.

А теперь давайте рассмотрим самые полезные опции fsck:

  • -l — не выполнять другой экземпляр fsck для этого жесткого диска, пока текущий не завершит работу. Для SSD параметр игнорируется;
  • -t — задать типы файловых систем, которые нужно проверить. Необязательно указывать устройство, можно проверить несколько разделов одной командой, просто указав нужный тип файловой системы. Это может быть сама файловая система, например, ext4 или ее опции в формате opts=ro. Утилита просматривает все файловые системы, подключенные в fstab. Если задать еще и раздел то к нему будет применена проверка именно указанного типа, без автоопределения;
  • -A — проверить все файловые системы из /etc/fstab. Вот тут применяются параметры проверки файловых систем, указанные в /etc/fstab, в том числе и приоритетность. В первую очередь проверяется корень. Обычно используется при старте системы;
  • -C — показать прогресс проверки файловой системы;
  • -M — не проверять, если файловая система смонтирована;
  • -N — ничего не выполнять, показать, что проверка завершена успешно;
  • -R — не проверять корневую файловую систему;
  • -T — не показывать информацию об утилите;
  • -V — максимально подробный вывод.

Это были глобальные опции утилиты. А теперь рассмотрим опции для работы с файловой системой, их меньше, но они будут более интересны:

  • -a — во время проверки исправить все обнаруженные ошибки, без каких-либо вопросов. Опция устаревшая и ее использовать не рекомендуется;
  • -n — выполнить только проверку файловой системы, ничего не исправлять;
  • -r — спрашивать перед исправлением каждой ошибки, используется по умолчанию для файловых систем ext;
  • -y — отвечает на все вопросы об исправлении ошибок утвердительно, можно сказать, что это эквивалент a.
  • -c — найти и занести в черный список все битые блоки на жестком диске. Доступно только для ext3 и ext4;
  • -f — принудительная проверка файловой системы, даже если по журналу она чистая;
  • -b — задать адрес суперблока, если основной был поврежден;
  • -p — еще один современный аналог опции -a, выполняет проверку и исправление автоматически. По сути, для этой цели можно использовать одну из трех опций: p, a, y.

Теперь мы все разобрали и вы готовы выполнять восстановление файловой системы linux. Перейдем к делу.

Как восстановить файловую систему в fsck

Допустим, вы уже загрузились в LiveCD систему или режим восстановления. Ну, одним словом, готовы к восстановлению ext4 или любой другой поврежденной ФС. Утилита уже установлена по умолчанию во всех дистрибутивах, так что устанавливать ничего не нужно.

Восстановление файловой системы

Если ваша файловая система находится на разделе с адресом /dev/sda1 выполните:

sudo fsck -y /dev/sda1

Опцию y указывать необязательно, но если этого не сделать утилита просто завалит вас вопросами, на которые нужно отвечать да.

Восстановление поврежденного суперблока

Обычно эта команда справляется со всеми повреждениями на ура. Но если вы сделали что-то серьезное и повредили суперблок, то тут fsck может не помочь. Суперблок — это начало файловой системы. Без него ничего работать не будет.

Но не спешите прощаться с вашими данными, все еще можно восстановить. С помощью такой команды смотрим куда были записаны резервные суперблоки:

sudo mkfs -t ext4 -n /dev/sda1

На самом деле эта команда создает новую файловую систему. Вместо ext4 подставьте ту файловую систему, в которую был отформатирован раздел, размер блока тоже должен совпадать иначе ничего не сработает. С опцией -n никаких изменений на диск не вноситься, а только выводится информация, в том числе о суперблоках.

Теперь у нас есть шесть резервных адресов суперблоков и мы можем попытаться восстановить файловую систему с помощью каждого из них, например:

sudo fsck -b 98304 /dev/sda1

После этого, скорее всего, вам удастся восстановить вашу файловую систему. Но рассмотрим еще пару примеров.

Проверка чистой файловой системы

Проверим файловую систему, даже если она чистая:

sudo fsck -fy /dev/sda1

Битые сектора

Или еще мы можем найти битые сектора и больше в них ничего не писать:

sudo fsck -c /dev/sda1

Установка файловой системы

Вы можете указать какую файловую систему нужно проверять на разделе, например:

sudo fsck -t ext4 /dev/sdb1

Проверка всех файловых систем

С помощью флага -A вы можете проверить все файловые системы, подключенные к компьютеру:

sudo fsck -A -y

Но такая команда сработает только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку. Но вы можете исключить корневой раздел из проверки добавив R:

sudo fsck -AR -y

Или исключить все примонтированные файловые системы:

sudo fsck -M -y

Также вы можете проверить не все файловые системы, а только ext4, для этого используйте такую комбинацию опций:

sudo fsck -A -t ext4 -y

Или можно также фильтровать по опциям монтирования в /etc/fstab, например, проверим файловые системы, которые монтируются только для чтения:

sudo fsck -A -t opts=ro

Проверка примонтированных файловых систем

Раньше я говорил что нельзя. Но если другого выхода нет, то можно, правда не рекомендуется. Для этого нужно сначала перемонтировать файловую систему в режим только для чтения. Например:

sudo mount -o remount,ro /dev/sdb1

А теперь проверка файловой системы fsck в принудительном режиме:

sudo fsck -fy /dev/sdb1

Просмотр информации

Если вы не хотите ничего исправлять, а только посмотреть информацию, используйте опцию -n:

sudo fsck -n /dev/sdb1

Выводы

Вот и все, теперь вы знаете как выполняется восстановление файловой системы ext4 или любой другой, поддерживаемой в linux fsck. Если у вас остались вопросы, спрашивайте в комментариях!

На десерт сегодня видео на английском про различия файловых систем ext4 и xfs, как обычно, есть титры: