- Проверка и восстановление файловых систем в Linux- команда fsck
- Как работает fsck?
- Некоторые особенности использования fsck в Linux
- Синтаксис и основные опции fsck
- Примеры использования fsck
- Заключение
- Восстановление файловой системы Linux после сбоя
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Руководство по команде fsck для проверки и восстановления файловой системы
- Когда использовать fsck в Linux
- Базовый синтаксис fsck
- Как проверить и восстановить файловую систему
- Просмотр подключенных дисков и разделов
- Размонтировать диск
- Запустить fsck для проверки ошибок
- Смонтировать диск
- Сделать пробный запуск с fsck
- Автоматическое исправление обнаруженных ошибок с помощью fsck
- Пропускать восстановление, но выводить ошибки fsck на выходе
- Заставить fsck выполнить проверку файловой системы
- Запустить fsck сразу для всех файловых систем
- Пропустить проверку fsck в определенной файловой системе
- Пропустить Fsck в подключенных файловых системах
- Запустить fsck в корневом разделе Linux
- Что делать, если fsck прерывается?
- Обзор параметров команды Linux 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:
Синтаксис и основные опции 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 с соответствующей опцией, нужно сначала перемонтировать нужную ФС в режиме «только для чтения»:
Для указания, какую ФС использовать для раздела:
Если fsck не справляется с исправлением/починкой ФС (что случается очень редко), то это может быть из-за повреждённого суперблока ФС. Его также можно восстановить, поскольку для суперблоков создаются их резервные копии. Но сначала нужно узнать, по каким адресам эти копии записывались, а затем попытаться восстановить суперблок из одной их резервных копий:
Команда fdisk -l упомянута в данном примере для наглядности того, что сначала нужно представлять, с каким устройством работать, т. к. она выводит список (в данном выводе опущен) доступных разделов. Команда mkfs предназначена для создания ФС, но с опцией -n её можно использовать для получения информации о ФС, в том числе и о расположении суперблоков. Следует следить за тем, чтобы ключом -t для mkfs задавалась соответствующая фактическому состоянию файловая система, в данном случае ext4.
Заключение
В данной статье мы рассмотрели работу и использование утилиты fsck. Как видно из статьи использование утилиты не предоставляет большой сложности. А возможности по проверки и восстановлению файловых систем в Linux у нее довольно большие, поэтому знание этой утилиты системному администратору просто необходимы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Восстановление файловой системы Linux после сбоя
Дата добавления: 06 сентября 2010
Сбой файловой системы в linux случается достаточно редко, но лично у меня пару раз такое происходило из-за экстренного выключения ноутбука, вместо традиционного завершения сеанса операционной системы. И, при следующем включении, дистрибутив просто не загружался и выводил ошибку в терминале о неисправности используемого сектора жесткого диска. Если вам приходилось видеть данную ошибку, то, скорее всего, проблема в коренном (чаще всего он и есть поврежденный) секторе файловой системы.
Для выполнения восстановления нам необходим любой современный LiveCD дистрибутив.
Загружаемся в LiveCD и заходим в терминал от имени суперпользователя.
Для восстановление файловой системы в linux используется консольная утилита под названием fsck. Её вызов очень прост даже для новичков в мире linux.
Последовательность действий:
1. Загружаемся с LiveCD дистрибутива linux, содержащего в себе драйвер для работы с вашей файловой системой (например ext4) и собственно утилиту fsck.
2. Заходим в терминал LiveCD под именем суперпользователя. Например, в той-же Ubuntu нужно просто набрать в основной консоли sudo su. В Debian есть отдельный пункт меню для вызова root консоли. В Gentoo вам вообще ничего не придется делать — после загрузки вы уже под именем root.
3. Если вы не помните путь до поврежденной файловой системы (/dev/sdx), то смотрите на вывод команды fdisk -l и ориентируясь на размер или другие параметры, запоминаете путь до файловой системы (например /dev/sda1).
4. Теперь осталось запустить утилиту восстановления файловой системы командой fsck -fy /dev/sdx , где sdx — имя раздела (например sda1). Опция -f (force) используется для принудительной выполнении проверки. Опция -y (yes) позволяет программе автоматически отвечать «да» на все вопросы в ходе работы.
Также стоит запомнить опцию -t которая задаёт тип файловой системы.
Вот так-бы выглядел запуск проверки диска у меня на ноутбуке:
Автор: vasilisc, дата: 18 сентября 2014 , время: 13:40:29 (MSK).
В Ubuntu через определенное количество монтирований жестких дисков (читай «перезагрузок компьютера») принудительно включается fsck для проверки жестких дисков. Многие знают, что с помощью tune2fs можно управлять интервалами проверок fsck.
Но иногда нужно проверить диск «здесь и сейчас». Если запустить fsck с указанием ваших дисков, то скорее всего они примонтированы и fsck предупредит, что это чревато для вас. Как быть? Отмонтировать, чтобы проверить? А как быть с корнем?
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Руководство по команде fsck для проверки и восстановления файловой системы
Утилита для файловой системы
Утилита Linux fsck (File System Consistency Check — проверка согласованности файловой системы) проверяет файловые системы на наличие ошибок или нерешенных проблем. Инструмент используется для исправления потенциальных ошибок и создания отчетов.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Эта утилита по умолчанию входит в состав дистрибутивов Linux. Для использования fsck не требуется никаких специальных шагов или процедуры установки. После загрузки терминала вы готовы использовать функции инструмента.
Следуйте этому руководству, чтобы узнать, как использовать fsck для проверки и восстановления файловой системы на Linux-машине. В руководстве будут перечислены примеры того, как использовать инструмент и для каких вариантов использования.
Когда использовать fsck в Linux
Инструмент fsck можно использовать в различных ситуациях:
- Используйте fsck для запуска проверки файловой системы в качестве профилактического обслуживания или при возникновении проблемы с вашей системой.
- Одна из распространенных проблем, которые может диагностировать fsck, — это когда система не загружается.
- Другой — когда вы получаете ошибку ввода/вывода, когда файлы в вашей системе становятся поврежденными.
- Вы также можете использовать утилиту fsck для проверки состояния внешних накопителей, таких как SD-карты или USB-накопители.
Базовый синтаксис fsck
Базовый синтаксис утилиты fsck следует этому шаблону:
В приведенном выше примере файловой системой может быть устройство, раздел, точка монтирования и так далее. Вы также можете использовать параметры, относящиеся к файловой системе, в конце команды.
Как проверить и восстановить файловую систему
Перед проверкой и восстановлением файловой системы необходимо выполнить несколько шагов. Вам нужно найти устройство и размонтировать его.
Просмотр подключенных дисков и разделов
Чтобы просмотреть все подключенные устройства в вашей системе и проверить расположение диска, используйте один из доступных инструментов в Linux.
Один из способов найти диск, который вы хотите просканировать, — это перечислить диски файловой системы с помощью команды df :
Инструмент показывает использование данных в вашей системе и файловых системах. Обратите внимание на диск, который вы хотите проверить, с помощью команды fsck .
Например, для просмотра разделов вашего первого диска используйте следующую команду:
sda — это то, как Linux относится к вашему первому SCSI-диску. Если у вас два, вторым будет sdb и так далее.
В нашем примере мы получили один результат, поскольку на этой виртуальной машине был только один раздел. Вы получите больше результатов, если у вас будет больше разделов.
Имя диска здесь /dev/sda , а затем количество разделов отображается в столбце Number. В нашем случае это один: sda1.
Размонтировать диск
Прежде чем вы сможете запустить проверку диска с помощью fsck , вам необходимо отключить диск или раздел. Если вы попытаетесь запустить fsck на смонтированном диске или разделе, вы получите предупреждение:
Обязательно выполните команду размонтирования:
Замените /dev/sdb устройством, которое вы хотите размонтировать.
Обратите внимание, что вы не можете размонтировать корневые файловые системы. Следовательно, теперь fsck нельзя использовать на работающей машине. Подробнее об этом в конце руководства.
Запустить fsck для проверки ошибок
Теперь, когда вы отключили диск, вы можете запустить fsck . Чтобы проверить второй диск, введите:
В приведенном выше примере показан результат для чистого диска. Если на вашем диске имеется несколько проблем, для каждой из них появляется запрос, в котором вы должны подтвердить действие.
Код выхода, который возвращает утилита fsck , представляет собой сумму этих состояний:
Смонтировать диск
Когда вы закончите проверку и ремонт устройства, смонтируйте диск, чтобы вы могли использовать его снова.
В нашем случае мы перемонтируем SDB-диск:
Сделать пробный запуск с fsck
Перед выполнением проверки в реальном времени вы можете выполнить тестовый запуск с помощью fsck . Передайте параметр -N команде fsck , чтобы выполнить тест:
На выходе печатается, что могло бы произойти, но не выполняется никаких действий.
Автоматическое исправление обнаруженных ошибок с помощью fsck
Чтобы попытаться устранить потенциальные проблемы без каких-либо запросов, передайте параметр -y команде fsck .
Таким образом, вы говорите «да, попытайтесь исправить все обнаруженные ошибки» без необходимости каждый раз получать запрос.
Если ошибок не обнаружено, результат будет таким же, как и без опции -y.
Пропускать восстановление, но выводить ошибки fsck на выходе
Используйте параметр -n , если вы хотите проверить потенциальные ошибки в файловой системе, не исправляя их.
У нас есть второй диск sdb с некоторыми ошибками журнала. Флаг -n печатает ошибку, не исправляя ее:
Заставить fsck выполнить проверку файловой системы
Когда вы выполняете fsck на чистом устройстве, инструмент пропускает проверку файловой системы. Если вы хотите принудительно проверить файловую систему, используйте параметр -f .Например:
При сканировании будут выполнены все пять проверок для поиска повреждений, даже если будет обнаружено, что проблем нет.
Запустить fsck сразу для всех файловых систем
Если вы хотите выполнить проверку всех файловых систем с помощью fsck за один раз, передайте флаг -A . Эта опция будет проходить через файл etc/fstab за один проход.
Поскольку корневые файловые системы нельзя размонтировать на работающей машине, добавьте параметр -R , чтобы пропустить их:
Чтобы избежать запросов, добавьте параметр -y , о котором мы говорили.
Пропустить проверку fsck в определенной файловой системе
Если вы хотите, чтобы fsck пропустил проверку файловой системы, вам нужно добавить -t и no перед файловой системой.
Например, чтобы пропустить файловую систему ext3 , выполните эту команду:
Мы добавили -y , чтобы пропускать запросы.
Пропустить Fsck в подключенных файловых системах
Чтобы убедиться, что вы не пытаетесь запустить fsck на смонтированной файловой системе, добавьте параметр -M . Этот флаг указывает инструменту fsck пропускать любые смонтированные файловые системы.
Чтобы показать вам разницу, мы запустим fsck на sdb , пока он смонтирован, а затем, когда мы его размонтируем.
Пока sdb смонтирован, инструмент выходит без проверки. Затем мы размонтируем sdb и снова запускаем ту же команду. На этот раз fsck проверяет диск и сообщает, что он чистый или с ошибками.
Примечание. Чтобы удалить первую строку заголовка инструмента fsck «fsck from util-linux 2.31.1» , используйте параметр -T .
Запустить fsck в корневом разделе Linux
Как мы уже упоминали, fsck не может проверить корневые разделы на работающей машине, поскольку они смонтированы и используются. Однако даже корневые разделы Linux можно проверить, если вы загрузитесь в режиме восстановления и запустите проверку fsck :
1. Для этого включите или перезагрузите компьютер через графический интерфейс или с помощью терминала:
2. Нажмите и удерживайте клавишу Shift во время загрузки. Появится меню GNU GRUB.
3. Выберите Advanced options for Ubuntu (Дополнительные параметры для Ubuntu).
4. Затем выберите запись с (recovery mode — режим восстановления) в конце. Подождите, пока система загрузится в меню восстановления.
5. Выберите fsck в меню.
6. Подтвердите, выбрав Yes в ответ на запрос.
7. По завершении выберите resume в меню восстановления, чтобы загрузить машину.
Что делать, если fsck прерывается?
Вам не следует прерывать работу инструмента fsck , пока он работает. Однако, если процесс будет прерван, fsck завершит текущую проверку, а затем остановится.
Если утилита обнаружила ошибку во время проверки, она не будет пытаться что-либо исправить, если ее прервать. Вы можете повторно запустить проверку в следующий раз и дождаться ее завершения.
Обзор параметров команды Linux fsck
Подводя итоги, ниже приведен список параметров, которые вы можете использовать с утилитой fsck Linux.
- -а — Попробует автоматически исправить ошибки файловой системы. Подсказок не будет, поэтому используйте его с осторожностью.
- -А — Проверяет все файловые системы, перечисленные в /etc/fstab.
- -C — Показать прогресс для файловых систем ext2 и ext3.
- -f — Заставляет fsck проверить файловую систему. Инструмент проверяет, даже если файловая система кажется чистой.
- -l — Заблокирует устройство, чтобы другие программы не могли использовать раздел во время сканирования и восстановления.
- -M — Не проверяет смонтированные файловые системы. Инструмент возвращает код выхода 0, когда файловая система смонтирована.
- -N — Делает пробный запуск. В выводе печатается, что fsck будет делать без выполнения каких-либо действий. Также печатаются предупреждения или сообщения об ошибках.
- -П — Используется для параллельного сканирования нескольких файловых систем. Это может вызвать проблемы, в зависимости от ваших настроек. Используйте с осторожностью.
- -Р — Сообщает инструменту fsck, чтобы он не проверял корневые файловые системы при использовании параметра -A.
- -р — Распечатать статистику устройства.
- -t — Укажите типы файловых систем для проверки с помощью fsck. Обратитесь к странице руководства для получения подробной информации.
- -T — Скрыть заголовок при запуске инструмента.
- -у — Попытается автоматически исправить ошибки файловой системы во время проверки.
- -V — Подробный вывод.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник