Fedora проверка диска на ошибки

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

Битые сектора, это повреждённые ячейки, которые больше не работают по каким либо причинам. Но файловая система всё ещё может пытаться записать в них данные. Прочитать данные из таких секторов очень сложно, поэтому вы можете их потерять. Новые диски SSD уже не подвержены этой проблеме, потому что там существует специальный контроллер, следящий за работоспособностью ячеек и перемещающий данные из нерабочих в рабочие. Однако традиционные жесткие диски используются всё ещё очень часто. В этой статье мы рассмотрим как проверить диск на битые секторы Linux.

Для поиска битых секторов можно использовать утилиту badblocks. Если вам надо проверить корневой или домашний раздел диска, то лучше загрузится в LiveCD, чтобы файловая система не была смонтирована. Все остальные разделы можно сканировать в вашей установленной системе. Вам может понадобиться посмотреть какие разделы есть на диске. Для этого можно воспользоваться командой fdisk:

sudo fdisk -l /dev/sda1

Или если вы предпочитаете использовать графический интерфейс, это можно сделать с помощью утилиты Gparted. Просто выберите нужный диск в выпадающем списке:

В этом примере я хочу проверить раздел /dev/sda2 с файловой системой XFS. Как я уже говорил, для этого используется команда badblocks. Синтаксис у неё довольно простой:

$ sudo badblocks опции /dev/имя_раздела_диска

Давайте рассмотрим опции программы, которые вам могут понадобится:

  • -e — позволяет указать количество битых блоков, после достижения которого дальше продолжать тест не надо;
  • -f — по умолчанию утилита пропускает тест с помощью чтения/записи если файловая система смонтирована чтобы её не повредить, эта опция позволяет всё таки выполнять эти тесты даже для смонтированных систем;
  • -i — позволяет передать список ранее найденных битых секторов, чтобы не проверять их снова;
  • -n — использовать безопасный тест чтения и записи, во время этого теста данные не стираются;
  • -o — записать обнаруженные битые блоки в указанный файл;
  • -p — количество проверок, по умолчанию только одна;
  • -s — показывать прогресс сканирования раздела;
  • -v — максимально подробный режим;
  • -w — позволяет выполнить тест с помощью записи, на каждый блок записывается определённая последовательность байт, что стирает данные, которые хранились там раньше.

Таким образом, для обычной проверки используйте такую команду:

sudo badblocks -v /dev/sda2 -o ~/bad_sectors.txt

Это безопасно и её можно выполнять на файловой системе с данными, она ничего не повредит. В принципе, её даже можно выполнять на смонтированной файловой системе, хотя этого делать не рекомендуется. Если файловая система размонтирована, можно выполнить тест с записью с помощью опции -n:

sudo badblocks -vn /dev/sda2 -o ~/bad_sectors.txt

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

fsck -l ~/bad_sectors.txt /dev/sda1

Если на разделе используется файловая система семейства Ext, например Ext4, то для поиска битых блоков и автоматической регистрации их в файловой системе можно использовать команду e2fsck. Например:

sudo e2fsck -cfpv /dev/sda1

Параметр позволяет искать битые блоки и добавлять их в список, -f — проверяет файловую систему, -p — восстанавливает повреждённые данные, а -v выводит всё максимально подробно.

Выводы

В этой статье мы рассмотрели как выполняется проверка диска на битые секторы Linux, чтобы вовремя предусмотреть возможные сбои и не потерять данные. Но на битых секторах проблемы с диском не заканчиваются. Там есть множество параметров стабильности работы, которые можно отслеживать с помощью таблицы SMART. Читайте об этом в статье Проверка диска в Linux.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

В моей статье «Проверка файловой системы на ошибки с помощью fsck на Linux» я расскажу как можно проверить файловую систему на вашей ОС в Linux.

Некоторым системам необходим пароль root чтобы запустить fsck или других аналогичных утилит, когда не могут загрузить полностью ОС. В этом случае –стоит выполнить проверку диска загрузившись в single-user mode , либо – загрузившись с другого диска.

Fsck расшифровывается как «файловая система Проверка целостности» (file system consistency check). На большинстве систем, Fsck запускается во время загрузки, если определенные условия.

Сам Fsck команда взаимодействует с соответствующей файловой системой конкретных FSCK команд, созданной авторами файловой системы. Независимо от типа вашей файловой системы, Fsck как правило, имеет три режима работы:

  1. Проверка на наличие ошибок и подсказывает пользователю интерактивное решение, как решить индивидуальные проблемы;
  2. Проверка на наличие ошибок и постарается автоматически исправить все ошибки;
  3. Проверка на наличие ошибок без возможности восстановить их, но тогда выдаст ошибки на стандартный вывод.

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

