Як виконати повну перевірку структури файлової системи ext4?


25

У мене є розділ 2TB ext4 з півмільйона файлів на ньому.
Я хочу перевірити, чи містить цей розділ помилки чи ні.
Я не хочу шукати погані блоки, слід перевірити лише логічну структуру.

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

Боюся, що в моєму розділі можуть бути випадково перезаписані дані про сміття.
Мій жорсткий диск раніше був підключений до іншої ОС, і розділ ext4 може отримати шкоду від неправильної поведінки цієї ОС.
Ось чому я хочу бути впевненим, що вся структура дерева повністю правильна.

Іншими словами, я хочу здійснити перевірку, аналогічну тому, що chkdsk.exeробить утиліта в Windows.
Що я повинен використовувати на Debian, щоб повністю перевірити файлову систему ext4?


2
@SatoKatsura - Дякую! Мені просто цікаво, чому e2fsck -fперевірка настільки швидка - це займає всього кілька секунд? Це дивовижно порівняно з поведінкою Windows (це займає години).
Єгор Скриптунофф

Відповіді:


27

Як згадував Satō Katsura , запустіть e2fsckу режимі "сили":

e2fsck -f /dev/sda2

Це змусить перевірити, навіть якщо система вважає, що файлова система чиста. Також корисний варіант "багатослівний":

e2fsck -vf /dev/sda2

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


7

Також ви можете додати -yпрапор, щоб уникнути відповіді на запитання.

З посібника :

-y приймати відповідь yesна всі запитання; дозволяє e2fsckвикористовувати неінтерактивно.

Отже, продовжуючи відповідь (оскільки я поки не можу коментувати) від @Sato - ви можете запустити:

e2fsck -vfy /dev/sda2

6
Це може бути ризиковано, тому що ви не знаєте заздалегідь, про що вам можуть попросити, а примушення відповіді "так" на все може в гіршому випадку призвести до втрати даних, що підлягають відновленню.
Олексій

0

Ви також можете перевірити живі файлові системи в режимі лише для читання за допомогою цього:

e2fsck -vfn /dev/sda2

З довідки e2fsck: "Однак, навіть якщо це безпечно зробити, результати, надруковані e2fsck, недійсні, якщо встановлена ​​файлова система." Не впевнений, яка мета, наприклад, перевірка ...: /
joaerl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.