- Как использовать команду fsck для исправления ошибок файловой системы в Linux
- Когда использовать fsck в Linux
- Опции программы fsck
- Как запустить fsck для исправления ошибок файловой системы Linux
- Понимание кодов выхода fsck
- Как исправить ошибки файловой системы Linux
- Как запустить fsck на корневом разделе Linux
- Как принудительно проверить диск с помощью fsck при загрузке системы
- Как запустить fsck в режиме восстановления
- Заключение
- Связанные статьи:
- Как восстановить поврежденный USB-накопитель в Linux
- Сделайте сжатый полный образ резервной копии
- Исправить поврежденную файловую систему с помощью FSCK
- Отформатируйте USB-накопитель с помощью Fdisk / MKFS из Терминала
- Графический интерфейс для проверки и исправления USB-накопителя с дисками
- Обновленный USB-накопитель
Как использовать команду fsck для исправления ошибок файловой системы в Linux
Файловые системы отвечают за организацию хранения и восстановления данных. Так или иначе, со временем файловая система может быть повреждена, и некоторые её части могут оказаться недоступными. Если ваша файловая система обнаруживает такую несогласованность, рекомендуется проверить её целостность.
Это можно сделать с помощью системной утилиты fsck (проверка целостности файловой системы). Эта проверка может выполняться автоматически во время загрузки или запускаться вручную.
В этой статье мы рассмотрим утилиту fsck и её использование, чтобы помочь вам исправить ошибки диска.
Когда использовать fsck в Linux
Есть разные сценарии, когда вы захотите запустить fsck. Вот несколько примеров:
- Система не загружается.
- Файлы в системе повреждаются (часто вы можете увидеть ошибку ввода/вывода).
- Подключенный диск (включая флешки/SD-карты) не работает должным образом.
Опции программы fsck
Команду fsck необходимо запускать с привилегиями суперпользователя или root. Вы можете использовать её с разными аргументами. Их использование зависит от вашего конкретного случая. Ниже вы увидите некоторые из наиболее важных опций:
-A проверить все файловые системы -C [] показывать статус выполнения; fd - дескриптор файла при работе в графическом интерфейсе -l заблокировать устройство для гарантии исключительного доступа -M не проверять примонтированные файловые системы -N не запускать, показать имитацию выполнения -P проверить файловые системы одновременно, включая корневую -R пропустить корневую файловую систему; может быть использовано только с '-A' -r [ ] сообщать статистику по каждому проверенному устройству; файловый дескриптор предназначен для графических интерфейсов -s последовательное выполнение проверок -T не показывать заголовок при запуске -t указать файловую систему для проверки; в качестве параметра можно перечислить несколько файловых систем через запятую -V подробное описание выполняемых действий
Как запустить fsck для исправления ошибок файловой системы Linux
Чтобы запустить fsck, вам нужно убедиться, что раздел, который вы собираетесь проверить, не смонтирован. Для целей этой статьи я буду использовать свой второй диск /dev/sda, смонтированный в /mnt/disk_d.
Вот что произойдёт, если я попытаюсь запустить fsck, когда раздел смонтирован.
fsck из util-linux 2.36.1 e2fsck 1.45.6 (20-Mar-2020) /dev/sda is in mounted. e2fsck: Cannot continue, aborting.
Если диск не только смонтирован, но и используется (например, диск, смонтированный в корневую файловую систему), то ошибка будет «/dev/nvme0n1 is in use».
Чтобы избежать этого, отключите раздел с помощью следующей команды (замените имя диска на ваше):
Тогда можно будет безопасно запускать fsck.
Понимание кодов выхода fsck
После запуска fsck он вернёт код выхода. Эти коды можно увидеть в руководстве по fsck, запустив:
Описание кодов выхода fsck:
0 Ошибок нет 1 Исправлены ошибки файловой системы 2 Система должна быть перезагружена 4 Ошибки файловой системы остались неисправленными 8 Операционная ошибка 16 Ошибка использования или синтаксиса 32 Проверка отменена по запросу пользователя 128 Ошибка общей библиотеки
Как исправить ошибки файловой системы Linux
Иногда в файловой системе может быть обнаружено более одной ошибки. В таких случаях вы можете захотеть, чтобы fsck автоматически пытался исправить ошибки. Это можно сделать с помощью:
Флаг -y означает автоматически отвечать «да» на любые запросы от fsck для исправления ошибки.
Точно так же вы можете запустить то же самое во всех файловых системах (с пропуском корневой файловой системы):
Как запустить fsck на корневом разделе Linux
В некоторых случаях вам может потребоваться запустить fsck в корневом разделе вашей системы. Поскольку вы не можете запустить fsck, пока раздел смонтирован, вы можете попробовать один из следующих вариантов:
- Принудительно использовать fsck при загрузке системы
- Запустите fsck в режиме восстановления
Мы рассмотрим обе ситуации.
Как принудительно проверить диск с помощью fsck при загрузке системы
Это относительно легко выполнить, единственное, что вам нужно сделать, это создать файл с именем forcefsck в корневом разделе вашей системы. Используйте следующую команду:
Затем вы можете просто принудительно перезагрузить или запланировать перезагрузку системы. Во время следующей загрузки будет выполнена проверка диска командой fsck. Если время простоя критично, рекомендуется тщательно его спланировать, поскольку, если в вашей системе много используемых inode, выполнение fsck может занять дополнительное время.
После загрузки системы проверьте, существует ли ещё файл:
Если это так, вы можете удалить его, чтобы избежать появления fsck при каждой загрузке системы.
Как запустить fsck в режиме восстановления
Для запуска fsck в режиме восстановления требуется ещё несколько шагов. Сначала подготовьте вашу систему к перезагрузке. Остановите все критически важные службы, такие как MySQL/MariaDB и т. д., а затем введите.
Во время загрузки удерживайте нажатой клавишу Shift, чтобы отобразилось меню grub. Выберите Advanced options («Дополнительные параметры»).
Затем выберите Recovery mode («Режим восстановления»).
В следующем меню выберите «fsck».
Вас спросят, хотите ли вы перемонтировать / файловую систему. Выберите Yes («да»).
Вы должны увидеть нечто подобное.
Затем вы можете вернуться к нормальной загрузке, выбрав Resume («Возобновить»).
Заключение
В этом руководстве вы узнали, как использовать fsck и выполнять проверки согласованности в разных файловых системах Linux. Если у вас есть какие-либо вопросы о fsck, не стесняйтесь задавать их в разделе комментариев ниже.
Связанные статьи:
Как восстановить поврежденный USB-накопитель в Linux
Флешка есть у всех. Это отличные мелочи, которые упрощают перемещение данных. Однако иногда флешки могут быть повреждены или просто полностью перестать работать. К счастью, если вы используете Linux, у вас уже есть доступ к набору инструментов, которые могут помочь вам решить проблему. В этом руководстве мы используем Ubuntu, но все применимо к большинству современных дистрибутивов Linux. Вот как вы можете восстановить поврежденный USB-накопитель в Linux.
В этой статье мы уделяем приоритетное внимание безопасности ваших данных. Сначала вы увидите, как создать резервную копию содержимого флэш-накопителя, а затем приступите к различным исправлениям возникшей проблемы. Таким образом, если попытка решить проблему приведет к ее усугублению, вы все равно сможете вернуться к моментальному снимку текущего состояния вашего флеш-накопителя.
Сделайте сжатый полный образ резервной копии
В Linux есть множество инструментов для резервного копирования любого устройства хранения. Однако проверенный подход основан на dd и GunZip (более известном как gzip).
1. Чтобы сделать резервную копию флешки, сначала подключите ее к компьютеру. Запустите свой любимый терминал (или нажмите CTRL + Alt + T ).
4. Чтобы создать резервную копию вашего флеш-накопителя в файл изображения, сжатый с помощью ZIP, с помощью одной команды, используйте:
sudoddif=/dev/disk/by-id/YOUR_FLASH_DRIVE status=progress |gzip-c>/home/USERNAME/backups/BACKUP_NAME.img.gz
5. Чтобы восстановить резервную копию, вам нужно будет изменить последовательность двух команд и определить свою флешку в качестве устройства вывода. Полная команда будет выглядеть так:
sudogzip-c/home/USERNAME/backups/BACKUP_NAME.img.gz |sudoddof=/dev/disk/by-id/YOUR_FLASH_DRIVE status=progress
Исправить поврежденную файловую систему с помощью FSCK
После резервного копирования содержимого флеш-накопителя пора попытаться исправить это. Для этого вы можете обратиться к fsck . Этот инструмент отлично подходит для удаления плохих файловых блоков, поскольку большая часть (если не все) повреждение и нечитаемость происходит из-за подобных проблем.
Для этой команды вам нужно будет определить раздел, а не полный диск. Вы найдете его с таким же именем, как и ваше устройство, введя:
Затем запустите на нем fsck с помощью:
sudo fsck -v-a/dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION-TO-CHECK
- sudo fsck запускает инструмент исправления с правами администратора.
- -v указывает ему показать нам подробную информацию о процессе.
- -a указывает, что мы хотим, чтобы он автоматически пытался исправить все найденные ошибки.
- / dev / disk… — это раздел, который будет проверяться на наличие ошибок.
Отформатируйте USB-накопитель с помощью Fdisk / MKFS из Терминала
Если fsck не удалось восстановить файловую систему устройства, вы можете попробовать отформатировать ее, чтобы использовать как новую.
1. Первый шаг — стереть все существующие структуры файловой системы и воссоздать их с нуля. Для этого вы можете использовать fdisk . Запустите его с помощью sudo на своем устройстве с помощью:
sudofdisk/dev/disk/by-id/YOUR_FLASH_DRIVE
2. Нажмите o , а затем Enter, чтобы создать новую таблицу разделов DOS, чтобы ваш USB-накопитель был доступен для чтения повсюду. Если вы хотите использовать его только на своем современном компьютере и ОС, вы можете заменить o на g , чтобы вместо этого создать новую таблицу разделов GPT.
3. Нажмите n , а затем Enter, чтобы создать новый раздел, затем p , чтобы сделать его основным. Если вы использовали e вместо p , он был бы создан как расширенный раздел, но нет смысла делать это, если вы не планируете создавать более трех разделов на драйве. Затем вы можете просто нажать Enter, когда вас спросят о номере раздела, первом и последнем секторах, чтобы принять значения по умолчанию и разделить весь USB-накопитель.
4. Нажмите p , а затем Enter, чтобы проверить новую структуру хранения на вашем USB-накопителе. Затем нажмите w , а затем Enter, чтобы записать изменения на USB-накопитель и выйти из fdisk.
5. Ваш раздел будет неформатирован, и, поскольку на нем еще не будет файловой системы, его нельзя будет использовать. Чтобы создать файловую систему, вы можете использовать один из инструментов mkfs, который поставляется со всеми современными дистрибутивами Linux. Чтобы отформатировать раздел в FAT32, который можно использовать на большинстве устройств, используйте:
sudo mkfs.fat -F32/dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
6. Чтобы отформатировать раздел в NTFS для использования с современными версиями Windows или с EXT4 для использования только с Linux, используйте:
sudo mkfs.ntfs /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
sudo mkfs.ext4 /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
Графический интерфейс для проверки и исправления USB-накопителя с дисками
Если вам не нравится вводить команды, вы можете воспользоваться инструментом «Диски» для проверки и форматирования USB-накопителя. Диски предустановлены в Ubuntu.
1. Зайдите в меню приложений и найдите «диски». Запустите приложение, когда найдете его.
2. Выберите USB-накопитель из списка слева и щелкните значок с двумя шестеренками. Выберите «Восстановить файловую систему» и следуйте инструкциям мастера, чтобы исправить файловую систему.
3. В нашем случае мы имели дело не с аппаратной проблемой, а с повреждением файловой системы. Хотя проблема не подлежала устранению, мы могли переформатировать USB-накопитель и продолжать его использовать. Чтобы сделать это с дисками, с выбранным USB-накопителем, снова щелкните значок с двумя шестеренками и выберите «Форматировать раздел…»
4. Введите имя USB-накопителя в поле Имя тома и выберите для него одну из трех самых популярных файловых систем:
- Ext4 для использования с Linux
- NTFS для использования с современными версиями Windows
- FAT для использования с обоими, а также с другими типами устройств (от смартфонов до игровых консолей)
5. Обратите внимание на опцию «Стереть». Оставьте его отключенным для быстрого форматирования. Установите для него значение «Вкл.», Чтобы выполнить полное форматирование, при котором содержимое вашего устройства будет полностью удалено. При работе с поврежденными устройствами, на которых также могут быть плохие блоки, лучше использовать опцию полного стирания.
Обновленный USB-накопитель
Теперь, когда вы отремонтировали свой поврежденный USB-накопитель, вы можете снова использовать его как новый накопитель. А если вы хотите создать USB-накопитель Linux Live, следуйте приведенным здесь инструкциям.