0 — Без ошибок (No errors ).
1 — Исправлены ошибки файловой системы(Filesystem errors corrected).
2 — Система должна быть перезагружена (System should be rebooted).
4 — Ошибки файловой системы оставили без изменений (Filesystem errors left uncorrected).
8 — Эксплуатационная ошибка (Operational error).
16 — Ошибки при использовании или синтаксические ошибки (Usage or syntax error).
32 — Fsck отменен по запросу пользователя (Fsck canceled by user request).
128 — Ошибка общей библиотеки (Shared-library error).

Код выхода возвращается, когда несколько файловых систем которая проверяется побитовое ИЛИ (OR) для каждой файловой системы, которая проверяется.

В действительности, Fsck — это просто фронт-энд для различных  проверочных утилит для файловых систем (fsck.fstype), которые доступны на Linux.

Файловая система для конкретных проверок ищет сначала в /sbin, а затем в /etc/fs и /etc/, и, наконец в директориях, перечисленных в переменной PATH (среда переменного кружения).

Прочитайте мануал для конкретных страниц проверки, например, чтобы узнать больше о конкретных проверок  для ext3 FSCK, выполните:

$ man fsck.ext3

Опции FSCK.

Основные Опции.

-l

Блокировка целого дискового устройства эксклюзивным flock. Этот параметр может быть использован только с одного устройства (это означает, что -A и -l являются взаимоисключающими). Эта опция рекомендуется, когда несколько экземпляров FSCK выполняются в то же время. Параметр игнорируется, когда используется для нескольких устройств или для невращающихся дисков. Fsck не блокируется базовые устройства при выполнении проверки сложенных устройств (например, MD или DM); эта функция еще не реализована.

-s

Сериализация FSCK операций. Это отличная идея, если вы проверяете несколько файловых систем в интерактивном режиме. (Примечание. E2fsck работает в интерактивном режиме по умолчанию. Чтобы запустить e2fsck в не-интерактивном режиме, необходимо указать -p или -a, если вы хотите чтобы все ошибки исправлялись автоматически используйте опцию -n если вы не делаете.)

-t

Задает тип (ы) файловой системы которые должны быть проверены. Когда флаг -A, используется только файловые системы, которые соответствуют fslist проверяются. Fslist параметр разделенный запятыми список файловых систем и опционов спецификаторов. Если ни один из файловых систем в fslist не начинается с оператора отрицания (OR или !), то только те, которые перечислены файловые системы будут проверены.

Опции спецификаторы могут быть включены раздельными запятыми в fslist. Они должны иметь формат opts=fs-option. Если спецификатор присутствует, то только файловые системы, которые содержат FS-option в их опциях монтирования области /etc/fstab  будут проверены. Если спецификатор используется с отрицанием, то только те файловые системы, которые не имеют FS-option в их опции монтирования области /etc/fstab будут проверены.

Например, если OPTS = ро появляется в fslist, то только файловые системы, перечисленные в/etc/fstab с возможностью ро будут проверены.

Как правило, тип файловой системы выводится с помощью функции поиска для filesys в файле /etc/fstab и используя соответствующую запись. Если тип не может быть выведен, и есть только одна файловая система в качестве аргумента для опции -t, Fsck будет использовать указанный тип файловой системы. Если этот тип не доступен, то тип по умолчанию файловая система (в настоящее время ext2) не используется.

-A

Поиск в файле /etc/fstab  и программа попытаться проверить все файловые системы за один проход. Эта опция обычно используется из файла инициализации /etc/rc, вместо нескольких команд для проверки единой файловой системы.

Корневая файловая система будет сначала проверяется, если опция -P не указана (смотрите ниже). После этого файловые системы будут проверяться в порядке, установленном в поле fs_passno (в шестом)в файле /etc/fstab. Файловые системы со значением fs_passno 0 пропускаются и не проверяются вообще. Файловые системы со значением fs_passno больше нуля будут проверены в порядке, файловых систем ( Наименьшее число в fs_passno проверяется в первую очередь).

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

Fsck не проверяет сложенные устройств (рейды, DM-склеп …) параллельно с любым другим устройством. Смотрите ниже для установки FSCK_FORCE_ALL_PARALLEL для файловой системы используется определения зависимостей между устройствами.

Таким образом, очень распространенная конфигурация в  файле /etc/fstab для установки корневой файловой системы имеет значение fs_passno из 1 и установить все другие файловые системы имеют значение fs_passno 2. Это позволит запустить проверку Fsck для автоматического запуска файловой системы параллельно.

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

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

/etc/fstab опцию монтирования nofail могут быть использованы, чтобы пропустить в Fsck несуществующие устройства. Fsck также пропускает несуществующие устройства, которые имеют особый тип файловой системы автоматически.

-C [fd]

Показать завершения / индикаторы выполнения для этих проверок файловых систем (в настоящее время только для ext2 и ext3), которые поддерживают их. Fsck будет управлять проверкой файловой системы так, что только один из них будет отображать индикатор выполнения. С графическим интерфейсом пользователя можно указать дескриптор файла fd, в этом случае информация о ходе выполнения будет отправлена в дескриптор файла.

-M

Не проверять смонтированные файловые системы и вернуть код завершения 0, для смонтированных файловых систем.

-N

Ничего не делать, просто показывает, что должно быть сделано.

-P

Когда опция -A устанавливается, то fsck проверяет корневую файловую систему параллельно с другими файловыми системами. Это не очень безопасно, чтобы делать так, т.к если корневая файловая система находится под e2fsck, то исполняемый файл может быть поврежден!

Эта опция в основном предназначены для тех администраторов, которые не хотят перераспределить корневую файловую систему, чтобы быть маленькой и компактной (на самом деле правильное решение).

-R

При проверке всех файловых систем с флагом -A, пропускать корневую файловую систему. (Это полезно в случае когда корневая файловая система уже смонтирована для чтения и записи.)

-T

Не показывать название при запуске.

-V

Подробный вывод, в том числе всех команд конкретной файловой системы , которые выполняются.

 Специальные параметры для файловой системы.

Параметры, которые не понимают FSCK передаются в файловой системе конкретной проверкой. Эти опции не должны принимать аргументы, т.к нет никакого способа для Fsck, чтобы иметь возможность должным образом угадать, какие параметры имеют аргументы, а какие нет.

Параметры и аргументы, которые следуют — рассматриваются как файловая система конкретных вариантов, которые будут переданы в файловой системе конкретной проверки.

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

Хотя не гарантируется, что следующие параметры поддерживаются большинством файловых систем:

-a

Автоматическое восстановление файловой системы без каких-либо вопросов (используйте эту опцию с осторожностью). Обратите внимание, что e2fsck поддерживает -a только для обратной совместимости. Эта опция отображается на e2fsck-х с опцией -p, которая является безопасной в использовании, в отличие от опции -a.

-n

Для некоторых файловых систем конкретных проверок, опция -n вызовет fs-specific  FSCK и тем самым данная опция говорит о отказе от попыток исправить все проблемы, но просто сообщать о таких проблемах в стандартный вывод.

В частности, fsck.reiserfs не будет сообщать любые повреждения при использовании этих варианта.

fsck.minix браузер не поддерживает параметр -n вообще.

-r

Интерактивный ремонт файловой системы (спросит подтверждение).

Примечание: Как правило, плохая идея использовать эту опцию, если несколько FSCK в настоящее время работают параллельно. Также обратите внимание, что это поведение для E2fsck по умолчанию; он поддерживает эту опцию только для причин обратной совместимости.

-y

Для некоторых файловых систем конкретная проверка,  — этот вариант вызовет fs-specific Fsck которая всегда пытаться автоматически исправить все обнаруженные и поврежденное в файловой системы. Иногда эксперт может быть в состоянии сделать лучше запустить FSCK вручную. Обратите внимание, что не все файловые системы конкретных проверок поддерживают этот вариант. В частности, fsck.minix и fsck.cramfs не поддерживают опцию -y.

Для удобства – настроим сеть:

# ifconfig eth0 inet 77.120.106.** netmask 255.255.255.0
# route add default gw 77.120.106.1 eth0

В ОС — Linux уже имеется утилита FSCK («Проверка системных файлов») для проверки файловой системы.
Синтаксис выглядит следующим образом, есть необходимость проверить и при необходимости отремонтировать одну или несколько файловых систем Linux:

# fsck Fs-Name-Here
# fsck /dev/xyz
# fsck /home
# fsck.ext3 /dev/hdc1
# fsck.ext2 /dev/flash/device/name

Fs-Name-Here -может быть одним из следующих:
Имя устройства — (e.g. /dev/hda1, /dev/sda2, /dev/md0, /dev/vg1/volume_1).
Точка монтирования — (e.g. /var, /home).
Метка ext2 — (e.g. LABEL=home ).
UUID спецификатор — (e.g. UUID=8536abf2-44c3-5a90-34b3-bfc23456f6bd).

Готовые примеры.

Во-первых, файловая система должна быть демонтирована. Вы не можете восстановить его, пока он работает, но для начала перейдем в init 1:

# init 1

Выполняем проверку, чтобы узнать какие диски и какие разделы у меня имеются:

# fdisk -l

fdisk -l

Далее, выполним проверку чтобы узнать тип файловой системы:

# file -s /dev/sda1

/dev/sda1: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (huge files)

Далее, демонтировать файловую систему, например, если это /home (/dev/sda3) файловая система введите команду:

# umount /home

Или

# umount /dev/sda1

Можно вывести, что можно выполнить для данной ФС:

# fsck -N /dev/sda1
 fsck from util-linux-ng 2.17.2
[/sbin/fsck.ext4 (1) -- /boot] fsck.ext4 /dev/sda1

Например, запустим проверку целостности ФС с исправлением всех ошибок в автоматическом режиме:

# fsck.ext4 -y /dev/sda1
e2fsck 1.41.12 (17-May-2010)
/dev/sda1 is mounted.
e2fsck: Cannot continue, aborting.

У меня данный раздел примонтирован, нужно его отмонтировать и выполнить заново данную команду:

# umount /dev/sda1

Отмонтировали, теперь выполняем проверку:

# fsck.ext4 -y /dev/sda1

Вот что получили:

e2fsck 1.41.12 (17-May-2010)
/dev/sda1: clean, 64/128016 files, 148908/512000 blocks

Наконец, запустите FSCK на разделе, введите следующую команду:

# fsck /dev/sda3

Однако не забудьте указать тип файловой системы, используя опцию -t.  Fsck по умолчанию предполагает, файловую систему ext2:

# fsck -t ext3 /dev/sda3

Или для ext3:

# fsck.ext3 /dev/sda3

Или для ext4:

# fsck.ext4 /dev/sda5

Если вы не знаете, какай тип файловой системы у вас, то выполните команду которая будет отображать тип монтирования файловой системы:

$ mount

Если какие-либо файлы восстановлены, то они размещаются в /home/lost+found, FSCK команды.

Переходим (используем) на multiuser mode, выполнив:

# init 3

Автоисправление файловая системы при обнаружении ошибок

В ходе проверки файловой системы, если ошибки обнаружены, вы можете получить «FSCK», чтобы отремонтировать в автоматическом режиме вашу файловую систему, нужно к команде добавить флаг «-a». Например:

$ fsck -a /dev/sda1

Аналогично, используя флаг «-y» можете получить такую же работу:

# fsck -y /dev/sda1

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

Если есть несколько файловых систем на вашем ПК, то можно проверить все, выполнив команду fsck с флагом «-А». Пример:

# fsck -A

Что он будет делать, чтобы захватить все записи файловой системы с /etc/fstab и сканировать их на наличие ошибок. Вы можете использовать его вместе с «-R» и флагом «-y», чтобы предотвратить его сканирования файловую систему root и исправить все ошибки, если оно имеется:

# fsck -AR -y

 Исключение проверки на смонтированной файловой системе

Как упоминалось ранее, Fsck не может быть запущен на смонтированной файловой системе. Если вы используете флаг -A для проверки всех файловых систем, и некоторые из них установлены, вы можете повредить эти файловые системы.Способ преодолеть это использовать флаг «-M», чтобы предотвратить его от проверки в установленной системы.

Например, выполнив команду

# fsck -M /dev/sdc1

ничего не возвращает и код возврата 0 (означает «нет ошибки»). Сканирования не было сделано вообще, так как все файловые системы монтируются. По этому, нужно отмонтировать данный раздел и выполнить команду заново.

Определение типа файловой системы

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

$ fsck -t ext4 /dev/sdc1

будет сканировать внешний жесткий диск, только если он находится в формате ext4. Кроме того, вы можете комбинировать с флагом «-A» для сканирования всех файловых систем определенного типа:

$ fsck -A -t ext4 -y

Force fsck  запуск каждый раз при загрузке

По умолчанию, в Ubuntu будет работать FSCK после каждых 30 bootups, но если вы хотите, чтобы система выполняла «FSCK» каждый раз когда она загружается, то все что вам нужно сделать, это создать пустой файл «звонок» «forcefsck» и поместите его в корневую папку. Это уведомит ОС,  о там чтобы она выполнила «FSCK»  и начала проверять файловую систему каждый раз во время загрузки:

$ sudo touch /forcefsck

Чтобы изменить частоту проверки, вы можете использовать команды «tune2fs». Следующая команда дает указание системе запустить «FSCK» после каждых 30 загрузок:

# tune2fs -c 30 /dev/sdaX

Или можно использовать опцию «-f» :

# fsck /dev/sda1 -f

