Иногда файловые системы могут накапливать ошибки, и причины тому разные – сбои, некорректное завершение работы программы и т.д. Для восстановления данных в таком случае отлично подойдет утилита fsck. Многие профессионалы сначала пользуются ей и только потом прибегают к сторонним программам. Я расскажу о том, что собой представляет инструмент fsck и как правильно им пользоваться.
Что такое fsck?
fsck (File System Consistency Check) – специальная утилита, осуществляющая глубокую проверку структуры данных файловой системы. С ее помощью можно найти поврежденные сектора и восстановить каждый блок. В большинстве систем инструмент проводит автоматическую проверку корневого хранилища. Но других разделов это не касается, поэтому приходится расширять ее функционал с помощью специальных опций.
Синтаксис и опции
Синтаксис инструмента fsck в командной строке «Терминал» выглядит следующим образом:
fsck [опция] [опция файловой системы] [раздел]
Первый параметр указывает на поведение утилиты. А раздел диска – это путь к тому или иному каталогу. Выглядеть он может так: /dev/sda1 или /dev/sda2. Опции файловой системы тоже имеют свою спецификацию.
Теперь я перейду к разбору самых полезных и востребованных параметров данной утилиты.
- -A – проводит проверку всех файловых систем.
- -С [<fd>] – выводит статус выполнения задачи, где fd – дескриптор файла при отображении через графический интерфейс.
- -l – блокирует устройство для исключительного доступа.
- -M – запрещает проверять вмонтированные файловые системы.
- -N – демонстрирует имитацию выполнения задачи без запуска реальной проверки.
- -P – производит проверку совместно с корневой файловой системой.
- -R – пропускает проверку корневого хранилища; используется только в совмещении с опцией -A.
- -r [<fd>] – показывает статистику каждого проверенного устройства.
- -T – удаляет заголовок при запуске.
- -t <тип> – задает конкретную файловую систему для проверки. Можно указывать несколько хранилищ, перечисляя каждое через запятую.
- -V – показывает подробное описание выполняемых действий.
Отдельно стоит указать специальные, дополнительные параметры, используемые для настройки гибкости проверки при использовании конкретной вышеуказанной опции.
- -a – устаревший параметр, исправляет все найденные ошибки без одобрения пользователя. На данный момент использовать его не рекомендуется.
- -b – задает адрес суперблока.
- -c – помечает поврежденные блоки для исключения последующей записи в них. Используется для проверки файловых систем ext3/4.
- -f – принудительно проверяет файловую систему, даже если она исправна.
- -n – производит только проверку хранилища, без исправления ошибок. Используется для получения информации о файловой системе.
- -p – автоматически исправляет найденные ошибки, используется в качестве замены устаревшего параметра -a.
- -r – спрашивает пользователя перед исправлением каждой ошибки. Используется для файловых систем ext.
- -y – автоматически подтверждает запросы, заданные пользователю.
Примеры использования
К примеру, мне необходимо запустить процесс восстановления файловой системы /dev/sda1 (сейчас и далее я буду приводить его в пример). Для этого я ввожу следующую команду.
sudo fsck -y /dev/sda1
Если в данном случае пропустить опцию -y, мне впоследствии придется постоянно давать согласие, а в данном случае запросы выходить будут довольно часто.
А вот что мне нужно ввести для запуска принудительно проверки исправной файловой системы.
sudo fsck -fy /dev/sda1
Пометка поврежденных блоков – одна из самых полезных опций, использующаяся достаточно часто. Такие сектора, как правило, появляются после сбоев, вызванных внезапным отключением электричества.
sudo fsck -c /dev/sda1
Если повреждения в файловой системе касаются суперблока, утилита fsck просто может не помочь. А суперблок – это начальный раздел, без которого ничего работать не будет. Для исправления ситуации, а именно создания новой системы, необходимо дать следующий запрос.
sudo mkfs -t ext4 -n /dev/sda1
В данном случае ext4 – это файловая система, вмонтированная в данный раздел. При этом размер блока должен совпадать, иначе ничего не выйдет. Опция -n же не делает ничего особенного, просто выводит на экран необходимую информацию. Но можно задействовать и следующий запрос:
sudo fsck -b 12345 /dev/sda1
Отмечу, что 12345 – это абсолютно хаотичный набор цифр, на месте которого должен указываться адрес суперблока.
Чтобы провести проверку всех имеющихся файловых систем, в окно терминала понадобится ввести следующую команду:
sudo fsck -A -y
Есть один нюанс – сработает она только в режиме восстановления. Для включения корневого хранилища в проверку необходимо ввести вот такой запрос:
sudo fsck -AR -y
Заключение
Как видно, провести проверку на неисправности и восстановить файловую систему можно всего одним инструментом – fsck. Есть возможность настройки его работы на конкретных условиях с помощью опций. Освоить их не сложно, и впоследствии пользоваться ими будет значительно проще.
Автор материала: Айше Джемилева
Подписывайтесь на наш канал и ставьте лайки! А еще можете посетить наш официальный сайт.