- Команда Fsck в Linux (восстановление файловой системы)
- Как использовать fsck
- Восстановить поврежденную файловую систему
- Восстановить корневую файловую систему
- Проверить файловые системы при загрузке
- Параметры fstab
- Выводы
- fsck (Русский)
- Проверка при загрузке
- Механизм
- Принудительная проверка
- Советы и рекомандации
- Восстановление повреждённых блоков
- Интерактивное восстановление повреждённых блоков
- Изменение частоты проверки
- Параметры fstab
- Решение проблем
- Не запускается fsck для отдельного раздела /usr
- ext2fs: no external journal
Команда Fsck в Linux (восстановление файловой системы)
fsck (проверка файловой системы) — это служебная программа командной строки, которая позволяет выполнять проверки согласованности и интерактивное восстановление в одной или нескольких файловых системах Linux. Он использует программы, зависящие от типа проверяемой файловой системы.
Вы можете использовать команду fsck для восстановления поврежденных файловых систем в ситуациях, когда система не загружается или раздел не может быть смонтирован.
В этой статье мы поговорим о команде fsck .
Как использовать fsck
Команда fsck имеет следующий общий вид:
Только root или пользователи с привилегиями sudo могут очистить буфер.
Если FILESYSTEM не указан в качестве аргумента, fsck проверяет устройства, перечисленные в fstab .
Никогда не запускайте fsck на смонтированных разделах, так как это может повредить файловую систему. Прежде чем пытаться проверить или восстановить файловую систему, всегда сначала unmount ее.
Команда fsck является оболочкой для различных средств проверки файловой системы Linux ( fsck.* ) И принимает разные параметры в зависимости от типа файловой системы.
Просмотрите страницы руководства для получения дополнительной информации о конкретной программе проверки. Например, чтобы просмотреть параметры, доступные для fsck.ext4 , введите:
Восстановить поврежденную файловую систему
Самый простой вариант использования команды fsck — восстановить поврежденную файловую систему ext3 или ext4 без полномочий root.
- Если вы не знаете имя устройства, используйте fdisk , df или любой другой инструмент, чтобы найти его.
- Размонтируйте устройство:
Восстановить корневую файловую систему
fsck не может проверить корневую файловую систему на работающем компьютере, потому что ее нельзя размонтировать.
Если вы хотите проверить или восстановить корневую файловую систему, в вашем распоряжении есть несколько вариантов. Вы можете настроить запуск программы fsck при загрузке, загрузку системы в режиме восстановления или использование Live CD.
Чтобы запустить fsck в режиме восстановления:
- Войдите в меню загрузки и выберите Дополнительные параметры.
- Выберите режим восстановления и затем «fsck».
- Когда будет предложено перемонтировать корневую файловую систему, выберите «Да».
- После этого возобновите обычную загрузку.
Чтобы запустить fsck из живого дистрибутива:
- Загрузите live-дистрибутив.
- Используйте fdisk или parted чтобы найти имя корневого раздела.
- Откройте терминал и запустите:
Проверить файловые системы при загрузке
В большинстве дистрибутивов Linux fsck запускается во время загрузки, если файловая система помечена как грязная или после определенного количества загрузок или времени.
Чтобы увидеть текущее количество подключений, частоту проверки, интервал проверки и время последней проверки для определенного раздела, используйте инструмент tune2fs :
sudo tune2fs -l /dev/sdc1 | grep -i 'last checked|mount count'
Mount count: 292 Maximum mount count: -1 Last checked: Tue Jul 24 11:10:07 2018 Check interval: 0 ()
- «Максимальное количество подключений» — это количество подключений, после которых файловая система будет проверена. Значение 0 или -1 означает, что fsck никогда не запустится.
- «Интервал проверки» — это максимальное время между двумя проверками файловой системы.
Если, например, вы хотите запускать fsck после каждых 25 загрузок (монтирований), введите:
sudo tune2fs -c 25 /dev/sdc1
Вы также можете установить максимальное время между двумя проверками. Например, чтобы установить его на один месяц, вы должны выполнить:
sudo tune2fs -i 1m /dev/sdc1
Чтобы заставить fsck запускаться во время загрузки в дистрибутивах SystemD, передайте следующие параметры загрузки ядра:
fsck.mode=force fsck.repair=yes
В более старых дистрибутивах fsck будет запускаться при загрузке, если /forcefsck файл /forcefsck :
Параметры fstab
fstab — это файл конфигурации, который сообщает системе, как и где монтировать разделы.
Файл /etc/fstab содержит список записей в следующем виде:
# [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 .
Выводы
fsck — это инструмент командной строки для проверки и, при необходимости, восстановления файловых систем Linux.
Чтобы узнать больше о команде fsck , посетите страницу руководства fsck или введите man fsck в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
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, чтобы восстановить раздел: