Восстановление удаленных файлов с NTFS и FAT
- 03.02.10, 13:39
Почему именно с NTFS и FAT? А пользователи какой системы чаще всего
теряют файлы? :)
Сегодня рассмотрим 2 программы для восстановления
удаленных файлов, а именно ntfsundelete и photorec. А потом научимся
полностью уничтожать файлы.
Началось все с
того, что один человек копировал файлы на флешку, и потерял их.
Изначально
они лежали на NTFS разделе, потом их скопировали на FAT32 флешку. Про
файлы известно что это фотки, и где они примерно лежали.
С собой у
меня был только ubuntu livecd, чего оказалось достаточно что бы
восстановить большинство фоток.
Теория
Казалось
бы, стер файл (или как говорят "очистил корзину" :) ) и все, файла
больше нет. Но если разобраться в механизме работы файловой системы,
окажется что это не совсем так.
Файлы на месте
Если
не вдаваться в тонкости конкретной файловой стистемы, то раздел
жесткого диска делится на 2 части. В одной хранятся сами данные, во
второй указатели на место, где эти данные лежат. Если бы не было второй
части, то для того что бы посмотреть список файлов в папке, пришлось бы
прочитать данные со всего винчестера (а для терабайтного винчестера это
около 5 часов). А так, считал небольшую область размером в несколько
мегабайт, и узнал список файлов. Понадобилось открыть файл, прочитал
адрес где он физически лежит, и сразу начинается чтение от туда.
Вот
в этом и хитрость. Когда выполняется команда на удаление файла,
страется только запись во второй части, стирается только ссылка на файл.
При этом сами данные остаются на месте.
Один файл стерт
Программы
восстановления удаленных файлов бывают 2 типов:
1. работающие с
особенностями файловой системы. Обычно дают отличный результат,
восстанавливается даже имя файла.
2. независимые от сисемы, находят
файлы по ключевым комбинациям байт. Тут уж как повезет. Если файл лежал
одним куском, то его можно будет найти и восстановить. Если состоял из
нескольких - то вторую часть будет не найти.
ntfsundelete
ntfsundelete - прога из
пакета ntfsprogs.
Она есть
на Ubuntu LiveCD. Прежде чем ее использовать нужно отмонтировать
файловую систему. Программу нужно запускать от root.
В моих
примерах ntfs на разделе /dev/sda1
Для начала просто поищем удаленные
файлы.
Программа
выведет на экран все файлы, которые найдет, даже те, которые невозможно
восстановить.
Особой пользы от файлов с 5% сохранностью данных обычно
нету, поэтому найдем только целые файлы:
Вот что примерно выдает программа
Файлов может быть
очень много, поэтому можно отобразить только удаленные за последние 2
дня
Первый
столбик Inode - идентификатор файла. Восстановим файл 11172
(TEMP7457.dbf)
Можно
указать путь, куда восстанавливать файл (восстановим на нашу флешку)
Если известна
часть имени файла, то можно восстановить по маске
Ну и конечно можно восстановить
все, а потом думать что нужно
Программа хорошая, файлы восстанавливает
качественно, со всеми атрибутами (имя, дата).
Но файлы нужно
восстановить с FAT32 флешки. На диске Ubuntu я ничего не нашел, поэтому
скопировал все флешки на свой переносной винчестер, и пошел домой,
разбираться.
теряют файлы? :)
Сегодня рассмотрим 2 программы для восстановления
удаленных файлов, а именно ntfsundelete и photorec. А потом научимся
полностью уничтожать файлы.
Началось все с
того, что один человек копировал файлы на флешку, и потерял их.
Изначально
они лежали на NTFS разделе, потом их скопировали на FAT32 флешку. Про
файлы известно что это фотки, и где они примерно лежали.
С собой у
меня был только ubuntu livecd, чего оказалось достаточно что бы
восстановить большинство фоток.
Теория
Казалось
бы, стер файл (или как говорят "очистил корзину" :) ) и все, файла
больше нет. Но если разобраться в механизме работы файловой системы,
окажется что это не совсем так.
Файлы на месте
Если
не вдаваться в тонкости конкретной файловой стистемы, то раздел
жесткого диска делится на 2 части. В одной хранятся сами данные, во
второй указатели на место, где эти данные лежат. Если бы не было второй
части, то для того что бы посмотреть список файлов в папке, пришлось бы
прочитать данные со всего винчестера (а для терабайтного винчестера это
около 5 часов). А так, считал небольшую область размером в несколько
мегабайт, и узнал список файлов. Понадобилось открыть файл, прочитал
адрес где он физически лежит, и сразу начинается чтение от туда.
Вот
в этом и хитрость. Когда выполняется команда на удаление файла,
страется только запись во второй части, стирается только ссылка на файл.
При этом сами данные остаются на месте.
Один файл стерт
Программы
восстановления удаленных файлов бывают 2 типов:
1. работающие с
особенностями файловой системы. Обычно дают отличный результат,
восстанавливается даже имя файла.
2. независимые от сисемы, находят
файлы по ключевым комбинациям байт. Тут уж как повезет. Если файл лежал
одним куском, то его можно будет найти и восстановить. Если состоял из
нескольких - то вторую часть будет не найти.
ntfsundelete
ntfsundelete - прога из
пакета ntfsprogs.
Она есть
на Ubuntu LiveCD. Прежде чем ее использовать нужно отмонтировать
файловую систему. Программу нужно запускать от root.
В моих
примерах ntfs на разделе /dev/sda1
Для начала просто поищем удаленные
файлы.
ntfsundelete /dev/sda1
Программа
выведет на экран все файлы, которые найдет, даже те, которые невозможно
восстановить.
Особой пользы от файлов с 5% сохранностью данных обычно
нету, поэтому найдем только целые файлы:
ntfsundelete -p
100
Вот что примерно выдает программа
nagos@nagos-desktop:~$
sudo ntfsundelete -p 100 /dev/sda1
Inode Flags %age Date
Size Filename
---------------------------------------------------------------
10800
FN.. 100% 2008-03-06 4050944 ntuser.tmp
10870 FR..
100% 2008-03-06 337 TEMP7455.dbf
10874 FN.. 100%
2008-03-06 3072 TEMP7455.cdx
11172 FR.. 100% 2008-03-06
337 TEMP7457.dbf
11173 FN.. 100% 2008-03-06 3072
TEMP7457.cdx
11656 FR.. 100% 2008-03-06 337 TEMP3955.dbf
14036
FN.. 100% 2008-03-06 3072 TEMP3955.cdx
15025 FN..
100% 2008-03-06 13999 acd97B.tmp
Файлов может быть
очень много, поэтому можно отобразить только удаленные за последние 2
дня
ntfsundelete /dev/sda1 -t 2d
Первый
столбик Inode - идентификатор файла. Восстановим файл 11172
(TEMP7457.dbf)
ntfsundelete /dev/sda1 -u -i 11172
Можно
указать путь, куда восстанавливать файл (восстановим на нашу флешку)
ntfsundelete
/dev/sda1 -u -i 11172 -d /media/flash
Если известна
часть имени файла, то можно восстановить по маске
ntfsundelete
/dev/sda1 -u -m "*.doc"
Ну и конечно можно восстановить
все, а потом думать что нужно
ntfsundelete /dev/sda1 -u
-m "*"
Программа хорошая, файлы восстанавливает
качественно, со всеми атрибутами (имя, дата).
Но файлы нужно
восстановить с FAT32 флешки. На диске Ubuntu я ничего не нашел, поэтому
скопировал все флешки на свой переносной винчестер, и пошел домой,
разбираться.
dd if=/dev/sda1 of=/media/usb-hdd
1
Коментарі
Нишаня
13.02.10, 14:11
Полезная вещь!
Жаль это не всегда знают в сервисценрах Мне два года назад сказали, что "востановить не смогли"