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

Жесткий диск, поверх которого записан двоичный код.Pixza Studio / Shutterstock

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

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

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

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

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

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

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

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

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

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

sudo fdisk -l | меньше

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

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

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

sudo parted / dev / sda ‘печать’

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

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

Модель: ATA VBOX HARDDISK (scsi) Диск / dev / sda: 34,4 ГБ Размер сектора (логический / физический): 512B / 512B Таблица разделов: gpt Флаги диска: Номер Начало Конечный размер Флаги имени файловой системы 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 540MB 538 МБ FAT32 EFI System Partition boot, esp 3 540 МБ 34,4 ГБ 33,8 ГБ ext4

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

sudo parted / dev / sdb ‘print’ Модель: ATA VBOX HARDDISK (scsi) Диск / dev / sdb: 21,5 ГБ Размер сектора (логический / физический): 512B / 512B Таблица разделов: msdos Флаги диска: Номер Начало Конец Размер Тип Файловая система Флаги 1 1049 КБ 21,5 ГБ 21,5 ГБ основной ext4 sudo parted / dev / sdc ‘print’ Модель: ATA VBOX HARDDISK (scsi) Диск / dev / sdc: 21,5 ГБ Размер сектора (логический / физический): 512Б / 512Б Таблица разделов: диск msdos Флаги: Число Начало Конец Размер Тип Файловая система Флаги 1 1049 КБ 21,5 ГБ 21,5 ГБ основной ext3

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

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

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

df / dev / sdb1 df / dev / sdc1

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

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

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

sudo umount / запустить / монтировать / дэйв / sata2

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

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

судо fsck / dev / sdb1

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

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

эхо $?

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

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

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

sudo fsck / dev / sdb1 -f

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

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

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

sudo mount -a

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

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

sudo 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». Нажмите «Enter», чтобы перейти к следующему экрану.

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

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

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

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

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

Выберите да, чтобы запустить fsck в интерактивном режиме.

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

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

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

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

Когда дела идут плохо

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

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

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

Ваш адрес email не будет опубликован.