Меню Рубрики

Восстановление файловой системы linux после сбоя

Восстановление файловой системы 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 предупредит, что это чревато для вас. Как быть? Отмонтировать, чтобы проверить? А как быть с корнем?

Источник

Проверка и восстановление файловых систем в 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.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Эмулятор для sega для mac os
  • Эмулятор для ios для mac os
  • Эмулятор денди mac os
  • Эмулятор xbox 360 mac os
  • Эмулятор ps3 для mac os