Избегать ремонта, но сообщать о проблемах на стандартный вывод с помощью опции -n

Можно печатать все обнаруженные проблемы в стандартный вывод без ремонта в файловой системе, используя FSCK с опцией «-n»:

# fsck -n /dev/sda1

Использование FSCK с графическим интерфейсом 

Для Debian/Ubuntu/Mint можно установить программу:

$ sudo apt-get install gparted

На этом, моя статья «Проверка файловой системы на ошибки с помощью fsck на Linux» подошла к завершению.

There are terminal utilities available in Linux which can help you to manage hard disk bad sectors. You can scan and mark them as unusable as well using these utilities.

Bad sectors or bad blocks are damaged portion of your mechanical hard disk drive which can not be used at all for data storing purposes. However, the operating system still can write to those sectors unless you specifically mark them as ‘bad’ or unusable. Also if you have data stored in those areas of the hard drive, it is very difficult to recover those as well.

Although, the latest computer storage technology such as SSD, etc almost eliminates this problem. However, there is still a huge number of hard disk drives in use today which is aging and might slowly start having bad sectors. 

Hence, you should periodically scan your hard drive (especially aging ones) for bad sectors if you feel your system is slowing down, or, disk IO is increasing. In Linux (Ubuntu, Fedora, and other distributions), you can easily do this via below terminal commands. 

How to Manage Disk Bad Sectors in Linux

It is better to run below commands when your disk is not mounted with the operating system. Hence I would suggest, you try this using LIVE operating system boot from a USB stick. You can create a LIVE USB using this guide with any Linux operating system of your choice (recommended: Ubuntu).

However, you can still run these commands in your installed Linux distribution but you should not scan or mark the mounted “/” root filesystem.

Scan for Bad Sectors

As a first step, identify the disk partition which you want to scan for bad sectors. If you have GParted installed, it is easy to find out. Otherwise, you can run below command (lsblk – List block devices) to view your disk partitions. 

sudo lsblk -o name,mountpoint,label,size,uuid

If you are running above command via LIVE USB, make sure you can identify your HDD and USB stick. Typically HDD should be defined as /dev/sda.

Then you can run badblocks command as below with the verbose (-v) switch. And save the output to a text file for further investigation. This is just a verification whether you have bad sectors in the hard drive or not. 

sudo badblocks -v /dev/sda1 > ~/bad_sectors.txt

Repair Bad Sectors

For ext2, ext3, and ext4 file systems, you can use e2fsck utility to check and repair bad sectors. In the terminal run below command with admin privilege to check and repair. 

sudo e2fsck -cfpv /dev/sda1

Make sure to replace sda1 with the proper device identifier. The parameters “c” searches for bad blocks and add it to a list, “f” does a check on the file system. The “p” parameter repairs anything if possible and “v” is the verbose mode which gives you the terminal output of the command progress.

You can also specify the bad_sectors.txt file created in the earlier steps as well to force e2fsck to repair those in the file only via the below command.

sudo e2fsck -l bad_sectors.txt /dev/sda1

For other file systems (such as FAT32), you can use fsck.

sudo fsck -l bad_sectors.txt /dev/sda1

However, the above command execution might take several hours to run depending on your disk partition size and health of your disk. So be ready before you start the command. Try not to terminate the command via CTRL+C or CTRL+Z while it is in progress. 

I hope this tutorial helped you to identify issues in your hard drive and mark them as bad to prevent further data loss. Remember that even if you mark the sectors as ‘bad’, the disk is still physically damaged already. It is merely a software fix to mark those tracks as bad to tell the operating system not to access. If your hard disk started having bad sectors, in the long run, it would become worse. Hence is it recommended that you should start backing up your data and replace your hard drive with a new one or go for the latest SSD drives.

Welcome, FOSS Linux readers, to this comprehensive guide on checking hard disks in Linux using the fsck command! As a passionate Linux user myself, I understand the importance of maintaining a healthy and error-free storage system. In this article, we will explore the fsck utility, its significance in disk maintenance, and how to utilize it effectively. So, let’s dive in!

Understanding fsck

The fsck command, short for “file system consistency check,” is a powerful utility that helps detect and repair errors in file systems. It is particularly useful for analyzing and correcting inconsistencies, ensuring the integrity of your hard disk.

Viewing the list of partitions

viewing list of partitions using lsblk

Viewing list of partitions using lsblk

Before running fsck on a specific partition, it is essential to identify the correct device name corresponding to that partition. To view the list of partitions on your Linux system, you can utilize the lsblk command. This command provides a convenient way to visualize the block devices, including disks and partitions, in your system.

Here’s how you can view the list of partitions using lsblk:

Step 1: Open a terminal on your Linux system.

Step 2: Enter the following command:

lsblk

Step 3: The output will display a tree-like representation of the block devices and their corresponding partitions, including their device names, sizes, mount points, and other relevant information. Analyze the output to identify the partition you wish to check using fsck. This is why I recommend lsblk over the fdisk command. Incase you system doesn’t have lsblk installed, you can easily install it using the following commands:

Here are the commands to install lsblk on a few popular Linux distributions:

Debian and Ubuntu:

sudo apt-get update
sudo apt-get install util-linux

CentOS and Fedora:

sudo yum install util-linux

Arch Linux:

sudo pacman -Syu util-linux

openSUSE:

sudo zypper install util-linux

These commands will install the util-linux package, which includes the lsblk command, on your system. After the installation, you should be able to use lsblk to view the list of partitions.

Example output:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 250G 0 disk
├─sda1 8:1 0 100G 0 part /
├─sda2 8:2 0 50G 0 part /home
└─sda3 8:3 0 100G 0 part /data

In this example, the output shows the device name /dev/sda1 corresponding to the partition mounted as the root directory (“/”), /dev/sda2 corresponding to the partition mounted as “/home,” and /dev/sda3 corresponding to the partition mounted as “/data.”

By using the lsblk command, you can easily identify the device names associated with the partitions in your system. This knowledge is crucial for running fsck on the desired partition and ensuring accurate disk checks and repairs.

Now that you have obtained the necessary information about your partitions, let’s proceed with running fsck on the selected partition.

Different Linux distributions and fsck

Linux comes in various flavors, each with its own package management system. Let’s take a closer look at how to utilize fsck on three popular distributions: Debian, Arch Linux, and RPM-based distros.

Debian

Debian-based distributions, such as Ubuntu and Linux Mint, rely on the Advanced Packaging Tool (APT) for package management. To check your hard disk using fsck on Debian, follow these steps:

Step 1: Open a terminal.
Step 2: Type the following command to check the file system on the next boot:

sudo touch /forcefsck

Step 3: Reboot your system, and fsck will automatically scan your hard disk during the boot process.

Arch Linux

Arch Linux, known for its simplicity and flexibility, utilizes the Pacman package manager. To perform a hard disk check using fsck on Arch Linux, proceed as follows:

Step 1: Open a terminal.
Step 2: Enter the command below to unmount the desired partition:

sudo umount /dev/[partition]

Note: Replace [partition] with the actual partition name, such as /dev/sda1.

Step 3: Run the fsck command with the appropriate options:

sudo fsck -f /dev/[partition]

The -f option forces fsck to scan the partition even if it appears clean.

Step 4: After fsck completes its analysis, you will receive a report on any detected errors or inconsistencies.

RPM-based Distros

RPM-based distributions like Fedora and CentOS use the Yellowdog Updater Modified (yum) or Dandified yum (dnf) package managers. To check your hard disk using fsck on RPM-based distros, follow these steps:

Step 1: Open a terminal.
Step 2: Type the following command to unmount the desired partition:

sudo umount /dev/[partition]

Step 3: Execute the fsck command with the appropriate options:

sudo fsck -a /dev/[partition]

The -a option automatically repairs detected errors without user intervention.

Step 4: Once fsck completes the scan, it will display the results, including any repaired errors.

As a Linux user, I appreciate the flexibility and control it offers. The ability to utilize fsck to ensure the stability and reliability of my hard disk is invaluable. However, it’s important to note that the process can be time-consuming, especially for larger storage systems. Patience is key!

Wait, can I run fsck in the Terminal?

In addition to the option of performing a disk check during the boot process, fsck can also be executed directly within the terminal. This method allows for a more thorough analysis of the file system, as it can be performed on an unmounted partition. However, it is crucial to ensure that the file system is unmounted before running fsck to avoid data corruption. Here’s how you can run fsck in the terminal:

Step 1: Open a terminal on your Linux system.

Step 2: Ensure that the file system you want to check is unmounted. You can use the umount command to unmount the desired partition. For example:

sudo umount /dev/[partition]

Replace [partition] with the actual partition name, such as /dev/sda1.

For example, we will assume that /dev/sda1 is already unmounted. If it is mounted, you can use the following command to unmount it:

sudo umount /dev/sda1

Step 3: Run the fsck command with the appropriate options to check the file system. The exact syntax may vary depending on your Linux distribution and file system type. Generally, you would use a command like:

sudo fsck -f /dev/[partition]

The -f option forces fsck to scan the partition even if it appears clean. Again, replace [partition] with the actual partition name.

As an example, for ext4 file systems, you can use the following command:

sudo fsck.ext4 -f /dev/sda1

Step 4: fsck will begin analyzing the file system and display any errors or inconsistencies it detects. It may prompt you to confirm repairs or require your intervention in certain cases.

Step 5: Once fsck completes the analysis and any necessary repairs, it will provide a report indicating the actions taken and the current status of the file system.

Here is an example output from fsck:

fsck from util-linux 2.36.1
e2fsck 1.46.3 (27-Jul-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: X/Y files (Z/Z blocks)

Filesystem errors were corrected successfully.

In this example, fsck checks the ext4 file system on /dev/sda1 and reports that it corrected filesystem errors successfully.

Running fsck in the terminal allows you to perform a detailed analysis of unmounted file systems and address any issues that may be present, helping to maintain the health and integrity of your storage devices.

Advanced uses of fsck

While fsck is commonly used to check and repair file systems, it offers several advanced options that can be useful in specific scenarios. Let’s explore some of these advanced uses of fsck to enhance your disk maintenance capabilities.

1. Force a file system check on every boot

By default, most Linux distributions perform file system checks periodically or based on specific criteria. However, you can use fsck to force a file system check on every boot. This can be particularly helpful when you suspect persistent issues with your file system. To enable this option, follow these steps:

Step 1: Open a terminal.
Step 2: Edit the /etc/fstab file using a text editor with root privileges, such as:

sudo nano /etc/fstab

Step 3: Locate the entry for the file system you want to check and add the fsck.mode=force option to the options column. For example:

/dev/sda1 / ext4 errors=remount-ro 0 1

becomes:

/dev/sda1 / ext4 errors=remount-ro,fsck.mode=force 0 1

Step 4: Save the changes and exit the text editor.
Step 5: The next time you boot your system, fsck will automatically run a file system check on the specified partition.

2. Repair file system automatically

By default, fsck prompts for user intervention when it encounters errors during a file system check. However, you can use the -y option to automatically repair the file system without any user interaction. Be cautious when using this option, as it can potentially lead to data loss. To automatically repair file system errors, use the following command:

sudo fsck -y /dev/[partition]

Replace [partition] with the actual partition name.

3. Specify file system type

In some cases, fsck may not be able to automatically determine the file system type. You can use the -t option to explicitly specify the file system type. For example, to check an ext4 file system, you can use the following command:

sudo fsck -t ext4 /dev/[partition]

Replace [partition] with the actual partition name.

4. Check multiple partitions simultaneously

If you want to check multiple partitions simultaneously, you can specify them as arguments to the fsck command. For example:

sudo fsck /dev/sda1 /dev/sdb1

This command will run fsck on both /dev/sda1 and /dev/sdb1 concurrently, saving time when dealing with multiple partitions.

By leveraging these advanced features of fsck, you can further tailor your disk maintenance and repair procedures to suit your specific needs.

Applicability for HDDs and SSDs

The tutorial presented in this guide is applicable to both Hard Disk Drives (HDDs) and Solid-State Drives (SSDs). While there are some differences between the underlying technologies of these storage devices, the process of checking the file system using fsck and ensuring its integrity is relevant for both HDDs and SSDs. Let’s explore why this tutorial is beneficial for both types of drives:

File system consistency: Regardless of whether you have an HDD or an SSD, maintaining a consistent and error-free file system is crucial for the stability and reliability of your Linux system. By using fsck to check and repair file system inconsistencies, you can identify and rectify issues that may cause data corruption or system instability on both types of drives.

Detecting errors: Both HDDs and SSDs can experience errors in the file system due to various factors such as power outages, improper shutdowns, or hardware failures. Running fsck enables you to detect and resolve these errors, ensuring the integrity of your data and preventing potential issues from escalating on both types of drives.

Performance optimization: Regular disk checks using fsck can help optimize the performance of both HDDs and SSDs. By identifying and repairing file system errors, you can improve read and write speeds, reduce disk fragmentation, and enhance overall system responsiveness for both drive types.

Longevity considerations: While SSDs have a limited number of write cycles compared to HDDs, occasional disk checks using fsck are still beneficial for maintaining the file system’s health on SSDs. While it’s important to be mindful of unnecessary writes and excessive disk checks on SSDs to preserve their lifespan, performing periodic file system checks can help identify and address any underlying issues that may affect the drive’s performance and longevity.

Manufacturer-specific tools: While this tutorial focuses on the general usage of fsck, it’s worth noting that some SSD manufacturers and Linux distributions provide specialized tools or utilities for managing and maintaining SSDs. These tools may offer specific optimizations and features tailored to SSDs, such as wear-leveling algorithms or TRIM support. In such cases, it is recommended to refer to the documentation provided by your SSD manufacturer or the specific Linux distribution you are using for any additional guidance on SSD maintenance.

Best practices and additional tips

To ensure a smooth and successful hard disk check using fsck, consider the following best practices:

Backup your data: Before initiating a disk check, it’s essential to back up your important data. Although fsck is generally safe to use, there is always a small chance of data loss or further disk corruption. By having a backup, you can restore your data in case of any unforeseen issues.

Schedule regular checks: Prevention is better than cure. To maintain a healthy disk, it is recommended to schedule regular checks using fsck. This proactive approach can help detect and resolve potential issues before they escalate.

Use live CDs or USBs: If you encounter problems with your root file system, it is often easier to perform a disk check using a live CD or USB. This allows you to unmount the affected partition and run fsck without any interference from the operating system.

Take note of error messages: During the fsck process, pay close attention to any error messages or warnings displayed. These messages can provide valuable insights into the nature of the issues detected and guide you towards the appropriate actions for resolution.

Conclusion

In this comprehensive guide, we have delved into the world of checking hard disks in Linux using the powerful fsck command. By understanding the purpose and significance of fsck, as well as its usage on different Linux distributions such as Debian, Arch Linux, and RPM-based systems, we have equipped ourselves with the knowledge and tools to effectively maintain the integrity of our file systems.

We have learned how to utilize fsck both during the boot process and within the terminal, with detailed step-by-step instructions for each method. Additionally, we explored advanced uses of fsck, including forcing file system checks on every boot, automatically repairing file systems, specifying file system types, and checking multiple partitions simultaneously. These advanced options provide a deeper level of control and customization for disk maintenance.

Throughout the article, I have also emphasized the importance of backups, regular disk checks, and the need to exercise caution when making repairs. By following best practices, such as scheduling regular checks, taking note of error messages, and seeking professional assistance when necessary, we can ensure the stability and reliability of our storage systems.

Common disk errors include physical failures, bad sectors or blocks, and inconsistent filesystems, which can lead to various problems. Diagnosing these issues in Linux can be done using built-in command line tools.

The disk must not be mounted when performing these tests. If it’s necessary to check the root filesystem and it cannot be unmounted due to logged-in users, you can boot into a live Linux system, such as the Ubuntu installer disk. This method is also helpful for recovering partition tables.

Steps to scan for disk error and bad sector in Linux:

  1. Open the terminal application.

  2. Display the list of available disks on your system.

    $ lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    loop0    7:0    0 55.4M  1 loop /snap/core18/1997
    loop1    7:1    0  219M  1 loop /snap/gnome-3-34-1804/66
    loop2    7:2    0 64.8M  1 loop /snap/gtk-common-themes/1514
    loop3    7:3    0 32.3M  1 loop /snap/snapd/11588
    loop4    7:4    0   51M  1 loop /snap/snap-store/518
    loop5    7:5    0 65.1M  1 loop /snap/gtk-common-themes/1515
    sda      8:0    0   20G  0 disk 
    ├─sda1   8:1    0    1M  0 part 
    ├─sda2   8:2    0  513M  0 part /boot/efi
    └─sda3   8:3    0 19.5G  0 part /
    sdb      8:16   0   20G  0 disk /mnt/data
    sr0     11:0    1 1024M  0 rom
  3. Ensure the disk you wish to examine is unmounted.

    $ sudo umount /dev/sdb
    [sudo] password for user:
  4. Assess the disk’s S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) health status using smartctl.

    $ sudo smartctl -H /dev/sdb
    smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.11.0-16-generic] (local build)
    Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
    
    === START OF READ SMART DATA SECTION ===
    SMART Health Status: OK
  5. Examine the filesystem consistency on the disk with fsck.

    $ sudo fsck /dev/sdb
    fsck from util-linux 2.36.1
    e2fsck 1.45.7 (28-Jan-2021)
    /dev/sdb: clean, 11/1310720 files, 126322/5242880 block
  6. Inspect the disk for bad blocks or bad sectors using badblocks.

    $ sudo badblocks -v /dev/sdb
    Checking blocks 0 to 20971519
    Checking for bad blocks (read-only test): done                                                 
    Pass completed, 0 bad blocks found. (0/0/0 errors)

Discuss the article:

Comment anonymously. Login not required.

Понравилась статья? Поделить с друзьями:
  • Fee pool error ошибка
  • Ffr 00033 03 ошибка ман tgl
  • Fee nikon ошибка d90
  • Fedsfm ru ошибка 403
  • Fiat albea ошибка min oil press