Содержание статьи
rm -rf
живее всех живых, резервной копии нет (а должна бы быть!), времени на поиски и выбор утилит для восстановления — тоже. Как же быть?info
В 2006 году вышла в свет книга Криса Касперски «Восстановление данных», которая быстро стала бестселлером. Сейчас эта книга готовится к переизданию. Мы публикуем отрывок из этой книги, посвященный восстановлению данных в файловых системах ext.
Ошибочное удаление файлов в *NIX — это достаточно распространенное явление, наверное, даже более частое, чем в мире Microsoft. Под Windows большинство файловых операций выполняется вручную с помощью проводника или других интерактивных средств типа FAR или Total Commander. Интерактивные среды есть и в Linux (KDE, GNOME, XFCE…), но немалая часть фанатов Linux — поклонники командной строки. Командная же строка — это регулярные выражения и скрипты, то есть автоматизированные средства управления — мощные, удобные и, при неправильном использовании, разрушительные. Малейшая небрежность — и можешь навсегда попрощаться со своими файлами!
Перефразируя Булгакова, можно сказать: мало того что файл смертен, так он еще и внезапно смертен! Беда никогда не предупреждает о своем приходе, и администратору приходится быть постоянно начеку. Несколько секунд назад все было хорошо: цвела весна, винчестер оживленно стрекотал всеми своими головками, администратор отхлебывал кофе из черной кружки с надписью root, как вдруг сотни гигабайт ценнейших данных внезапно разлетелись на мелкие осколки. Все силы брошены на разгребание завалов и спасение всех, кого еще можно спасти.
Доступность исходных текстов драйвера файловой системы значительно упрощает исследование ее внутренней структуры, которая, кстати говоря, очень проста. Поэтому восстановление данных на разделах ext2/3/4 — задача тривиальная.
Знакомьтесь! Семейство расширенных файловых систем
Изначально Linux был чем‑то вроде вольного пересказа ОС Minix, разработка велась под ней же, и работали первые версии Linux на файловой системе Minix. Называлась та незамысловато — MINIX file system — и, в свою очередь, была вдохновлена файловой системой UNIX — UFS. Но, поскольку сама Minix разрабатывалась скорее в учебных целях, ее файловая система не обладала широкими возможностями. Например, размер раздела не мог превышать 64 Мбайт, а максимальная длина имени файла — 14 или 30 символов в зависимости от версии. Чтобы преодолеть такие ограничения, начали разрабатывать собственную ФС для Linux.
Немного об истоках
Новая файловая система расширяла возможности MINIXfs, за что, видимо, и получила название extended filesystem. Первая реализация расширенной файловой системы, ext fs, увидела свет в 1992 году в ядре Linux версии 0.96c. Теперь приверженцы Linux были ограничены двумя гигабайтами для раздела, а файлы могли иметь имя длиной до 255 символов. Тем не менее эта ФС была все еще сравнительно проста, поэтому дальнейшее ее развитие не заставило себя долго ждать. Примерно в это же время, кстати, в Linux появился такой уровень абстракции, как виртуальная файловая система (VFS), облегчающий добавление поддержки новых ФС в ядро.
С появлением через пару лет ext2 максимальные размеры файла и файловой системы возросли до 16 Гбайт и 2 Тбайт соответственно (при размере блока 1 Кбайт). Часть блоков (обычно 5%) теперь резервировалась под рут, не позволяя обычным пользователям заполнить весь раздел без остатка. Тогда эта ФС стала практически стандартом де‑факто на линуксах, а ее реализации, говорят, были и под NT.
Поколение ext3
Третья расширенная файловая система (Third extended file system, ext3) появилась почти двадцать лет назад в одной из версий Linux 2.4.14. Она во многом напоминает свою предшественницу, ext2, но отличается поддержкой журналирования (в терминологии NTFS — транзакций). В отличие от ext2fs, она намного бережнее относится к массиву каталогов, хотя, как мы увидим чуть далее, нам это не сильно поможет.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»