Thank you for reading this post, don't forget to subscribe!
fsck (проверка файловой системы) – это утилита командной строки, которая позволяет выполнять проверки согласованности и интерактивное исправление в одной или нескольких файловых системах Linux. Он использует программы, специфичные для типа файловой системы, которую он проверяет.
Вы можете использовать команду fsck для восстановления поврежденных файловых систем в ситуациях, когда система не загружается или раздел не может быть смонтирован.
В этой статье мы поговорим о команде fsck.
Как пользоваться fsck
Команда fsck принимает следующую общую форму:
1 |
fsck [OPTIONS] [FILESYSTEM] |
Только root или пользователи с привилегиями sudo могут очистить буфер.
Если FILESYSTEM в качестве аргумента указано no, fsck проверяются устройства, указанные в файле fstab.
Никогда не запускайте fsckна смонтированных разделах, так как это может повредить файловую систему. Прежде чем пытаться проверить или восстановить файловые системы, всегда делайте unmountэто сначала.
Команда fsck является оболочкой для различных контроллеров файловой системы Linux ( fsck.*) и принимает различные параметры в зависимости от типа файловой системы.
Проверьте справочные страницы для получения дополнительной информации о конкретном контролере. Например, чтобы просмотреть доступные параметры fsck.ext4, введите:
1 2 |
man fsck.ext4 |
Восстановление поврежденной файловой системы
Простейший вариант использования команды fsck – восстановить поврежденную файловую систему ext3 или ext4 без полномочий root.
- Если вы не знаете имя устройства, использовать fdisk, df или любой другой инструмент, чтобы найти его.
- Размонтировать устройство:
12sudo umount /dev/sdc1 - Запустите fsck для восстановления файловой системы:
12sudo fsck -p /dev/sdc1
Опция -p указывает fsck автоматически исправить все проблемы, которые могут быть надежно закреплены без вмешательства пользователя. - После восстановления файловой системы смонтируйте раздел:
12sudo mount /dev/sdc1
Восстановление корневой файловой системы
fsck не может проверить корневую файловую систему на работающей машине, потому что она не может быть размонтирована.
Если вы хотите проверить или восстановить корневую файловую систему, у вас есть несколько вариантов в вашем распоряжении. Вы можете настроить запуск fsck при загрузке, загрузить систему в режиме восстановления или использовать live CD.
Для запуска fsck в режиме восстановления:
- Войдите в меню загрузки и выберите «Дополнительные параметры»
- Выберите режим восстановления и затем «fsck».
- Когда будет предложено перемонтировать корневую файловую систему, выберите «Да».
- После этого возобновите нормальную загрузку.
Чтобы запустить fsck из живого дистрибутива:
- Загрузите живую раздачу.
- Используйте fdisk или, parted чтобы найти имя корневого раздела.
- Откройте терминал и запустите:
1sudo fsck -p /dev/sda1 - После этого перезагрузите дистрибутив и загрузите вашу систему.
Проверьте файловые системы при загрузке
В большинстве дистрибутивов Linux fsck запускается во время загрузки, если файловая система помечена как грязная или после определенного количества загрузок или времени.
Чтобы увидеть текущий счетчик монтирования, проверить номер частоты, интервал проверки и время последней проверки для определенного раздела, используйте инструмент tune2fs:
1 2 |
sudo tune2fs -l /dev/sdc1 | grep -i 'last checked\|mount count' |
1 2 3 4 |
Mount count: 292 Maximum mount count: -1 Last checked: Tue Jul 12 14:23:33 2018 Check interval: 0 (<none>) |
- «Maximum mount count» – это количество монтирований, после которых будет проверяться файловая система. Значение 0 или -1 означает, что fsck никогда не будет работать.
- «Check interval» – это максимальное время между двумя проверками файловой системы.
Если, например, вы хотите запускать fsck после каждых 25 загрузок (монтирования), введите:
1 2 |
sudo tune2fs -c 25 /dev/sdc1 |
Вы также можете установить максимальное время между двумя проверками. Например, чтобы установить один месяц, вы должны выполнить:
1 2 |
sudo tune2fs -i 1m /dev/sdc1 |
Чтобы заставить fsck работать во время загрузки на дистрибутивах SystemD, передайте следующие параметры загрузки ядра:
1 2 |
fsck.mode=force fsck.repair=yes |
В старых дистрибутивах fsck будет работать при загрузке, если файл /forcefsck присутствует:
1 2 |
sudo touch /forcefsck |
Параметры fstab
fstab это файл конфигурации, который сообщает системе, как и где монтировать разделы.
Файл /etc/fstab содержит список записей в следующем виде:
1 2 3 4 |
# [File System] [Mount Point] [File System Type] [Options] [Dump] [PASS] /dev/sda1 / ext4 defaults 0 1 /dev/sda2 /home ext4 defaults 0 2 server:/dir /media/nfs nfs defaults 0 0 |
Последний, шестой столбец ( [PASS]) – это параметр, который контролирует порядок, в котором проверки файловой системы выполняются во время перезагрузки.
- 0 – Не проверяй.
- 1 – Файловые системы должны проверяться первыми и по одному за раз.
- 2 – Все остальные файловые системы, которые проверяются позже и, возможно, параллельно.
Корневая файловая система должна иметь значение 1, а все остальные файловые системы, которые вы хотите проверить, должны иметь значение 2.