Как выполнить полную проверку структуры файловой системы ext4?

25

У меня 2TB ext4 раздел с полмиллиона файлов на нем.
Я хочу проверить, содержит ли этот раздел какие-либо ошибки или нет.
Я не хочу искать плохие блоки, нужно проверять только логическую структуру.

Я размонтировал раздел и запустил fsck /dev/sda2, но fsck немедленно возвращается с кодом завершения 0 без проверки всей файловой системы.
Я ожидаю, что полная проверка раздела займет несколько часов.
Я прочитал, man fsckно не нашел вариант «тщательного тестирования».

Боюсь, что в моем разделе могут быть некоторые сектора, случайно перезаписанные мусорными данными.
Мой жесткий диск ранее был подключен к другой ОС, и раздел ext4 может пострадать из-за неправильного поведения этой ОС.
Вот почему я хочу быть уверен, что вся древовидная структура полностью правильная.

Другими словами, я хочу выполнить проверку, аналогичную той, что chkdsk.exeделает утилита в Windows.
Что я должен использовать в Debian для полной проверки файловой системы ext4?

Егор Скриптунов
источник
2
@SatoKatsura - Спасибо! Мне просто интересно, почему e2fsck -fпроверка происходит так быстро - она ​​занимает всего несколько секунд? Это удивительно по сравнению с поведением Windows (это занимает часы).
Егор Скриптунов

Ответы:

27

Как упомянул Сато Кацура , бегите e2fsckв «силовом» режиме:

e2fsck -f /dev/sda2

Это приведет к проверке, даже если система считает, что файловая система чистая. Опция "verbose" также полезна:

e2fsck -vf /dev/sda2

Как примечание, и не применимо в вашем случае, но если вы используете LVM для своего хранилища, вы можете использовать небольшой lvcheckинструмент для запуска проверки автономной файловой системы в смонтированной файловой системе (она использует снимок LVM и обновления метаданные файловой системы, если проверка не находит ошибок).

Стивен Китт
источник
7

Кроме того, вы можете добавить -yфлаг, чтобы избежать ответов на вопросы.

Из руководства :

-y принять ответ yesна все вопросы; позволяет e2fsckиспользовать неинтерактивно.

Таким образом, расширив ответ (поскольку я пока не могу комментировать) из @Sato - вы можете запустить:

e2fsck -vfy /dev/sda2
impalle
источник
6
Это может быть рискованно, потому что вы не знаете заранее, о чем вас могут спросить, и принудительный ответ «да» на все может в худшем случае привести к потере восстанавливаемых данных.
Алекс
0

Вы также можете проверить работающие файловые системы в режиме только для чтения с помощью этого:

e2fsck -vfn /dev/sda2
Attila
источник
Из справки e2fsck: «Однако, даже если это безопасно, результаты, напечатанные e2fsck, недействительны, если файловая система смонтирована». Не уверен, что цель такого, как проверка ...: /
Joaerl