- How to Check/Repair Linux File System on Boot
- The FSCK Linux Command
- FSCK Command Usage
- Repairing A Corrupted Linux File System
- Repairing Linux File System on Boot-Time
- Linux File System Repair on Boot
- Live CD/USB File System Repair
- fsck (Русский)
- Проверка при загрузке
- Механизм
- Принудительная проверка
- Советы и рекомандации
- Восстановление повреждённых блоков
- Интерактивное восстановление повреждённых блоков
- Изменение частоты проверки
- Параметры fstab
- Решение проблем
- Не запускается fsck для отдельного раздела /usr
- ext2fs: no external journal
How to Check/Repair Linux File System on Boot
An operating system user that is still a learner in the OS world can never escape the challenges the current elite users have overcome. The user impact of such challenges depends on the operating system flavor or distribution you are under.
For Linux users, you might think you are facing an impossible challenge only to realize that there are multiple valid solutions for every single OS problem faced.
The Linux file system is a maze that most users hesitate to enter. It is because this file system is responsible for the performance consistency of your Linux operating system and any slight modification to its hierarchy or file system structure can be a nightmare for any user.
The FSCK Linux Command
The Linux operating system handles file system issues through the fsck command-line utility. It is a prepackaged file system check toolkit that interactively checks and repairs corrupted files that might affect the performance of your operating system.
Most of the time, it is these corrupt files that are responsible for failed system boots and partition mounts.
FSCK Command Usage
The standard syntax for fsck command-line utility is as follows:
You need to be a sudoer user or have sudo privileges to effectively use the FSCK tool.
FSCK adheres to some predefined rules.
- It references the /etc/fstab file when a user does not provide [FILESYSTEM] as a command argument.
The column for the (/) and (ext4) is set to 1 because its file system checks and repair are prioritized.
It is not recommended to use the fsck command with mounted partitions as there is a high likelihood of permanent file system damage.
Repairing A Corrupted Linux File System
The first step is to identify the device partition that holds the Linux file system you would like to check and repair.
The second step is to unmount the device whose file system you want to check and repair. e.g.
The third step is to check and possibly repair the device’s file system using FSCK.
The -p command option is for automatic repair without any user intervention.
The final step is to re-mount your device once the fsck file system check and repair is complete.
Repairing Linux File System on Boot-Time
On a running machine, it is not possible to simultaneously check and repair your Linux file system while using the OS. In this case, we have the options of using a live CD/bootable usb drive or checking and repairing the Linux file system on boot (For installed Linux systems).
Linux File System Repair on Boot
1. Restart your machine, press [Esc] or [Shift] and select Advanced Options on the resulting boot menu.
2. Select Recovery Mode and choose the fsck option from the resulting list of menu options.
3. Hit [Enter] and choose the fsck menu option.
4. Choose Yes when asked whether to remount your OS root file system.
5. Once the file system check and repair is complete, direct your system to resume normal boot.
Live CD/USB File System Repair
- Boot into your machine from the live distribution (CD or USB).
- Open the Linux terminal and use sudo fdisk -l command to find the targeted Linux root partition name.
- If the root partition is identified by a name like /dev/sda1, running the following command will check and possibly repair its associated file system.
FSCK is a very effective tool to get you started on understanding the nature and performance of your Linux system. The man fsck command has more options on using the FSCK utility to check and optionally repair broken or corrupt Linux file systems.
fsck (Русский)
Состояние перевода: На этой странице представлен перевод статьи fsck. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
fsck (file system check) — утилита для проверки и восстановления файловых систем Linux. Проверка файловых систем разных физических дисков выполняется параллельно, что позволяет значительно её ускорить (см. fsck(8) ).
Процесс загрузки Arch включает в себя процедуру fsck, поэтому проверка файловых систем на всех носителях выполняется автоматически при каждой загрузке. По этой причине обычно нет необходимости выполнять её через командную строку.
Проверка при загрузке
Механизм
Существует два возможных варианта:
- mkinitcpio предоставляет хук fsck для проверки корневой файловой системы перед монтированием. Корневой раздел должен быть смонтирован на запись и чтение (параметр ядра rw ) [1].
- systemd проверяет все файловые системы, которым задано значение fsck больше 0 (либо параметром fstab, либо в пользовательском файле юнита). Корневая файловая система изначально должна быть смонтирована только на чтение (параметр ядра ro ), и лишь позже перемонтирована на чтение-запись в fstab. Имейте в виду, что опция монтирования defaults подразумевает rw .
Рекомендуется по умолчанию использовать первый вариант. Если вы устанавливали систему в соответствии с руководством, то использоваться будет именно он. Если вы хотите вместо этого использовать вариант 2, то удалите хук fsck из mkinitcpio.conf и задайте параметр ядра ro . Кроме того, параметром ядра fsck.mode=skip можно полностью отключить fsck для обоих вариантов.
Принудительная проверка
Если вы используете base -хук mkinitcpio, то можно принудительно выполнять fsck во время загрузки, задав параметр ядра fsck.mode=force . Проверена будет каждая файловая система на машине.
В качестве альтернативы можно воспользоваться службой systemd systemd-fsck@.service(8) , которая проверит все настроенные файловые системы, которые не были проверены в initramfs. Тем не менее, проверка корневой файловой системы этим способом может стать причиной задержки в время загрузки, поскольку файловая система будет перемонтироваться.
Примечание: Если вы используете другие дистрибутивы GNU/Linux, то учтите, что старые методы проверки вроде файлов forcefsck для каждой файловой системы или команды shutdown с флагом -F будут работать только с SysVinit и ранними версиями Upstart; работать с systemd они не будут. Решение, предложенное выше, является единственным рабочим для Arch Linux.
Советы и рекомандации
Восстановление повреждённых блоков
Следующая команда позволяет восстановить повреждённые участки файловых систем ext2/ext3/ext4 и FAT:
Важно: Разрешение на восстановление запрошено не будет. Подразумевается, что вы уже ответили «Да», запустив команду на выполнение.
Интерактивное восстановление повреждённых блоков
Полезно в том случае, если файлы на загрузочном разделе были изменены, а журнал не обновился соответствующим образом. В этом случае размонтируйте загрузочный раздел и выполните:
Изменение частоты проверки
Примечание: Команды tune2fs и dumpe2fs работают только с файловыми системами ext2/ext3/ext4.
По умолчанию fsck проверяет файловую систему каждые 30 загрузок (вычисляется отдельно для каждого раздела). Чтобы изменить частотку проверок, выполните:
Здесь 20 — число загрузок между проверками. Если задать значение 1 , то проверка будет выполняться при каждой загрузке, а значение 0 отключит сканирование.
Текущую частоту проверок и опции монтирования конкретного раздела можно узнать командой:
# dumpe2fs -h /dev/sda1 | grep -i 'mount count'
Параметры fstab
fstab — файл системных настроек, который используется для передачи ядру Linux информации о том, какие разделы (файловые системы) монтировать и в какие точки дерева файловой системы.
Записи в /etc/fstab выглядят примерно следующим образом.
/dev/sda1 / ext4 defaults 0 1 /dev/sda2 /other ext4 defaults 0 2 /dev/sda3 /win ntfs-3g defaults 0 0
Шестое поле каждой строки (выделено) — опция fsck:
- 0 — не проверять.
- 1 — файловая система (раздел), которая должна быть проверена первой; для корневого раздела ( / ) должно использоваться именно это значение.
- 2 — прочие файловые системы, которые должны быть проверены.
Решение проблем
Не запускается fsck для отдельного раздела /usr
- Убедитесь, что используются соответствующие хуки в /etc/mkinitcpio.conf , а также что вы не забыли пересоздать initramfs после последнего редактирования этого файла.
- Проверьте fstab! Только корневому разделу должен быть задан параметр 1 в последнем поле, все остальные разделы должны иметь либо 2 , либо 0 . Также проверьте файл на наличие иных опечаток.
ext2fs: no external journal
Иногда (например, из-за внезапного отключения питания) файловые системы ext(3/4) могут повредиться так сильно, что восстановить их обычным способом не удастся. Как правило, при этом fsck выводит сообщение о том, что не удалось найти журнал (no external journal). В этом случае выполните команды ниже.
Отмонтируйте раздел от соответствующего каталога:
Запишите на раздел новый журнал:
Запустите fsck, чтобы восстановить раздел: