НАЗВА

fsck — перевірка і виправлення файлової системи Linux

КОРОТКИЙ ОПИС

fsck [-lsAVRTMNP] [-r [дескриптор-файла]] [ -C [ дескриптор-файла]] [ -t тип-файлової-системи] [ файлова-система...] [ --] [ специфічні-для-файлової-системи-параметри]

ОПИС

fsck використовують для перевірки і, якщо потрібно, виправлення однієї або декількох файлових систем Linux. Параметром файлова-система може бути назва пристрою (наприклад /dev/hdc1, /dev/sdb2), точка монтування (наприклад /, /usr, /home) або мітка файлової системи або специфікатор UUID (наприклад UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd або LABEL=root). Зазвичай, програма fsck намагатиметься обробляти файлові системи на різних фізичних дисках паралельно, щоб зменшити загальну тривалість перевірки усіх цих систем.
 
Якщо у рядку команди не вказано файлової системи і не вказано параметр -A, fsck, типово, перевіряє файлові системи у /etc/fstab послідовно. Це еквівалент параметрів -As.
 
Стан виходу, який буде повернуто fsck, є сумою таких умов:
 
0
Немає помилок
 
1
Виправлено помилки файлової системи
 
2
Систему має бути перезавантажено
 
4
Помилки файлової системи, які лишилися невиправленими
 
8
Помилка обробки
 
16
Помилка використання або синтаксична помилка
 
32
Перевірку скасовано на запит користувача
 
128
Помилка у бібліотеці спільного використання
 
Стан виходу, який буде повернуто при перевірці декількох файлових систем, є побітовим АБО станів виходу для кожної перевіреної файлової системи.
 
Насправді, fsck є простою оболонкою для різноманітних засобів перевірки файлових систем ( fsck.тип-файлової-системи), які доступні у Linux. Пошук засобів перевірки специфічних файлових систем відбуватиметься у каталогах змінної середовища PATH. Якщо значення PATH не визначено, резервним варіантом буде /sbin.
 
Докладніший опис можна знайти на сторінках підручника для специфічних для файлових систем засобів перевірки.

ПАРАМЕТРИ

-l
Створити виключний файл блокування flock(2) ( /run/fsck/<назва-диска>.lock) для пристрою, який є цілими диском. Цей параметр можна використовувати лише з одним пристроєм (це означає, що -A і -l не можна використовувати одночасно). Цей параметр є рекомендованим, якщо одночасно виконується декілька екземплярів fsck. Цей параметр буде проігноровано, якщо перевірка виконується для декількох пристроїв або для не обертових дисків. fsck не блокує базові пристрої при виконанні перевірки стосових пристроїв (наприклад MD або DM) — цю можливість ще не реалізовано.
 
-r [дескриптор-файла]
Виводити певні статистичні дані щодо кожної перевірки fsck, коли її завершено. До цих статистичних даних буде включено стан виходу, максимальний розмір набору виконання (у кілобайтах), дані щодо усього витраченого часу, а також часу користувача і процесора, який було використано fsck під час роботи. Приклад:
 
/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186
 
Графічні оболонки можуть встановлювати дескриптор-файла. Якщо такий дескриптор встановлено, дані смужки поступу буде надіслано до файла із вказаним дескриптором у форматі, який є придатним для обробки комп'ютером. Приклад:
 
/dev/sda1 0 92828 4.002804 2.677592 0.86186
 
-s
Створити послідовність дій fsck. Це непоганий варіант, якщо ви перевіряєте декілька файлових систем, а засоби перевірки працюють у інтерактивному режимі. (Зауваження: e2fsck(8) типово працює в інтерактивному режимі. Щоб наказати e2fsck(8) працювати у неінтерактивному режимі, вам слід або вказати параметр -p чи -a, якщо ви хочете, щоб помилки було виправлено автоматично, або скористатися параметром -n, якщо не хочете цього.)
 
-t список-файлових-систем
Вказати типи файлових системи, які слід перевірити. Якщо вказано параметр -A, буде перевірено лише файлові системи зі списку список-файлових-систем. Аргумент список-файлових-систем є списком відокремлених комами файлових системи та специфікаторів параметрів. До усіх записів файлових систем у цьому списку може бути додано префікс — оператор заперечення ' no' або '!', який наказує програмі перевірити лише файлові системи, яких немає у списку список-файлових-систем. Якщо у жодному із записів файлових систем в аргументі список-файлових-систем немає префікса заперечення, буде перевірено лише файлові системи зі списку.
 
До списку відокремлених комами значень список-файлових-систем може бути включено специфікатори параметрів. Їх слід вказувати у форматі opts=параметри-файлової-системи. Якщо вказано специфікатор параметрів, буде виконано перевірку лише файлових систем, які містять запис параметр-файлової-системи у полі параметрів /etc/fstab. Якщо до специфікатора параметрів додано префікс — оператор заперечення, — буде виконано перевірку лише тих файлових систем, які не місять запису параметр-файлової-системи у полі параметрів монтування /etc/fstab.
 
Наприклад, якщо буде виявлено opts=ro в аргументі список-файлових-систем, буде перевірено лише ті файлові системи зі списку /etc/fstab, для яких використано параметр ro.
 
Для забезпечення сумісності із дистрибутивами Mandrake, де скрипти завантаження залежать від неуповноваженої зміни інтерфейсу програми fsck, якщо буде знайдено тип файлової системи loop у аргументі список-файлових-систем, обробка відбуватиметься так, наче було вказано opts=loop, як аргумент параметра -t.
 
Зазвичай, тип файлової системи визначається шляхом пошуку аргументу файлова-система у файлі /etc/fstab із наступним використанням відповідного запису. Якщо тип не вдалося визначити, і вказано лише один аргумент файлової системи у параметрі -t, fsck використовуватиме вказаний тип файлової системи. Якщо засобів для цього типу не буде знайдено, буде використано стандартний тип файлової системи (у поточній версії ext2).
 
-A
Обробити файл /etc/fstab і спробувати виконати перевірку усіх файлових систем в один прохід. Цей параметр типово використовується з файла ініціалізації системи /etc/rc, замість декількох команд для перевірки окремих файлових систем.
 
Першою буде перевірено кореневу файлову систему, якщо не вказано -P (див. нижче). Потім буде перевірено файлові системи у порядку, вказаному у полі fs_passno (шостому полі) у файлі /etc/fstab. Файлові системи зі значенням fs_passno 0 буде пропущено, програма їх взагалі не перевірятиме. Файлові системи із значенням fs_passno, яке є більшим за нуль, буде перевірено за вказаним порядком, першими буде перевірено файлові системи із найменшими значеннями fs_passno. Якщо однакове число буде використано для декількох файлових систем, fsck спробує перевірити їх паралельно, хоча програма уникатиме паралельної обробки декількох файлових систем на одному фізичному диску.
 
fsck не перевірятиме паралельно стосові пристрої (RAID, dm-crypt...) на будь-якому іншому пристрої. Див. параметр FSCK_FORCE_ALL_PARALLEL нижче. Для визначення залежностей між пристроями буде використано файлову систему /sys.
 
Отже, дуже поширеною є конфігурацію у файлах /etc/fstab є встановлення для кореневої файлової системи значення fs_passno 1 і встановлення для усіх інших файлових систем значення fs_passno 2. Це уможливлює для fsck автоматичний паралельний запуск засобів перевірки файлових систем, якщо у цьому є переваги. Адміністратори системи можуть наказати програмі не використовувати цю конфігурацію, якщо потрібно з певних причин уникати паралельного запуску декількох перевірок файлових систем, — наприклад, якщо на комп'ютері встановлено замало пам'яті, і проблемою є зайвий поділ пам'яті на сторінки.
 
Зазвичай, fsck не виконує перевірки того, чи насправді існує пристрій, перед викликом спеціалізованого засобу перевірки файлової системи. Тому файлові системи, яких не існує, можуть спричинити вхід системи у режимі виправлення файлових систем під час завантаження, якщо спеціалізований засіб перевірки файлової системи поверне критичну помилку. Параметром монтування у /etc/fstab nofail можна скористатися для виключення у fsck пристроїв, яких не існує. fsck також пропустить пристрої, яких не існує, які належать до особливого типу файлової системи auto.
 
-C [дескриптор-файлів]
Показувати смужки завершеності або поступу для тих засобів перевірки файлових систем (у поточній версії для ext[234]), де передбачено підтримку таких смужок. fsck керуватиме засобами перевірки файлових систем так, щоб смужку поступу одночасно було показано лише для одного засобу. Графічні оболонки можуть встановлювати дескриптор-файла. Якщо такий дескриптор встановлено, дані смужки поступу буде надіслано до файла із вказаним дескриптором.
 
-M
Не перевіряти змонтовані файлові системи і повернути стан виходу 0 для змонтованих файлових систем.
 
-N
Не виконувати, лише показати, які дії буде виконано.
 
