2013-05-05 2 views
2

Мне любопытно, что происходит на более глубоком уровне, когда вы загружаете файл в UNIX-подобную систему, особенно в отношении того, как можно восстановить удаленные файлы.Что происходит, когда вы используете файл?

Может ли кто-нибудь описать, как работает rm на достаточно гранулированном уровне?

ответ

3

rm вызывает системный вызов разблокировки. unlink() удаляет запись каталога, помещает inode для файла как бесплатную (resuable), и драйвер диска удаляет данные поддерживающей файловой системы (через некоторое время) на диске.

Для старых систем: Фактические физические данные на дисковых секторах все еще существуют, но вы не можете добраться до него. Ни одна из старых данных не будет сохранена.

Разработчики Windows придумали идею восстановления, я полагаю. Для этого требуется специальная обработка для удаленных файлов. Большинство старых UNIX/Linux-файловых систем и драйверов не поддерживают операцию восстановления. Файловые системы ext3 и ext4. Современный Linux поддерживает команду extundelete для ext3 и ext4. Эта команда восстанавливает все старые метаданные файла, которые были отправлены во временный хранилище метаданных. extundelete добавляет накладные расходы, которые старые системы UNIX не смогли легко поддерживать. Кроме того, есть дополнительные дисковые издержки.

Смежные вопросы