Как действительно работает сканирование файловой системы (например, CHKDSK или fsck)? Я знаю, что есть полные приложения с большим количеством опций, но как они сканируют "плохие" сектора? Что они делают при сканировании? Откуда они знают, что нашли "плохой" сектор?
2 ответа
Проверка файловой системы не имеет ничего общего со сканированием "плохих" секторов. "плохие" сектора в этом контексте обычно означают сектора, которые не могут быть надежно прочитаны или не могут быть записаны надежно. Хотя проверка файловой системы, безусловно, может наткнуться на поврежденный сектор, поскольку она пытается читать (и, возможно, записывать) блоки по всей файловой системе.
Что на самом деле выполняет проверка файловой системы, зависит от каждой отдельной файловой системы и до разработчика утилиты проверки файловой системы. Для некоторых типов файловых систем (например, NFS и tmpfs) концепция бессмысленна, для других она избыточна, поскольку файловая система постоянно проверяет себя в ходе нормальной работы, а для других жизненно важно, чтобы однажды была проверена файловая система. через некоторое время
В общем, утилиты проверки файловой системы предназначены для проверки на наличие повреждений, несоответствий и нарушенных инвариантов в структурах данных файловой системы. Если вам нужно больше подробностей, вам нужно будет спросить о конкретном типе файловой системы.
CHKDSK делает довольно много вещей за кулисами. Они представлены на разных этапах ЧКДСК.
NTFS имеет то, что называется MFT (или таблица основных файлов). Этот MFT представляет собой список всех файлов на жестком диске. Чтобы проверить согласованность файлов, CHKDSK читает запись MFT по записи, а затем идет вверх и ищет соответствующий файл на жестком диске.
Например, CHKDSK находит MyPhoto1.jpg в MFT. MFT говорит, что он расположен в секторе 230 и имеет длину 30 секторов. Затем CHKDSK идет и читает сектор 230-260 и видит, что он фактически заполнен данными и представляет собой один файл. Вот как CHKDSK проверяет целостность файловой системы. Несовместимость файлов не обязательно означает плохой сектор, это может означать, что компьютер был выключен во время записи на жесткий диск.
С помощью флага /r (восстановить) CHKDSK проверяет несоответствия файлов и пытается их исправить. Без этого флага chkdsk выполняет "пробный запуск"
С помощью флага /f (исправление) CHKDSK пытается восстановить поврежденный сектор. Другими словами, он пытается восстановить данные о поврежденном секторе и пытается перезаписать этот сектор. Если CHKDSK читает то, что написал соответствующий сектор, то он может пометить сектора как исправленные.