Как использовать команду fsck в Linux

Опубликовано: 2022-01-29
Жесткий диск с записанным на нем двоичным кодом.
Студия Pixza/Shutterstock

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

Файловые системы — это программное обеспечение

Файловые системы являются одним из наиболее важных компонентов компьютера. Без файловой системы компьютер не может хранить какие-либо данные на жестком диске, будь то вращающийся механический диск или твердотельный накопитель. На самом деле файловая система должна быть создана до того, как операционная система будет установлена ​​на жесткий диск. Должно быть что-то для хранения файлов операционной системы. Таким образом, файловая система создается в процессе установки.

10 основных команд Linux для начинающих
СВЯЗАННЫЕ 10 основных команд Linux для начинающих

Файловые системы создаются программным обеспечением, записываются программным обеспечением и считываются программным обеспечением. Как известно, во всех сложных программах есть ошибки. Наши данные очень важны для нас, поэтому мы очень верим в файловые системы и программное обеспечение, которое их создает и использует. Если что-то пойдет не так, мы можем потерять доступ к частям файловой системы или даже к целому разделу.

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

Команда fsck позволяет проверить работоспособность файловых систем. Если он находит какие-либо проблемы, он обычно может исправить их и для вас.

Проведите предполетную проверку

Для использования fsck требуются права sudo. К любой команде, которая может вносить изменения в файловую систему, следует относиться с осторожностью, и доступ к ней должен быть разрешен только тем, кто знает, что делает.

Реклама

Пилоты не запрыгивают в самолет, не запускают его и не улетают в бледно-голубое небо. Они проводят предполетную проверку. Слишком многое поставлено на карту, чтобы поступить иначе. Это хорошая привычка для развития. Прежде чем использовать fsck , вам нужно убедиться, что вы собираетесь использовать его на правильном диске. Итак, прежде чем что-то делать с fsck , мы проведем небольшую разведку.

Мы начнем с fdisk и направим его в less . Мы не запрашиваем информацию о конкретном разделе. Используя параметр -l (список), fdisk перечисляет таблицы разделов на всех устройствах, которые он находит в файле «/proc/partitions», если он существует.

 судо фдиск -л | меньше 

Мы видим записи для /dev/sda и /dev/sdb . Вы можете прокрутить файл, чтобы увидеть любые другие записи, которые могут существовать на вашем компьютере.

Наблюдайте за выводом в окне терминала

Разделы на /dev/sda перечислены как /dev/sda1 , /dev/sda2 и /dev/sda3 . Итак, у нас есть три раздела на первом диске. Мы можем увидеть немного больше информации, используя команду parted . Мы будем использовать опцию 'print' , чтобы отобразить таблицы разделов в окне терминала.

 sudo parted /dev/sda 'печать' 

Получить информацию о таблицах разделов

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

 Модель: ЖЕСТКИЙ ДИСК ATA VBOX (scsi) 
Диск /dev/sda: 34,4 ГБ 
Размер сектора (логический/физический): 512Б/512Б 
Таблица разделов: gpt 
Флаги диска:

Номер Начальный Конечный Размер Файловая система Имя Флаги 
1 1049 КБ 2097 КБ 1049 КБ bios_grub 
2 2097 КБ 540 МБ 538 МБ FAT32 EFI Загрузка системного раздела, esp 
3 540 МБ 34,4 ГБ 33,8 ГБ доб.4
Реклама

В этом тестовом компьютере три диска. Это результаты для двух других дисков /dev/sdb и /dev/sdc . Обратите внимание, что в этих файловых системах нет поля «Имя».

 sudo parted /dev/sdb 'печать'
 Модель: ЖЕСТКИЙ ДИСК ATA VBOX (scsi) 
Диск /dev/sdb: 21,5 ГБ 
Размер сектора (логический/физический): 512Б/512Б 
Таблица разделов: msdos 
Флаги диска:

Номер Начало Конец Размер Тип Файловая система Флаги 
1 1049 КБ 21,5 ГБ 21,5 ГБ основной ext4
 sudo parted /dev/sdc 'печать'
 Модель: ЖЕСТКИЙ ДИСК ATA VBOX (scsi) 
Диск /dev/sdc: 21,5 ГБ 
Размер сектора (логический/физический): 512Б/512Б 
Таблица разделов: msdos 
Флаги диска:

Номер Начало Конец Размер Тип Файловая система Флаги
1 1049 КБ 21,5 ГБ 21,5 ГБ основной ext3

Второй и третий диски имеют одинаковый размер, и каждый из них имеет один раздел. Но файловая система на втором диске — ext4 , а файловая система на третьем диске — старая ext3 .

Как монтировать и отключать устройства хранения данных из терминала Linux
СВЯЗАННЫЕ С : Как монтировать и отключать устройства хранения данных из терминала Linux

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

Мы можем легко узнать это, используя команду df .

 ДФ /dev/sdb1
 ДФ /dev/sdc1 

Использование команды fsck

У нас есть вся необходимая информация. Первое, что мы сделаем, это размонтируем файловую систему, которую собираемся проверить. Мы собираемся работать с файловой системой на первом и единственном разделе /dev/sdb , то есть на /dev/sdb1 . Ранее мы видели, что это файловая система ext4 , и она смонтирована в «/run/mount/dave/sata2».

