Linux проверяет диск на наличие ошибок
Обновлено: 21.11.2024
Утилита Linux fsck (проверка целостности файловой системы) проверяет файловые системы на наличие ошибок или нерешенных проблем. Этот инструмент используется для исправления потенциальных ошибок и создания отчетов.
Эта утилита входит в состав дистрибутивов Linux по умолчанию. Для использования fsck не требуется никаких специальных шагов или процедур установки. После загрузки терминала вы готовы использовать функциональные возможности инструмента.
Следуйте этому руководству, чтобы узнать, как использовать fsck для проверки и восстановления файловой системы на компьютере с Linux. В учебном пособии будут перечислены примеры того, как использовать этот инструмент и для каких случаев.
- Linux или UNIX-подобная система
- Доступ к терминалу или командной строке
- Пользователь с правами суперпользователя для запуска инструмента.
Когда использовать fsck в Linux
Инструмент fsck можно использовать в различных ситуациях:
- Используйте fsck для запуска проверки файловой системы в качестве профилактического обслуживания или при возникновении проблем с вашей системой.
- Одна из распространенных проблем, которую может диагностировать fsck, — это когда система не загружается.
- Еще одна ситуация возникает, когда вы получаете ошибку ввода/вывода, когда файлы в вашей системе повреждены.
- Вы также можете использовать утилиту fsck для проверки состояния внешних накопителей, например SD-карт или USB-накопителей.
Примечание. Другим полезным инструментом для решения проблемы с загрузкой является восстановление GRUB. Подробнее читайте в нашей статье «Как использовать Grub Rescue для исправления ошибки загрузки Linux».
Основной синтаксис fsck
Основной синтаксис утилиты fsck соответствует следующему шаблону:
В приведенном выше примере файловая система может быть устройством, разделом, точкой монтирования и т. д. Вы также можете использовать параметры файловой системы в конце команды.
Как проверить и восстановить файловую систему
Перед проверкой и восстановлением файловой системы необходимо выполнить несколько шагов. Вам нужно найти устройство и размонтировать его.
Просмотр подключенных дисков и разделов
Чтобы просмотреть все подключенные устройства в вашей системе и проверить расположение на диске, используйте один из доступных инструментов в Linux.
Один из способов найти диск, который вы хотите просканировать, — просмотреть список дисков с файловой системой с помощью команды df:
Инструмент печатает использование данных в вашей системе и файловых системах. Обратите внимание на диск, который вы хотите проверить, с помощью команды fsck.
Например, для просмотра разделов вашего первого диска используйте следующую команду:
sda — это то, как Linux называет ваш первый диск SCSI. Если их два, вторым будет sdb и т. д.
В нашем примере мы получили один результат, поскольку на этой виртуальной машине был только один раздел. Вы получите больше результатов, если у вас будет больше разделов.
Здесь имя диска — /dev/sda, а количество разделов отображается в столбце Число. В нашем случае это один: sda1.
Отмонтировать диск
Прежде чем запустить проверку диска с помощью fsck, необходимо размонтировать диск или раздел. Если вы попытаетесь запустить fsck на смонтированном диске или разделе, вы получите предупреждение:
Обязательно выполните команду размонтирования:
Замените /dev/sdb на устройство, которое вы хотите размонтировать.
Обратите внимание, что размонтировать корневые файловые системы нельзя. Следовательно, теперь fsck нельзя использовать на работающей машине. Подробнее об этом в конце руководства.
Запустите fsck для проверки на наличие ошибок
Теперь, когда вы размонтировали диск, вы можете запустить fsck. Чтобы проверить второй диск, введите:
В приведенном выше примере показан вывод для чистого диска. Если на вашем диске несколько проблем, для каждой из них появится запрос, в котором вы должны подтвердить действие.
Код выхода, возвращаемый утилитой fsck, представляет собой сумму следующих состояний:
Смонтировать диск
Когда вы закончите проверку и ремонт устройства, смонтируйте диск, чтобы вы могли использовать его снова.
В нашем случае мы перемонтируем диск sdb:
Выполните пробный прогон с помощью fsck
Прежде чем выполнять проверку в реальном времени, вы можете выполнить тестовый запуск с помощью fsck. Передайте параметр -N команде fsck для выполнения теста:
Вывод выводит то, что должно произойти, но не выполняет никаких действий.
Автоматическое исправление обнаруженных ошибок с помощью fsck
Чтобы попытаться устранить потенциальные проблемы без каких-либо запросов, передайте параметр -y в fsck .
Таким образом, вы говорите "да, попытайтесь исправить все обнаруженные ошибки" без запроса каждый раз.
Если ошибок не обнаружено, вывод выглядит так же, как и без параметра -y.
Пропустить восстановление, но вывести ошибки fsck в выходных данных
Используйте параметр -n, если вы хотите проверить возможные ошибки в файловой системе, не исправляя их.
У нас есть второй диск sdb с некоторыми ошибками ведения журнала. Флаг -n печатает ошибку, не исправляя ее:
Заставить fsck выполнить проверку файловой системы
При выполнении fsck на чистом устройстве инструмент пропускает проверку файловой системы. Если вы хотите принудительно проверить файловую систему, используйте параметр -f.
Сканирование выполнит все пять проверок для поиска повреждений, даже если считает, что проблем нет.
Запустить fsck для всех файловых систем одновременно
Если вы хотите выполнить проверку всех файловых систем с помощью fsck за один раз, передайте флаг -A. Эта опция просматривает файл etc/fstab за один проход.
Поскольку корневые файловые системы нельзя размонтировать на работающей машине, добавьте параметр -R, чтобы пропустить их:
Чтобы избежать запросов, добавьте параметр -y, о котором мы говорили.
Пропустить fsck в определенной файловой системе
Если вы хотите, чтобы fsck пропустил проверку файловой системы, вам нужно добавить -t и «no» перед файловой системой.
Например, чтобы пропустить файловую систему ext3, выполните следующую команду:
Мы добавили -y, чтобы пропускать подсказки.
Пропустить Fsck для смонтированных файловых систем
Чтобы убедиться, что вы не пытаетесь запустить fsck в смонтированной файловой системе, добавьте параметр -M. Этот флаг указывает инструменту fsck пропускать любые смонтированные файловые системы.
Чтобы показать вам разницу, мы запустим fsck на sdb, пока он смонтирован, а затем, когда мы его размонтируем.
Пока sdb смонтирован, инструмент завершает работу без выполнения проверки. Затем мы размонтируем sdb и снова запустим ту же команду. На этот раз fsck проверяет диск и сообщает, что он чист или содержит ошибки.
Примечание. Чтобы удалить первую строку заголовка инструмента fsck «fsck from util-linux 2.31.1», используйте параметр -T.
Запустить fsck на корневом разделе Linux
Как мы уже упоминали, fsck не может проверять корневые разделы на работающей машине, поскольку они смонтированы и используются. Однако даже корневые разделы Linux можно проверить, если загрузиться в режиме восстановления и запустить проверку fsck:
<р>1. Для этого включите или перезагрузите компьютер через графический интерфейс или с помощью терминала: <р>2. Нажмите и удерживайте клавишу Shift во время загрузки. Появится меню GNU GRUB. <р>3. Выберите Дополнительные параметры для Ubuntu.<р>4. Затем выберите запись с (режим восстановления) в конце. Дайте системе загрузиться в меню восстановления.
<р>5. Выберите в меню fsck.<р>6. Подтвердите, выбрав в ответ на запрос.
<р>7. После завершения выберите «Возобновить» в меню восстановления, чтобы загрузить машину.
Что делать, если fsck прерван?
Вы не должны прерывать работу инструмента fsck.Однако, если процесс будет прерван, fsck завершит текущую проверку, а затем остановится.
В случае, если утилита обнаружила ошибку во время проверки, она не будет пытаться что-либо исправить в случае прерывания. Вы можете перезапустить проверку в следующий раз и дождаться ее завершения.
Сводка параметров команды fsck Linux
В заключение ниже приведен список параметров, которые можно использовать с утилитой fsck для Linux.
Опция | Описание |
---|---|
- a | Попробуйте автоматически исправить ошибки файловой системы. Подсказок не будет, поэтому используйте его с осторожностью. |
-A | Проверьте все файловые системы, перечисленные в /etc/ fstab. |
-C | Показать прогресс для файловых систем ext2 и ext3. |
-f | Заставить fsck проверять файловую систему. Инструмент проверяет, даже если файловая система кажется чистой. |
-l | Заблокируйте устройство, чтобы другие программы не могли использование раздела во время сканирования и восстановления. |
-M | Не проверять смонтированные файловые системы. Инструмент возвращает код выхода 0, когда файловая система смонтирована. |
-N | Выполните пробный запуск. Вывод печатает то, что fsck сделал бы без выполнения каких-либо действий. Предупреждения или сообщения об ошибках также распечатываются. |
-P | Используется для параллельного запуска сканирования нескольких файловых систем. . Это может вызвать проблемы, в зависимости от вашей настройки. Используйте с осторожностью. |
-R | Укажите инструменту fsck не проверять корневые файловые системы, когда вы используете -A option. |
-r | Распечатать статистику устройства. |
-t | Укажите, какие типы файловых систем следует проверять с помощью fsck. Обратитесь к справочной странице для получения подробной информации. |
-T | Скрывать заголовок при запуске инструмента. |
-y | Попытаться автоматически исправить ошибки файловой системы во время проверки. |
-V | Подробный вывод. |
Теперь вы знаете, как использовать команду fsck Linux для проверки и восстановления файловых систем. В руководстве приведены примеры функций и возможностей инструмента.
Перед запуском перечисленных команд убедитесь, что у вас есть права root. Подробное описание всех параметров можно найти в справочном файле инструмента или на справочной странице fsck Linux.
Estamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
Это руководство является частью серии статей о командах и функциях Linux. Не все команды могут иметь отношение к оборудованию, специфичному для Linode, и они включены здесь, чтобы обеспечить легкий доступ к справке для сообщества Linux. Если у вас есть команда или совет по устранению неполадок, который может помочь другим, отправьте запрос на включение или комментарий.
Что такое fsck?
fsck, сокращение от проверки согласованности файловой системы, представляет собой утилиту, которая проверяет файловую систему на наличие ошибок и пытается исправить их, если это возможно. Он использует комбинацию встроенных инструментов для проверки диска и создает отчет о своих результатах.
В некоторых системах fsck запускается автоматически после некорректного завершения работы или после определенного количества перезагрузок.
Когда использовать fsck
Используйте fsck для проверки вашей файловой системы, если ваша система не загружается, если файлы на определенном диске повреждены или если подключенный диск не работает должным образом. Размонтируйте диски, с которыми вы собираетесь работать, прежде чем пытаться их проверить или восстановить.
Сначала размонтируйте целевой диск. Вы рискуете повредить файловую систему и потерять данные, если запустите fsck на активном диске.
Параметры и аргументы fsck
Опция | Действие |
---|---|
-a | Попытка исправить ошибки автоматически. Используйте с осторожностью. |
-f | Заставить fsck проверять файловую систему, даже если он думает, что он чистый. |
-A | Проверить все диски, перечисленные в /etc/fstab . |
-C | Показать индикатор выполнения (только для файловых систем ext2 и ext3). |
-M | Пропустить смонтированные файловые системы. |
Пробный запуск. Описывает, что произойдет без выполнения самой проверки. | |
-P | Используйте с -Возможность параллельного запуска нескольких проверок. |
-R | При использовании -Опция, не проверять корневую файловую систему. |
-t | Проверять только определенный тип файловой системы. |
-T | Пропускать заголовок при запуске.< /td> |
-y | Интерактивный режим восстановления. |
Код | Значение кода ошибки |
---|---|
0 | Ошибок нет |
1 | Исправлены ошибки файловой системы |
2 | Система должна быть перезагружена |
4 | Ошибки файловой системы остались неисправлено |
8 | Ошибка в работе |
16 | Ошибка использования или синтаксиса |
32 | Проверка отменена по запросу пользователя |
128 | Ошибка общей библиотеки |
Используйте fsck для исправления ошибок файловой системы
Используйте параметр -r, чтобы использовать параметр интерактивного восстановления.
Чтобы проверить и попытаться исправить ошибки в /dev/sdb , используйте следующий формат:
Что делать, если fsck был прерван?
Если работа fsck будет прервана, она завершит все текущие проверки, но не будет пытаться исправить найденные ошибки.
Дополнительная информация
Вы можете обратиться к следующим ресурсам для получения дополнительной информации по этой теме. Хотя они предоставляются в надежде на то, что они будут полезны, обратите внимание, что мы не можем ручаться за точность или своевременность материалов, размещенных на внешних серверах.
Я подозреваю, что на диске может быть плохой сектор. Я использовал файловую систему ext3.
Какой инструмент является лучшим эквивалентом инструмента проверки ошибок Windows?
8 ответов 8
Диски
Чтобы проверить наличие поврежденных секторов, проверьте данные SMART. Возможно, лучше всего это сделать, запустив утилиту "Диски" (Palimpsest). Даже если вы не видите плохих блоков, запустите самопроверку, чтобы убедиться.
Программа включена в пакет gnome-disk-utility. Запустите gksudo gnome-disks
Или в версии Ubuntu 16.04 (3.18):
Плохие блоки
Вы также можете использовать бэдблоки
чтобы просто проверить или проверить и исправить сначала запишите результат во временный файл:
проверит весь диск и распечатает все поврежденные блоки, обнаруженные в /dev/sda.
Из руководства по бэдблокам:
Важное примечание: если выходные данные плохих блоков будут передаваться программам e2fsck или mke2fs, важно правильно указать размер блока, поскольку номера генерируемых блоков очень зависят от блока. размер, используемый файловой системой. По этой причине настоятельно рекомендуется, чтобы пользователи не запускали badblocks напрямую, а использовали параметр -c программ e2fsck и mke2fs.
fsck сама по себе не поможет вам найти битые сектора, что еще хуже, если битых секторов много, это может еще больше повредить ваши данные. Используйте его только тогда, когда диск исправен.
На самом деле руководство badblocks не рекомендует использовать его напрямую и направляет пользователей к e2fsck с параметром "-c" (для проверки только для чтения) или "-cc" (для проверки чтения и записи).
как примечание, 13.04 вы запускаете палимпсест, просто запуская «диски» из меню Ubuntu. Я не вижу возможности запустить самопроверку (возможно, потому, что у меня только один диск, и на нем работает Ubuntu. )
@mrówa в руководстве сказано делать это только в том случае, если «вывод плохих блоков будет передан программам e2fsck или mke2fs»
В этом ответе я буду предполагать, что накопитель отображается как блочное устройство по пути /dev/sdc . Чтобы найти путь к накопителю в нашей текущей настройке, используйте:
-
(ранее Gnome Disk Utility, также известная как palimpsest), если доступен графический интерфейс, или
- в терминале посмотрите на вывод lsblk и ls -l /dev/disk/by-id и попытайтесь найти нужное устройство по размеру, разделению, производителю и названию модели.
- обнаруживает только полностью не отвечающие медиафайлы
- почти мгновенно (если только среда не раскручивается или не ломается)
- безопасно
- работает на носителях только для чтения (например, CD, DVD, BluRay)
Иногда носитель просто отказывается работать. Он по-прежнему отображается в ядре и в диспетчере дисков как блочное устройство, но его первый сектор, содержащий таблицу разделов, не читается. Это легко проверить с помощью:
Если эта команда приводит к сообщению об «Ошибке ввода/вывода», наш диск неисправен или иным образом не может взаимодействовать с ядром Linux, как ожидалось. В первом случае, если повезет, специалист по восстановлению данных с соответствующим образом оборудованной лабораторией может спасти его содержимое. В последнем случае стоит попробовать другую операционную систему. (Я встречал USB-накопители, которые работают в Windows без специальных драйверов, но не в Linux или OS X.)
- регулируемая тщательность
- от мгновенного до медленного или более медленного (зависит от тщательности теста)
- безопасно
- предупреждает о вероятном сбое в ближайшем будущем.
Устройства, которые его поддерживают, можно проверить на предмет их работоспособности с помощью S.M.A.R.T. или проинструктированы выполнять самопроверки целостности различной степени тщательности. Как правило, это лучший вариант, но обычно он доступен только на (не старых) жестких дисках и твердотельных накопителях. Большинство съемных флэш-носителей не поддерживают его.
Дополнительные ресурсы и инструкции:
- обнаруживает только некоторые ошибки флэш-носителя
- довольно надежен для жестких дисков
- медленно
- безопасно
- работает на носителях только для чтения (например, CD, DVD, BluRay)
Чтобы проверить целостность чтения всего устройства без записи на него, мы можем использовать badblocks(8) следующим образом:
Эта операция может занять много времени, особенно если накопитель действительно поврежден. Если количество ошибок поднимется выше нуля, мы будем знать, что это плохой блок. Мы можем безопасно прервать операцию в любой момент (даже принудительно, как при сбое питания), если нас не интересует точное количество (и, возможно, расположение) плохих блоков. Можно автоматически прервать работу при ошибке с помощью опции -e 1 .
Примечание для расширенного использования: если мы хотим повторно использовать вывод для e2fsck , нам нужно установить размер блока ( -b ) равным размеру содержащейся файловой системы. Мы также можем настроить количество данных ( -c , в блоках), которые тестируются одновременно, чтобы улучшить пропускную способность; 16 МБ должно хватить для большинства устройств.
- очень тщательно
- самый медленный
- вполне безопасно (за исключением сбоев питания или периодической паники ядра)
Иногда, особенно при использовании флэш-носителей, ошибка возникает только при попытке записи. (Это не будет надежно обнаруживать (flash) носители, которые рекламируют больший размер, чем они есть на самом деле; вместо этого используйте Fight Flash Fraud.)
НИКОГДА не используйте это на диске с смонтированными файловыми системами! badblocks в любом случае отказывается работать с ними, если только вы не заставите это сделать.
Не прерывайте эту операцию принудительно! Ctrl + C (SIGINT/SIGTERM) и ожидание корректного преждевременного завершения — это нормально, а killall -9 badblocks (SIGKILL) — нет.При принудительном удалении плохие блоки не могут восстановить исходное содержимое диапазона проверенных в данный момент блоков и оставят его перезаписанным ненужными данными и, возможно, повредят файловую систему.
Чтобы использовать неразрушающие проверки чтения-записи, добавьте параметр -n к приведенной выше команде badblocks.
- очень тщательно
- медленнее
- УДАЛЕНИЕ ВСЕХ ДАННЫХ НА ДИСКЕ.
То же, что и выше, но без восстановления предыдущего содержимого диска после выполнения теста записи, поэтому немного быстрее. Поскольку данные все равно стираются, принудительное завершение остается без (дополнительных) негативных последствий.
Чтобы использовать разрушающие проверки чтения-записи, добавьте параметр -w к приведенной выше команде badblocks.
В этой статье вы узнаете, как исправить ошибки диска Linux с помощью команд fsck и xfs_repair.
Содержание:
Что такое FSCK?
Системная утилита fsck (проверка целостности файловой системы) — это инструмент для проверки целостности файловой системы в Unix и Unix-подобных операционных системах, таких как Linux, macOS и FreeBSD.
Как правило, fsck запускается либо автоматически во время загрузки, либо системным администратором вручную. Команда работает непосредственно со структурами данных, хранящимися на диске, которые являются внутренними и специфичными для конкретной используемой файловой системы, поэтому обычно требуется команда fsck, адаптированная к файловой системе. Точное поведение различных реализаций fsck различается, но обычно они следуют общему порядку внутренних операций и предоставляют пользователю общий интерфейс командной строки. (Источник: Википедия)
Рекомендуемая книга: Практическое руководство по командам, редакторам и программированию оболочки Linux, Марк Собелл и Мэтью Хелмке
Список разделов и типов дисков Linux:
Прежде всего вам необходимо определить разделы диска на вашем Linux-сервере, их соответствующие файловые системы и путь, по которому они монтируются.
С помощью консоли или ssh-клиента подключитесь к серверу Linux как пользователь root.
Вы можете выполнить команду lsblk со следующими параметрами в командной строке Linux bash, чтобы получить список необходимой информации.
Получить время последнего сканирования диска Linux:
Вы можете узнать время последнего сканирования для разделов типа Linux Ext4 с помощью следующей команды.
Сканирование и восстановление раздела диска типа Ext4:
Чтобы просканировать раздел диска Linux, вы можете использовать команду fsck (проверка целостности файловой системы). Но вы должны размонтировать этот раздел, прежде чем проверять и восстанавливать его.
После успешного размонтирования выполните команду fsck в командной строке Linux bash.
После проверки и восстановления диска Linux снова смонтируйте раздел в соответствующей точке монтирования.
Для этого выполните следующую команду Linux, чтобы смонтировать все разделы диска, перечисленные в файле /etc/fstab.
Включить сканирование разделов диска Ext4 при запуске Linux:
Чтобы включить проверку диска во время запуска Linux. Вы должны изменить параметр Mount Count для этого раздела диска.
Перезагрузите сервер Linux сейчас.
Команда Linux fsck теперь проверяет раздел диска Ext4 при запуске.
После перезагрузки получите значение Last Checked для вашего раздела диска, теперь оно покажет вам время последнего запуска Linux.
Установите параметр Mount Count, иначе сканирование диска будет выполняться при каждой загрузке Linux.
Что такое XFS_REPAIR?:
XFS — это высокопроизводительная 64-разрядная файловая система журналирования, созданная Silicon Graphics, Inc (SGI) в 1993 году. Она была файловой системой по умолчанию в операционной системе SGI IRIX, начиная с ее версии 5.3. XFS была перенесена на ядро Linux в 2001 году; по состоянию на июнь 2014 г. XFS поддерживается большинством дистрибутивов Linux, некоторые из которых используют ее в качестве файловой системы по умолчанию.
Утилита xfs_repair обладает высокой масштабируемостью и предназначена для эффективного восстановления даже очень больших файловых систем с большим количеством индексных дескрипторов. В отличие от других файловых систем Linux, xfs_repair не запускается во время загрузки, даже если файловая система XFS не была полностью размонтирована. В случае нечистого размонтирования xfs_repair просто воспроизводит журнал во время монтирования, обеспечивая согласованность файловой системы.
Сканирование и восстановление раздела диска типа XFS:
Разделы диска типа XFS имеют собственный набор команд, немного отличающийся от Ext4.
Вы должны размонтировать раздел диска XFS, прежде чем проверять его целостность.
У нас есть команда xfs_repair для проверки и исправления ошибок диска.
В некоторых дистрибутивах Linux вы также можете найти команду xfs_check. Эта команда выполняет сканирование только разделов диска типа XFS и не выполняет никакого восстановления.
Но команда xfs_check доступна не во всех дистрибутивах Linux.
Кроме того, вы можете использовать команду xfs_repair с ключом -n, чтобы получить ту же функциональность, что и у xfs_check.
Приведенная выше команда выполняет только проверку диска и не пытается исправить ошибку.
Теперь выполните команду xfs_repair без ключа -n, и она выполнит сканирование и восстановление разделов диска Linux.
Перемонтируйте раздел XFS в исходной точке монтирования, указанной в файле /etc/fstab.
Включить сканирование разделов диска XFS при запуске Linux:
В некоторых случаях вы не можете размонтировать раздел диска, если диск используется операционной системой Linux. По этой причине вам, возможно, придется отложить проверку диска до следующей загрузки системы.
Чтобы команда xfs_repair запускалась при запуске Linux, добавьте "fsck.mode=force fsck.repair=yes" в конце команды ядра меню GRUB.
Вы можете обратиться к нашему предыдущему сообщению о редактировании меню GRUB.
После запуска Linux проверьте системный журнал, чтобы проверить выполнение команды восстановления диска.
Чтобы постоянно включать проверку диска при запуске, необходимо добавить "fsck.mode=force fsck.repair=yes" в файлы конфигурации GRUB.
Отредактируйте файл конфигурации grub в текстовом редакторе vim.
Найдите параметр GRUB_CMDLINE_LINUX и добавьте «fsck.mode=force fsck.repair=yes» в конце строки.
Регенерировать конфигурации меню GRUB на основе новых параметров.
Перезагрузите операционную систему Linux, чтобы проверить новые настройки.
Вывод:
Вы успешно выполнили сканирование и восстановление разделов Linux Disk типов Ext4 и XFS.
Читайте также:
- Установка Slitaz на жесткий диск
- Сравнение процессоров amd ryzen 5 3500u и Intel Core i3 1005g1
- Оперативная память Linux
- Сговор производителей видеокарт и разработчиков игр
- Материнская плата msi b450m bazooka max wifi совместима с процессором