Проверка и восстановление жесткого диска в Linux

Обновлено: 24.11.2024

Плохой сектор на жестком диске — это физическая проблема. Если начинают появляться битые сектора, пора менять жесткий диск. Каждая ОС имеет свои собственные инструменты для сканирования и исправления поврежденных секторов. Например, в Windows есть приложение chkdsk. Здесь мы обсудим, как исправить поврежденные сектора в Linux.

  1. Загрузите Ubuntu ISO и запишите его на CD, DVD или USB-накопитель. Если у вас есть другой Live CD с Linux, он тоже подойдет.
  2. Загрузите систему с компакт-диска или USB-накопителя, созданного на шаге 1.
  3. Откройте окно терминала.
  4. Выполните команду fdisk -l, чтобы узнать имена жестких дисков и разделов.
  5. Введите следующую команду, чтобы запустить приложение для исправления поврежденных секторов. Примечание. Эта команда требует привилегий sudo. Замените sda1 на имя устройства раздела, найденное на шаге 4.

sudo e2fsck -cfpv /dev/sda1

Параметры имеют следующие значения: «c» ищет поврежденные блоки и добавляет их в список, «f» принудительно проверяет файловую систему, «p» восстанавливает все, что можно безопасно восстановить, а «v» подробный режим, чтобы вы могли видеть ход выполнения команды.

Выполнение этой команды может занять много времени, даже несколько часов на особенно большом диске.

Извлеките компакт-диск с операционной системой Linux или загрузочный USB-накопитель и перезагрузите систему.

12 мыслей о «Исправить поврежденные сектора жесткого диска в Linux»

Сколько времени потребовалось для выполнения команды sudo e2fsck -cfpv /dev/sda1?
Я вижу, что сканируемый и исправленный раздел составляет 927 ГБ. У меня такой же размер.

Адам, пожалуйста, не вините автора за ваше невежество в этом вопросе.
$ fdisk -l
«Перечислит» для вас все физические устройства, подключенные к вашей файловой системе, и для каждого из них разделы (логические устройства).
– /dev/loop* — это виртуальные устройства, такие как RAM-диск, о них никогда не нужно беспокоиться.
– Затем вы видите там два физических устройства:
– sda с одним основным разделом (тип 83, что означает, что это может быть ext2/3/4) и расширенным разделом с логическим внутри для Обмен линуксом.
– sdb, с одним основным разделом FAT32.
Вы используете эту команду, чтобы узнать свои разделы, чтобы вы могли выбрать, что вам нужно проанализировать, в примере корневой, /dev/sda1..
Надеюсь, это поможет, независимо от времени..

Почему автор говорит использовать e2fsck вместо fsck, как автор предположил файловую систему ext2 в 2018 году?

справочная страница говорит: e2fsck — проверить файловую систему Linux ext2/ext3/ext4

Суперблок не может быть прочитан или не описывает допустимую файловую систему ext2/ext3/ext4
. Если устройство допустимо и оно действительно содержит файловую систему
ext2/ext3/ext4 (а не swap, ufs или что-то еще), то суперблок
поврежден, и вы можете попробовать запустить e2fsck с альтернативным суперблок:
e2fsck -b 8193
или
e2fsck -b 32768

Алекс: Эта ошибка может быть вызвана поврежденной файловой системой, но также может быть вызвана попыткой запустить e2fsck (например) в файловой системе NTFS. «fsck» должен выяснить, какая у вас файловая система, и запустить соответствующую программу. См. справочную страницу.

Что делать, если устройство используется?

Могу ли я использовать его для удаления жира?
или я могу восстановить плохие блоки и отформатировать раздел в exfat или другой формат?

это работает на ssd с битлоком??

$ sudo e2fsck -cfpv /dev/sda

e2fsck: неверное магическое число в суперблоке при попытке открыть /dev/sda
/dev/sda:
не удалось прочитать суперблок или не описывает действительный ext2/ext3/ext4
файловая система. Если устройство допустимо и оно действительно содержит файловую систему
ext2/ext3/ext4 (а не swap, ufs или что-то еще), то суперблок
поврежден, и вы можете попробовать запустить e2fsck с альтернативным суперблок:
e2fsck -b 8193
или
e2fsck -b 32768

Кто-нибудь может сказать мне, что происходит с ssd?

Сначала необходимо отформатировать диск в файловой системе Linux. Для этого можно использовать приложение «Диски», не обязательно делать это в Терминале.

В этой статье вы узнаете, как исправить ошибки диска 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.

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

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

Следовательно, вам следует периодически сканировать жесткий диск (особенно устаревшие) на наличие поврежденных секторов, если вы чувствуете, что ваша система работает медленнее или объем дискового ввода-вывода увеличивается. В Linux (Ubuntu, Fedora и других дистрибутивах) это легко сделать с помощью приведенных ниже команд терминала.

Как управлять поврежденными секторами диска в Linux

Команды ниже лучше запускать, когда ваш диск не смонтирован с операционной системой. Поэтому я бы посоветовал вам попробовать это, используя LIVE загрузку операционной системы с USB-накопителя. Используя это руководство, вы можете создать LIVE USB с любой операционной системой Linux по вашему выбору (рекомендуется: Ubuntu).

Однако вы все еще можете запускать эти команды в установленном дистрибутиве Linux, но вам не следует сканировать или помечать смонтированную корневую файловую систему «/».

Сканирование на наличие поврежденных секторов

В качестве первого шага определите раздел диска, который вы хотите просканировать на наличие поврежденных секторов. Если у вас установлен GParted, это легко узнать. В противном случае вы можете запустить приведенную ниже команду (lsblk — Список блочных устройств), чтобы просмотреть разделы вашего диска.

Если вы запускаете указанную выше команду через LIVE USB, убедитесь, что вы можете идентифицировать жесткий диск и USB-накопитель. Обычно жесткий диск определяется как /dev/sda .

Затем вы можете запустить команду badblocks, как показано ниже, с подробным описанием (-v). И сохраните вывод в текстовый файл для дальнейшего изучения. Это всего лишь проверка, есть ли у вас сбойные сектора на жестком диске или нет.

Исправить поврежденные сектора

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

Обязательно замените sda1 правильным идентификатором устройства. Параметры «с» ищет плохие блоки и добавляет их в список, «f» выполняет проверку файловой системы. Параметр «p» исправляет что-либо, если это возможно, а «v» — это подробный режим, который дает вам вывод терминала о ходе выполнения команды.

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

Для других файловых систем (например, FAT32) можно использовать fsck.

Однако выполнение вышеуказанной команды может занять несколько часов в зависимости от размера раздела и состояния диска. Так что будьте готовы, прежде чем начать команду. Старайтесь не прерывать команду с помощью CTRL+C или CTRL+Z во время ее выполнения.

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

Мы публикуем последние новости о технологиях, программном обеспечении и многое другое. Оставайтесь на связи через Telegram, Twitter, YouTube и Facebook и никогда не пропустите обновления!

Утилита 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.

Читайте также: