Линукс восстановить файловую систему

Команда Fsck в Linux (восстановление файловой системы)

fsck (проверка файловой системы) — это служебная программа командной строки, которая позволяет выполнять проверки согласованности и интерактивное восстановление в одной или нескольких файловых системах Linux. Он использует программы, зависящие от типа проверяемой файловой системы.

Вы можете использовать команду fsck для восстановления поврежденных файловых систем в ситуациях, когда система не загружается или раздел не может быть смонтирован.

В этой статье мы поговорим о команде fsck .

Как использовать fsck

Команда fsck имеет следующий общий вид:

Только root или пользователи с привилегиями sudo могут очистить буфер.

Если FILESYSTEM не указан в качестве аргумента, fsck проверяет устройства, перечисленные в fstab .

Никогда не запускайте fsck на смонтированных разделах, так как это может повредить файловую систему. Прежде чем пытаться проверить или восстановить файловую систему, всегда сначала unmount ее.

Команда fsck является оболочкой для различных средств проверки файловой системы Linux ( fsck.* ) И принимает разные параметры в зависимости от типа файловой системы.

Просмотрите страницы руководства для получения дополнительной информации о конкретной программе проверки. Например, чтобы просмотреть параметры, доступные для fsck.ext4 , введите:

Восстановить поврежденную файловую систему

Самый простой вариант использования команды fsck — восстановить поврежденную файловую систему ext3 или ext4 без полномочий root.

  1. Если вы не знаете имя устройства, используйте fdisk , df или любой другой инструмент, чтобы найти его.
  2. Размонтируйте устройство:

Восстановить корневую файловую систему

fsck не может проверить корневую файловую систему на работающем компьютере, потому что ее нельзя размонтировать.

Если вы хотите проверить или восстановить корневую файловую систему, в вашем распоряжении есть несколько вариантов. Вы можете настроить запуск программы fsck при загрузке, загрузку системы в режиме восстановления или использование Live CD.

Чтобы запустить fsck в режиме восстановления:

  1. Войдите в меню загрузки и выберите Дополнительные параметры.
  2. Выберите режим восстановления и затем «fsck».
  3. Когда будет предложено перемонтировать корневую файловую систему, выберите «Да».
  4. После этого возобновите обычную загрузку.

Чтобы запустить fsck из живого дистрибутива:

  1. Загрузите live-дистрибутив.
  2. Используйте fdisk или parted чтобы найти имя корневого раздела.
  3. Откройте терминал и запустите:

Проверить файловые системы при загрузке

В большинстве дистрибутивов 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 в своем терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Проверка и восстановление файловых систем в Linux- команда fsck

Иногда по разным причинам (в результате сбоя, некорректного завершения работы) файловые системы накапливают ошибки. Сами ошибки представляют собой «рассогласованные» структуры данных. Естественно, при возникновении такой ситуации необходимо как можно скорее привести повреждённую файловую систему в порядок. С этой задачей отлично справляется утилита fsck. Она действительно очень эффективна и системные администраторы очень часто в первую очередь используют именно ее для восстановления или починки файловых систем.

Как работает fsck?

Утилита fsck (File System Consistency Check) изначально глубоко проверяла все структуры данных подряд, т. е. целиком всю файловую систему. Для поиска ошибок она задействовала методы эвристического анализа для ускорения и оптимизации процесса поиска ошибок. Однако, даже в этом случае для больших по объёму файловых систем эта процедура могла занимать много часов.

Позднее была реализована схема оценки состояния файловой системы, в основе которой лежит признак «чистого бита файловой системы». Если происходил сбой и файловая система (ФС) некорректно демонтировалась, то в суперблоке ФС устанавливался этот бит. По-умолчанию в Linux-системах на одном из этапов загрузки системы происходит проверка файловых систем, которые зарегистрированы в файлах /etc/fstab, /etc/vfstab, а также в /etc/filesystems. Таким образом, анализируя «чистый бит» ФС во время загрузки системы утилита определяет, стоит ли проводить проверку.

Журналируемые ФС в настоящее время позволяют утилите работать только с теми структурами данных, которым действительно необходима починка или восстановление. При необходимости fsck может восстановить всю ФС целиком благодаря всё тем же журналам ФС.

Некоторые особенности использования fsck в Linux

Для Linux-систем довольно часто (в особенности с использованием ФС ext) проверка ФС может быть организована таким образом, что она будет проводиться при прошествии некоторого числа демонтирований, даже если ФС полностью исправны. Это особенно актуально для настольных компьютеров, которые могут выключаться/включаться каждые сутки, перезагружаться в связи с особенностью их работы и применения, а также из-за свободного к ним доступа для подключения внешних устройств. В таких случаях проверка ФС (хоть и является полезной и благоприятной процедурой), оказывается слишком частой, а потому бессмысленной.

По-умолчанию в Linux проверка ФС проводится по прошествии 20 демонтирований. Для того, чтобы изменить количество демонтирований, после которых нужна проверка ФС нужно воспользоваться командой tune2fs:

$ sudo tune2fs -с 50 /dev/sda1 tune2fs 1.44.1 (24-Mar-2018) Setting maximal mount count to 50

Синтаксис и основные опции fsck

У команды fsck следующий синтаксис:

fsck [параметр] -- [параметры ФС] [ . . .]
Опция Описание
-A Проверяет все ФС
-С [] Показывает статус выполнения. Здесь fd – дескриптор файла при отображении через графический интерфейс
-l Блокирует устройство для исключительного доступа
-M Запрещает проверять примонтированные ФС
-N Показывает имитацию выполнения, без запуска реальной проверки
-P Проверять вместе с корневой ФС
-R Пропускает проверку корневой ФС. Может использоваться только совместно с опцией -A
-r [] Выводит статистику для каждого проверенного устройства
-T Не показывать заголовок при запуске
-t

Задаёт ФС для проверки. Можно задавать несколько ФС, перечисляя через запятую
-V Выводит подробное описание выполняемых действий

Кроме основных опций для fsck существуют и специфические, зависящие от выполняемой задачи и/или ФС. Об этом более подробно можно прочитать в соответствующих страницах интерактивного руководства, используя команду man fsck. В содержании основного руководства для утилиты (в разделе «SEE ALSO») есть ссылки на другие страницы, например fstab(5), mkfs(8), fsck.ext2(8), fsck.ext3(8) и т. д. Информацию по этим ссылкам можно просматривать выполняя команду man с соответствующими параметрами, например man fsck.ext3.

В следующей таблице приводятся дополнительные (специальные), а также наиболее часто используемые опции, позволяющие использовать команду с максимальной гибкостью и эффективностью:

Опция Описание
-a Устаревшая опция. Указывает исправлять все найденные ошибки без одобрения пользователя.
-r Применяется для файловых систем ext. Указывает fsck спрашивать пользователя перед исправлением каждой ошибки
-n Выполняет только проверку ФС, без исправления ошибок. Используется также для получения информации о ФС
-c Применяется для файловых систем ext3/4. Помечает все повреждённые блоки для исключения последующей записи в них
-f Принудительно проверяет ФС, даже если ФС исправна
-y Автоматически подтверждает запросы к пользователю
-b Задаёт адрес суперблока
-p Автоматически исправлять найденные ошибки. Заменяет устаревшую опцию -a

Примеры использования fsck

Для самой типичной ситуации, характерной для случаев, когда нужно восстановить (а точнее «починить») ФС, например на устройстве /dev/sdb2, следует воспользоваться командой:

Здесь опция -y необходима, т. к. при её отсутствии придётся слишком часто давать подтверждение. Следующая команда позволит произвести принудительную проверку ФС, даже в том случае, если она исправна:

Одной из самых полезных является опция, позволяющая помечать повреждённые сектора и эта же опция используется чаще всего. Обычно такие ситуации (с повреждёнными секторами) возникают после сбоев, вызванных нештатным отключением электропитания:

Работу файловыми системами нужно проводить, когда они отмонтированны от разделов. Однако, если возникает ситуация, когда нужно всё же произвести проверку на примонтированных ФС, то перед тем как использовать команду fsck с соответствующей опцией, нужно сначала перемонтировать нужную ФС в режиме «только для чтения»:

$ sudo mount remount,ro /dev/sdb2 $ sudo fsck -fy /dev/sdb2

Для указания, какую ФС использовать для раздела:

$ sudo fsck -t ext4 -y /dev/sdb2

Если fsck не справляется с исправлением/починкой ФС (что случается очень редко), то это может быть из-за повреждённого суперблока ФС. Его также можно восстановить, поскольку для суперблоков создаются их резервные копии. Но сначала нужно узнать, по каким адресам эти копии записывались, а затем попытаться восстановить суперблок из одной их резервных копий:

$ sudo mkfs -t ext4 -n /dev/xvdb1

$ sudo fsck -b 163840 /dev/xvdb1

Команда fdisk -l упомянута в данном примере для наглядности того, что сначала нужно представлять, с каким устройством работать, т. к. она выводит список (в данном выводе опущен) доступных разделов. Команда mkfs предназначена для создания ФС, но с опцией -n её можно использовать для получения информации о ФС, в том числе и о расположении суперблоков. Следует следить за тем, чтобы ключом -t для mkfs задавалась соответствующая фактическому состоянию файловая система, в данном случае ext4.

Заключение

В данной статье мы рассмотрели работу и использование утилиты fsck. Как видно из статьи использование утилиты не предоставляет большой сложности. А возможности по проверки и восстановлению файловых систем в Linux у нее довольно большие, поэтому знание этой утилиты системному администратору просто необходимы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

Читайте также:  Система мониторинга сервера linux
Оцените статью
Adblock
detector