Мы будем использовать команду umount . Обратите внимание, что в «umount» нет «n».

 sudo umount /run/mount/dave/sata2 

Используйте команду umount для размонтирования файловой системы.

Реклама

С umount отсутствие новостей — хорошая новость. Если вы молча вернулись в командную строку, все готово.

 судо фск /dev/sdb1 

Используйте команду fsck для проверки состояния файловой системы.

Эта файловая система считается чистой. Это означает, что файловая система сообщает об отсутствии ошибок или проблем. Более глубокая проверка файловой системы не выполняется автоматически. Мы также можем посмотреть код возврата, который fsck вернул оболочке.

 эхо $? 

Возвращаемое значение нуля указывает на отсутствие ошибок. Возможные коды возврата:

  • 0 : Нет ошибок
  • 1 : Исправлены ошибки файловой системы.
  • 2 : Система должна быть перезагружена
  • 4 : Ошибки файловой системы остались неисправленными.
  • 8 : Операционная ошибка
  • 16 : Ошибка использования или синтаксиса
  • 32 : Проверка отменена по запросу пользователя.
  • 128 : Ошибка общей библиотеки

Несмотря на то, что файловая система считается чистой, мы можем принудительно выполнить проверку файловой системы, используя параметр -f (force).

 судо fsck /dev/sdb1 -f 

Принудительная проверка файловой системы с помощью параметра force в команде fsck

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

Когда вы закончили тестирование, вам нужно перемонтировать файловую систему. Самый простой способ сделать это — использовать mount с параметром -a (все). Это проверяет «/etc/fstab» на наличие списка файловых систем и убеждается, что все они смонтированы так же, как при обычной загрузке.

 судо монтировать -а 

Перемонтируйте файловую систему с помощью команды mount

Какую файловую систему Linux следует использовать?
СВЯЗАННЫЕ Какую файловую систему Linux следует использовать?

Обратите внимание, что нам не нужно сообщать fsck , какой тип файловой системы находится на разделе; утилита определяет это, исследуя файловую систему. Это означает, что мы можем принудительно проверить файловую систему /dev/sdc1 , файловую систему ext3 на нашем тестовом ПК, используя точно такую ​​же команду, которую мы использовали для /dev/sdb1 , который является разделом ext4 .

 судо fsck /dev/sdc1 -f 

Используйте команду fsck для принудительной проверки файловой системы

Реклама

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

 sudo fsck -N /dev/sdb1 

Перед восстановлением файловой системы выполните пробный запуск

Противоположным этому является fsck , чтобы она не беспокоилась об обнаружении каких-либо ошибок, а просто продолжала их исправлять. Для этого используйте параметр -y (без подсказок).

 sudo fsck -y /dev/sdb1

Использование fsck на корневом разделе

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

Во время загрузки компьютера удерживайте нажатой клавишу «Shift». Если вы правильно рассчитали время, вы не загрузитесь в Linux. Процесс загрузки остановится в черно-белом меню. Тестовая машина, используемая для этой статьи, работала под управлением Ubuntu, но другие дистрибутивы имеют тот же тип меню, хотя и могут отличаться по внешнему виду. Там, где на скриншотах написано «Ubuntu», будет название вашего дистрибутива.

Меню восстановления с выбранным пунктом меню дополнительных параметров

Переместите полосу выделения с помощью клавиш «Стрелка вверх» и «Стрелка вниз», чтобы был выбран пункт меню «Дополнительные параметры для Ubuntu». Нажмите «Ввод», чтобы перейти к следующему экрану.

Меню восстановления с выбранным пунктом меню «режим восстановления»

Реклама

Выберите вариант, оканчивающийся на «(режим восстановления)». В нашем примере это «Ubuntu с Linux 5.11.0-20-generic (режим восстановления)». Нажмите клавишу «Ввод».

Вы увидите меню восстановления. Выберите «fsck проверить все файловые системы» и нажмите клавишу «Tab», чтобы переместить выделение на кнопку «ОК». Нажмите Ввод."

Меню восстановления с выбранным fsck

Вы увидите уведомление о том, что корневой раздел будет смонтирован вместе с любыми другими разделами, определенными в вашем файле «/etc/fstab».

Выберите «Да», чтобы инициировать fsck в интерактивном режиме.

Нажмите клавишу «Tab», чтобы переместить выделение на кнопку «Да», и нажмите «Ввод».

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

Выберите опцию «возобновить», нажмите клавишу «Tab», чтобы переместить выделение на кнопку «ОК», и нажмите «Ввод». Процесс загрузки возобновится, и вы загрузитесь в Linux.

Реклама

Загрузка в режиме восстановления может повлиять на некоторые драйверы, поэтому рекомендуется перезагрузиться еще раз, как только вы загрузитесь в Linux. Это гарантирует, что ваш компьютер работает в стандартном режиме.

Когда что-то пойдет не так

Защитные сетки существуют не просто так. Ознакомьтесь с командой fsck . Если однажды возникнет необходимость использовать его в гневе, вы будете рады, что ознакомились с ним заранее.

СВЯЗАННЫЕ С: Лучшие ноутбуки с Linux для разработчиков и энтузиастов