-P
Якщо встановлено параметр -A, перевіряти кореневу файлову систему паралельно із іншими файловими системами. Це не надто мудре рішення, оскільки якщо коренева файлова система виявиться проблемною, програми, подібні до e2fsck(8), може бути пошкоджено! Цей параметр призначено, в основному, для адміністраторів, які не бажають змінювати невеличку і компактну кореневу файлову систему (що, насправді, є правильним рішенням).
 
-R
При перевірці усіх файлових систем із параметром -A пропустити кореневу файлову систему. (Корисно, якщо кореневу файлову систему вже було змонтовано для читання-запису.)
 
-T
Не показувати заголовок при запуску.
 
-V
Вивести докладні дані, включно з усіма специфічними для файлових систем командами, які було виконано.
 
-?, --help
Вивести текст довідки і завершити роботу.
 
--version
Вивести дані щодо версії і завершити роботу.

ПАРАМЕТРИ, ЯКІ Є СПЕЦИФІЧНИМИ ДЛЯ ФАЙЛОВИХ СИСТЕМ

Параметри, які не буде розпізнано fsck, буде передано до спеціалізованого засобу перевірки файлової системи!
 
Цим параметрам не можна передавати аргументи, оскільки у fsck не зможе належним чином визначити, які параметри приймають аргументи, а які — ні.
 
Параметри і аргументи, які буде вказано після --, вважатимуться специфічними для файлової системи параметрами, які слід передати спеціалізованому засобу перевірки файлової системи.
 
Будь ласка, зауважте, що fsck не було розроблено для передавання параметрів довільної складності до спеціалізованих засобів перевірки файлових систем. Якщо вам потрібно щось складне, будь ласка, віддайте безпосередню команду спеціалізованому засобу перевірки файлової системи. Якщо ви передали fsck якісь дуже складні параметри і аргументи, і програма не виконує бажаних дій, не варто повідомляти про це, як про ваду. Найпевніше, ви робите щось таке, що не слід робити з fsck. Параметри різних спеціалізованих fsck для окремих файлових систем не стандартизовано.

СЕРЕДОВИЩЕ

На поведінку програми fsck впливають такі змінні середовища:
 
FSCK_FORCE_ALL_PARALLEL
Якщо встановлено значення цієї змінної середовища, fsck спробує виконати перевірку усіх вказаних файлових систем паралельно, незалежно від того, чи розташовано файлові системи на тому самому пристрої. (Це корисно для систем RAID або високорівневих систем зберігання даних, зокрема систем, якими торгують компанії, подібні до IBM або EMC.) Зауважте, що значення fs_passno все одно буде використано.
 
FSCK_MAX_INST
Ця змінна середовища обмежить максимальну кількість одночасно запущених засобів перевірки файлових систем. Це надасть змогу уникнути одночасного запуску надмірної кількості засобів перевірки fsck у системах із великою кількістю дисків. Одночасний запуск може призвести до перевантаження процесора і ресурсів пам'яті у системі. Якщо значенням змінної є нуль, програма зможе породжувати необмежену кількість процесів. У поточній версії це значення є типовим, але у майбутніх версіях fsck може спробувати автоматично визначити, скільки засобів перевірки може бути запущено, на основі зібраних облікових даних операційної системи.
 
PATH
Для пошуку засобів перевірки файлової системи буде використано змінну середовища PATH.
 
FSTAB_FILE
За допомогою цієї змінної середовища адміністратор системи може перевизначити стандартне місце зберігання файла /etc/fstab. Також ця змінна корисна для розробників, які тестують fsck.
 
LIBBLKID_DEBUG=all
вмикає показ діагностичних повідомлень libblkid.
 
LIBMOUNT_DEBUG=all
вмикає показ діагностичних повідомлень libmount.

ФАЙЛИ

/etc/fstab

АВТОРИ

Theodore <[email protected]>>Ts’o Karel <[email protected]>Zak

ДИВ. ТАКОЖ

fstab(5), mkfs(8), fsck.ext2(8) or fsck.ext3(8) or e2fsck(8), fsck.cramfs(8), fsck.jfs(8), fsck.nfs(8), fsck.minix(8), fsck.msdos(8), fsck.vfat(8), fsck.xfs(8), reiserfsck(8)

ЗВІТИ ПРО ВАДИ

Для звітування про вади використовуйте систему стеження помилками на <https://github.com/util-linux/util-linux/issues>.

ДОСТУПНІСТЬ

fsck є частиною пакунка util-linux, який можна отримати з Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

ПЕРЕКЛАД

Український переклад цієї сторінки посібника виконано Yuri Chornoivan <[email protected]>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: [email protected]