Мини-HOWTO: Восстановление удаленных файлов с файловой системы Ext2fs в Linux |
---|
Пред. | | След. |
Несколько советов
Жизненно необходимо помнить, что при восстановлении удаленных файлов Linux не похож на MS-DOS. В MS-DOS (и его внебрачном потомке Window 95) в большинстве случаев довольно легко восстановить файл, так как в комплект поставки "операционной системы" (я употребляю этот термин в широком смысле) входит утилита, автоматизирующая значительную часть процесса. Linux - совсем другой случай.
Итак, правило N 1 (главная заповедь, если хотите):
"ХРАНИТЕ КОПИИ"
неважно чего. Позаботьтесь об имеющейся у вас информации. Возможно, вы храните переписку, адреса, программы, документы за несколько лет на вашем компьютере. Подумайте о том, как перевернется ваша жизнь, если произойдет непоправимый сбой диска или, не дай бог, к вам в систему проникнет злоумышленник и повредит диски. И это не так уж невероятно - я общался с людьми, оказавшимися в такой ситуации. Я призываю здравомыслящих пользователей Linux пойти и купить устройство резервного копирования, составить приличное расписание копирования данных на него и
строго придерживаться этого. Я, например, использую запасной диск на второй машине и периодически сбрасываю на него по сети мой домашний каталог. Для дополнительной информации, по составлению расписания резервного копирования, читайте Frisch (1995) (см. раздел
Разд. Ссылки и благодарности).
Что делать, если у вас нет возможности копировать данные?
Попробуйте запретить запись в важные файлы: запрет доступа на запись заставит rm запрашивать подтверждение перед удалением. (Впрочем, я заметил, что если я удаляю каталог со всеми его подкаталогами командой rm -r, то на первом или втором запросе подтверждения я прерываю команду и запускаю ее снова уже как rm -rf.)
Хорошим способом для некоторых файлов может послужить создание ссылки (hard link) на них в скрытом каталоге. Я слышал однажды историю о системном администраторе, который имел привычку случайно затирать
/etc/passwd (что соответственно приводило систему в нерабочее состояние). Возможный способ исправить это - сделать (пользователем root) что-то типа:
# mkdir /.backup
# ln /etc/passwd /.backup |
Теперь, чтобы удалить полностью содержимое файла, требуются некоторые дополнительные усилия: если вы наберете
тогда
# ln /.backup/passwd /etc |
восстановит его. Конечно, это не спасет в случае перезаписи файла, так что все равно делайте копии.
На файловой системе ext2 можно для защиты использовать атрибуты ext2. Эти
атрибуты устанавливаются командой chattr.
Есть атрибут `append-only' (только добавление): в файл - с этим атрибутом
можно добавлять данные, но он не может быть удален, и его содержимое не
может быть перезаписано. Если этот атрибут установить на каталог, то файлы
можно изменять, как обычно, но они не могут быть удалены. Атрибут
`append-only' устанавливается командой
Есть также атрибут `immutable' - устанавливать или снимать его может только
root. Файл или каталог с этим атрибутом не может быть изменен, удален,
переименован, на него нельзя создать ссылку (hard link). Он устанавливается
следующим образом:
Кроме того, ext2fs поддерживает атрибут `undeletable' (неудаляемый)
(+u в chattr).
При удалении файла с этим атрибутом, он реально не удаляется, а перемещается
в "безопасное место", откуда его можно позже удалить. К сожалению, эта
возможность пока еще не реализована; хотя интерес к ее реализации
проявлялся, пока (насколько я знаю) она отсутствует во всех доступных
ядрах.
Есть сторонники того, чтобы сделать rm
псевдонимом (alias) или функцией для rm -i
(с этим ключом rm запрашивает подтверждение для
каждого удаляемого файла). В
дистрибутиве Red Hat это сделано для всех пользователей, включая
root. Лично я не делаю этого, так как не выношу программы, не работающие
без дополнительной поддержки. Кроме того, тут кроется еще одна проблема -
рано или поздно вам придется работать в однопользовательском режиме,
использовать другой shell или даже другой компьютер, где отсутствует ваша
функция rm -i. Если вы привыкли к
подтверждениям, то легко можете забыть, где вы находитесь, и указать слишком
много файлов для удаления. Таким образом, различные скрипты и программы,
заменяющие rm, по моему мнению, очень опасны.
Несколько лучшим решением может быть использование пакета, удаляющего файлы
с возможностью восстановления другой командой (не rm). Для более подробной информации смотрите Peek, et
al (1993) (см. раздел
Разд. Ссылки и благодарности). Минусом этого решения является то, что пользователи могут привыкнуть беззаботно удалять файлы, вместо внимательного подхода к удалению, часто требуемого на большинстве систем Unix.
Пред. | Начало | След. |
Мини-HOWTO: Восстановление удаленных файлов с файловой системы Ext2fs в Linux | | Сколько процентов данных я смогу восстановить? |