Що робить fsck -p (preen) на ext4?


16

Я читав публікацію в блозі про ремонт файлової системи, і автор розмістив гарне запитання ... fsck -pповинен автоматично виправляти незначні помилки без втручання людини. Але що саме воно буде виправлено, коли йому сказано попередньо передати файлову систему? Які помилки вони виправлять, і що змусить її зупинитись та повідомити користувачеві, що він / вона повинні працювати fsck інтерактивно? Чи є якийсь список?

Я гуляв навколо, і все, що я знаходжу, - це сторінка man, яка насправді не говорить про те, що -pбуде виправлено або що викликає прапорець. Мене спеціально цікавить файлова система ext4.

Відповіді:


18

Відповідь на ваше запитання полягає у e2fsck/problems.cфайлі вихідного коду e2fsprogs . Шукаючи PR_PREEN_OKпрапор, слід розпочати.

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

Наступні помилки / попередження в даний час обробляються автоматично, коли -pвказано прапор:

  • Перемістіть підказку
  • Журнал inode недійсний
  • Суперблок журналу пошкоджений
  • Прапор Superblock has_journal зрозумілий, але він має журнал
  • Установлено прапор суперблоку Need_recovery, але журнал не присутній
  • Ревізія файлової системи дорівнює 0, але встановлені прапори функцій
  • Підказка про суперблок для зовнішнього суперблока
  • дескриптор групи N позначений неініціалізованим без набору функцій.
  • растрова карта групи N неініціалізована, але використовується растрова inode.
  • Дескриптор групи N має недійсну кількість невикористаних вузлів.
  • Ранкова карта останнього блоку групи неініціалізована.
  • Встановлено прапор test_fs (доступний і ext4)
  • Час останнього монтування - це майбутнє (зіпсований)
  • Час останнього запису - у майбутньому
  • Контрольна сума блокової групи (запит засувки) недійсна.
  • У кореневій каталозі встановлено dtime
  • Зарезервований inode має поганий режим
  • Видалений inode має нульовий час
  • Використовується Inode, але встановлено dtime
  • Каталог нульової довжини
  • Inode має неправильний i_size
  • Inode має неправильні i_blocks
  • Поганий суперблок у групі
  • Неправильні дескриптори блокової групи в групі
  • Блок заявляв без причини
  • Помилка розподілу блоків для переміщення метаданих
  • Помилка виділення буфера блоку під час процесу переміщення
  • Перенесення інформації групи метаданих з X на Y
  • Перенесення інформації групи метаданих на X
  • Блокувати помилку читання під час процесу переміщення
  • Блокувати помилку в записі під час переміщення
  • Незмінний прапор встановлений на пристрої або розетці
  • Ненульовий розмір для пристрою, фіфо-пристрою або розетки
  • Ревізія файлової системи дорівнює 0, але встановлені прапори функцій
  • Журнал inode не використовується, але містить дані
  • Журнал має поганий режим
  • Прапор INDEX_FL встановлений у файловій системі, що не є HTREE
  • Прапор INDEX_FL встановлений у не-каталозі
  • Недійсний кореневий вузол у каталозі HTREE
  • Непідтримувана версія хешу в каталозі HTREE
  • Несумісний прапор у кореневому вузлі HTREE
  • HTREE занадто глибокий
  • недійсний inode-> i_extra_isize
  • недійсний запис ea-> e_name_len
  • недійсний запис ea-> e_value_offs
  • недійсний запис ea-> e_value_block
  • недійсний запис ea-> e_value_size
  • недійсний запис входу-> e_hash
  • inode відсутній EXTENTS_FL, але є величиною inode
  • Inode не повинен встановлювати EOFBLOCKS_FL
  • Запис у каталозі видалив або не використав inode
  • Файл каталогів не встановлено
  • Файл файлів, встановлений у файловій системі
  • Недійсний кореневий вузол HTREE
  • Недійсний ліміт HTREE
  • Недійсне число HTREE
  • Внутрішній вузол HTREE має нестандартні хеші в таблиці
  • Inode знайдений у групі, де встановлено _INODE_UNINIT
  • Inode знайдено в групі невикористаних областей inodes
  • i_blocks_hi має бути нульовим
  • / загублено + знайдено не знайдено
  • Неприєднаний нуль довжини
  • Inode ref вважає неправильним
  • Прокладка в кінці растрового малюнка inode не встановлена.
  • Прокладка в кінці растрового блоку блоку не встановлена.
  • Блокувати заголовок відмінностей растрових зображень
  • Блок не використовується, але позначений у растровій карті
  • Блок використовується, але не позначений як використовується в растровій карті
  • Блокування відмінностей растрових зображень закінчується
  • Введіть заголовок відмінностей растрових зображень
  • Inode не використовується, але позначений у растровій карті
  • Inode використовується, але не позначений як використовується в растровій карті
  • Укладені відмінності в растровій мапі закінчуються
  • Безкоштовні вставки зараховуються до групи неправильно
  • Довідники зараховуються до групи неправильно
  • Вільні введення рахуються неправильно
  • Безкоштовні блоки зараховуються до групи неправильно
  • Безкоштовні блоки неправильно рахуються
  • Діапазон блоків не використовується, але позначений у растровій карті
  • Блок діапазону використовується, але не позначений, що використовується в растровій карті
  • Діапазон Inode не використовується, але позначений у растровій карті
  • Діапазон Inode використовується, але не позначений як використовується в растровій карті
  • Використовувані блоки N групи, але група позначена BLOCK_UNINIT
  • Уводи (-и) групи N, які використовуються, але група позначена INODE_UNINIT
  • Відтворити журнал, якщо встановлено прапор E2F_FLAG_JOURNAL_INODE

