- How to Check Bad Sectors or Bad Blocks on Hard Disk in Linux
- Check Bad Sectors in Linux Disks Using badblocks Tool
- Scan Bad Sectors on Linux Disk Using Smartmontools
- Проверяем диск на битые секторы в Linux
- Что такое битый сектор?
- Зачем нужна проверка диска?
- Программы для проверки диска
- Badblocks
- SMARTMONTOOLS
- Gparted
- Заключение
- How to check disk errors in Linux
- Steps to scan for disk error and bad sector in Linux:
How to Check Bad Sectors or Bad Blocks on Hard Disk in Linux
Let us start by defining a bad sector/block, it’s a section on a disk drive or flash memory that can not be read from or written to anymore, as a result of a fixed physical damage on the disk surface or failed flash memory transistors.
As bad sectors continue to accumulate, they can undesirably or destructively affect your disk drive or flash memory capacity or even lead to a possible hardware failure.
It is also important to note that the presence of bad blocks should alert you to start thinking of getting a new disk drive or simply mark the bad blocks as unusable.
Therefore, in this article, we will go through the necessary steps that can enable you determine the presence or absence of bad sectors on your Linux disk drive or flash memory using certain disk scanning utilities.
That said, below are the methods:
Check Bad Sectors in Linux Disks Using badblocks Tool
A badblocks program enables users to scan a device for bad sectors or blocks. The device can be a hard disk or an external disk drive, represented by a file such as /dev/sdc.
Firstly, use the fdisk command with superuser privileges to display information about all your disk drives or flash memory plus their partitions:
Then scan your Linux disk drive to check for bad sectors/blocks by typing:
$ sudo badblocks -v /dev/sda10 > badsectors.txt
In the command above, badblocks is scanning device /dev/sda10 (remember to specify your actual device) with the -v enabling it to display details of the operation. In addition, the results of the operation are stored in the file badsectors.txt by means of output redirection.
In case you discover any bad sectors on your disk drive, unmount the disk and instruct the operating system not to write to the reported sectors as follows.
You will need to employ e2fsck (for ext2/ext3/ext4 file systems) or fsck command with the badsectors.txt file and the device file as in the command below.
The -l option tells the command to add the block numbers listed in the file specified by filename (badsectors.txt) to the list of bad blocks.
------------ Specifically for ext2/ext3/ext4 file-systems ------------ $ sudo e2fsck -l badsectors.txt /dev/sda10 OR ------------ For other file-systems ------------ $ sudo fsck -l badsectors.txt /dev/sda10
Scan Bad Sectors on Linux Disk Using Smartmontools
This method is more reliable and efficient for modern disks (ATA/SATA and SCSI/SAS hard drives and solid-state drives) which ship in with a S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology) system that helps detect, report and possibly log their health status, so that you can figure out any impending hardware failures.
You can install smartmontools by running the command below:
------------ On Debian/Ubuntu based systems ------------ $ sudo apt-get install smartmontools ------------ On RHEL/CentOS based systems ------------ $ sudo yum install smartmontools
Once the installation is complete, use smartctl which controls the S.M.A.R.T system integrated into a disk. You can look through its man page or help page as follows:
Now execute the smartctrl command and name your specific device as an argument as in the following command, the flag -H or —health is included to display the SMART overall health self-assessment test result.
The result above indicates that your hard disk is healthy, and may not experience hardware failures any soon.
For an overview of disk information, use the -a or —all option to print out all SMART information concerning a disk and -x or —xall which displays all SMART and non-SMART information about a disk.
In this tutorial, we covered a very important topic concerning disk drive health diagnostics, you can reach us via the feedback section below to share your thoughts or ask any questions and remember to always stay connected to Tecmint.
Проверяем диск на битые секторы в Linux
Для хранения и обработки информации на рабочей станции используются носители HDD либо SSD. Владельцы записывают на них фото, видео, любимые книги, игры и т.д. Но что делать, если диск выдает ошибки или, хуже того, не читается операционной системой? Статья расскажет о том, как проверить жесткий диск на битые секторы в ОС семейства Linux. В качестве примера возьмем Ubuntu 18.04.3.
Что такое битый сектор?
Для начала разберёмся, что это за проблема – битый сектор. Сектор представляет собой микроэлемент на носителе, который отвечает за операции чтения/записи. Понятие «битый» применятся к элементу в том случае, если он перестал реагировать на запросы операционной системы.
Различают два типа повреждений: физическое и логическое. В первом случае подразумевается, что сектор вышел из строя из-за механических поломок или физических повреждений: например, его повредила головка носителя, жесткий упал на твердую поверхность, в него попала влага и т.д.
К логическим повреждениям относят сектора, которые ОС не читает. При обращении к ним возникает ошибка, поэтому они отмечаются как битые. Хорошая новость в том, что логические ошибки исправляются.
Зачем нужна проверка диска?
Проверка носителя в ряде случаев исправляет ошибки, что восстанавливает работоспособность рабочей станции до предыдущего состояния. Любая ОС имеет программный инструмент для определения состояния дисков, но сторонние производители предлагают более функциональные решения.
Программы для проверки диска
Расскажем про некоторые программы для Linux-систем.
Badblocks
Битые сектора в английском языке называют badblocks, отсюда и название утилиты. Она интегрирована в любой релиз Linux. Перед ее запуском определимся с количеством HDD, доступных в ОС. Наберем в терминале:
sudo fdisk -l
Информация представлена в виде списка с подробным описанием каждого раздела.
Теперь запустим приложение для исправления ошибок.
sudo badblocks -v /dev/sda1 > badsectors.txt
Синтаксис расшифровывается следующим образом:
- Badblocks -v. Утилита после операции выдает подробную информацию.
- /dev/sda1 – раздел, приложение проверяет.
- badsectors.txt – файл, в который утилита отправляет результат проверки. Имя придумывается произвольное.
Если при проверке найдены битые сектора, то воспользуемся утилитой в зависимости от типа файловой системы. В большинстве случаев для домашней ОС семейства Linux использует файловую структуру Ext. Для нее подходит приложение e2fsck. Если же ОС использует другой тип, то воспользуемся альтернативой – fsck.
По умолчанию оба варианта интегрированы в ОС.
Вводим в терминале команду:
sudo e2fsck -l badsectors.txt /dev/sda1
sudo fsck -l badsectors.txt /dev/sda1
Ключ -I означает, что утилита собирает сведения о поврежденных секторах из файла badsectors.txt, а после пробует исправить их.
SMARTMONTOOLS
Второй способ проверки жесткого диска – приложение Smartmontools. Оно работает со встроенной микропрограммой на жестких дисках под названием S.M.A.R.T, которая во время старта компьютера автоматически проверяет носитель на наличие ошибок и проблем.
Программа не входит в состав стандартного программного обеспечения, поэтому проинсталлируем ее:
sudo apt-get install smartmontools
После инсталляции запускаем приложение с правами администратора:
sudo smartctl -H /dev/sda1
ПО возьмет результаты проверки из S.M.A.R.T и отобразит в терминале для пользователя.
Если необходимо использовать дополнительные функции программы, то используем ключ man:
man smartctl
Например, для отображения подробной информации о жестком диске используем ключ –a или –all.
Gparted
Третий метод проверки – программа для разбивки носителя под названием Gparted. Для ее инсталляции вводим:
sudo apt-get install gparted
Установка займет максимум две минуты.
Важно! Запускаем ПО с правами администратора для получения доступа к расширенному функционалу.
Проверка диска
Нажимаем правой кнопкой мыши на логическом томе, выбираем раздел «Проверка» (Check). В нижней строке появится информация о запланированной операции.
Выполнение операций в программе
Нажимаем иконку, которая отмечена синей стрелкой на изображении выше, чтобы выполнить проверку. Процесс может занять несколько часов.
Важно! Проверка и другие аналогичные действия выполняются только на неактивном логическом томе.
Если битые сектора возникают на системном диске, то используем загрузочную флэшку для запуска Live Ubuntu. В результате создается виртуальный жесткий диск с ОС Ubuntu.
Заключение
Публикация рассказала о том, как проверить жесткий диск в ОС семейства Linux на наличие поврежденных секторов. Предложены способы исправления.
How to check disk errors in Linux
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:
$ 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
$ sudo umount /dev/sdb [sudo] password for user:
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
$ 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
$ 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)