Наступні умови помилки призводять до відміни неінтерактивного процесу fsck, навіть якщо встановлено -pпрапор:

  • Заблокувати растрові карти не в групі
  • Ввести растрову карту не в групі
  • Таблиця Inode не в групі
  • Розмір файлової системи неправильний
  • Кількість індексів у суперблоку неправильна
  • Hurd не підтримує функцію філейтипу
  • Журнал має невідомий тип суперблоку
  • Запитайте, чи слід очищати журнал
  • Журнал Superblock має невідомий прапор функції лише для читання
  • Суперблок журналу має набір невідомих прапорів, що несумісні
  • Журнал має непідтримуваний номер версії
  • Запитайте, чи варто нам все-таки вести журнал
  • Зарезервовані блоки без resize_inode
  • Resize_inode не увімкнено, але inode розміру не дорівнює нулю
  • Змінити розмір inode недійсним
  • Останній час монтажу - це майбутнє
  • Час останнього запису - це майбутнє
  • Дескриптор групи N контрольна сума недійсна.
  • Кореневий каталог не є inode
  • Блок растрових файлів конфліктує з деяким іншим блоком fs
  • Растровий файл Inode конфліктує з деяким іншим блоком fs
  • Таблиця Inode конфліктує з деяким іншим блоком fs
  • Растровий блок блоку не вдається
  • Растровий файл Inode знаходиться в поганому блоці
  • Незаконне блокове число в inode
  • Номер блоку перекриває метадані fs
  • Inode має незаконні блоки (запитання засувок)
  • Занадто багато поганих блоків в inode
  • Незаконне число блоку в неправильній блоці inode
  • Неправильний блок inode має незаконні блоки (питання засувки)
  • Неправильний блок використовується як непрямий блок непрямого блоку
  • Невідповідність не може бути виправлена
  • Неправильне підказка основного блоку
  • Придушити підказку повідомлень
  • Уявлений прапор, встановлений на inode, коли файлова система не підтримує його
  • Прапор стиснення встановлюється на inode, коли файлова система не підтримує його
  • Попрацюйте з уколами, що входили до списку осиротілих
  • Попрацюйте з уколами, які були частиною зіпсованого списку, пов’язаного з сиротами (запитання із засувкою)
  • Помилка читання розширеного блоку атрибутів
  • Недійсний розширений блок атрибутів
  • Неправильний посилання на розширений атрибут
  • Кілька блоків EA не підтримуються
  • Помилка зіткнення розподілу EA
  • Неправильне розширене ім’я атрибута
  • Неправильне розширене значення атрибута
  • Введення занадто велике (запитання засувок)
  • Каталог занадто великий
  • Звичайний файл занадто великий
  • Symlink занадто великий
  • Неправильний блок має непрямий блок, який конфліктує з блоком файлової системи
  • Не вдалося змінити розмір inode
  • inode, схоже, є каталогом
  • Помилка під час читання дерева масштабів
  • Не вдалося повторити ідентифікатори
  • Поганий стартовий блок за ступенем
  • Обсяг закінчується поза файловою системою
  • Прапор EXTENTS_FL встановлений у файловій системі, що не розширюється
  • inode має розширення, у суперблоку відсутня функція INCOMPAT_EXTENTS
  • Швидке символьне посилання має набір EXTENTS_FL
  • Екстенси вийшли з ладу
  • Inode має недійсний вузол міри
  • Клонувати дублікати / погані блоки?
  • Неправильне число inode для '.'
  • Запис у каталозі має неправильний номер inode
  • Запис у каталозі посилання на "."
  • Точки входу до каталогу inode тепер знаходяться в поганому блоці
  • Запис у каталозі містить посилання на каталог
  • Запис у каталозі містить посилання на кореневий каталог
  • Запис у каталозі має в своєму імені незаконні символи
  • Відсутнє "." в каталозі inode
  • У каталозі inode відсутнє ".."
  • Перший запис в inode каталогу не містить '.'
  • Другий запис у каталозі inode не містить ".."
  • i_faddr має бути нульовим
  • i_file_acl має бути нульовим
  • i_dir_acl має бути нульовим
  • i_frag повинен бути нульовим
  • i_fsize має бути нульовим
  • inode має поганий режим
  • каталог пошкоджено
  • ім'я файлу занадто довге
  • В inode каталога відсутній блок (отвір)
  • '.' не скасовується NULL
  • '..' не скасовується NULL
  • Незаконне введення пристрою символів
  • Незаконне блокування пристрою
  • Дублікат "." запис
  • Дублікат запису ".."
  • Остаточний rec_len неправильний
  • Помилка читання блоку каталогу
  • Помилка написання блоку каталогу
  • Запис у каталозі для '.' великий. Спліт?
  • Незаконна FIFO inode
  • Незаконна розетка
  • Файл файлів каталогів невірний
  • Ім'я файлу каталогів недійсне
  • Неправильне символьне посилання
  • i_file_acl (розширений блок атрибутів) поганий
  • Файлова система містить великі файли, але не має такого прапора в sb
  • Очистити недійсний каталог HTREE
  • Поганий блок у внутрішньому вузлі htree
  • Знайдено повторюваний запис каталогу
  • Знайдено не унікальне ім'я файлу
  • i_blocks_hi має бути нульовим
  • Несподіваний блок HTREE
  • Root inode не виділено
  • Нічого місця в програному + не знайдено
  • Нез'єднаний каталог
  • .. запис неправильний
  • Втрачено + знайдено не каталог
  • Неприєднаний вузол
  • Суперблок корумпований
  • Фрагменти не підтримуються
  • Помилка визначення фізичного розміру пристрою файлової системи
  • Зовнішній журнал має (непідтримується) кілька файлових систем
  • Неможливо знайти зовнішній журнал
  • Зовнішній журнал має поганий суперблок
  • У Superblock є поганий журнал UUID
  • Помилка при розподілі растрової карти inode
  • Помилка при розподілі растрової карти блоку
  • Помилка при розподілі інформації про посилання icount
  • Помилка при розподілі масиву блоків каталогів
  • Помилка під час сканування вузлів
  • Помилка під час ітерації над блоками
  • Помилка під час зберігання інформації про підрахунок inode
  • Помилка під час зберігання інформації про блок каталогів
  • Помилка під час читання inode (для очищення)
  • Помилка при розподілі структури знижок
  • Помилка читання блоку розширеного атрибута під час виправлення рахунку
  • Помилка написання блоку розширеного атрибуту під час виправлення рахунку
  • Помилка при розподілі структури розподілу регіону EA
  • Помилка під час сканування вузлів
  • Помилка при розподілі растрової карти inode
  • Внутрішня помилка: не вдалося знайти dir_info
  • Помилка при розподілі структури icount
  • Помилка ітерації над блоками каталогу
  • Помилка розміщення inode
  • Помилка коригування знижки EA
  • Помилка при розподілі растрової карти inode
  • Помилка створення кореневого каталогу
  • Root inode - це не каталог; аборт
  • Неможливо продовжити без кореневої inode.
  • Внутрішня помилка: не вдалося знайти dir_info
  • Помилка програмування: кінцеві точки растрових зображень не відповідають
  • Внутрішня помилка: роздуття кінця растрової карти
  • Помилка копіювання в растровій заміні inode
  • Помилка копіювання в растровому блоці заміни

Ной, якщо ви це знаєте, чи можливо створити / ввести всі ці помилки (або залежно від того, що можливо)? Я намагаюся дослідити причину цих помилок та можливе їх вирішення.
AnkurTank
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.