- Проверка жесткого диска на плохие сектора и блоки в Linux
- Проверка диска на плохие сектора с помощью утилиты badblocks
- Поиск плохих секторов в Linux Disk с помощью Smartmontools
- Проверка диска на битые секторы в Linux
- Проверка диска на битые секторы Linux
- Выводы
- Как в Linux проверить диск на битые секторы
- Проверяем диск на битые секторы
- How to Check Hard Drive for Bad Sectors or Blocks in Linux
- Step 1) Use fdisk command to identify hard drive info
- Step 2) Scan hard drive for Bad Sectors or Bad Blocks
- Step 3) Inform OS not to use bad blocks for storing data
- 8 thoughts on “How to Check Hard Drive for Bad Sectors or Blocks in Linux”
Проверка жесткого диска на плохие сектора и блоки в Linux
Оригинал: How to Check Bad Sectors or Bad Blocks on Hard Disk in Linux
Автор: Aaron Kili
Дата публикации: 26 октября 2016 года
Перевод: А. Кривошей
Дата перевода: сентябрь 2017 г.
Плохой сектор/блок — это участок жесткого диска или флеш-памяти, который не читается или не записывается в результате физического повреждения поверхности жесткого диска или выхода из строя транзисторов флеш-памяти.
Поскольку в процессе работы жесткого диска плохие сектора накапливаются, они могут постепенно уменьшать доступную емкость вашего диска или флешки, или даже привести к их отказу.
В этой статье мы опишем, что нужно делать для того, чтобы проверить свой жесткий диск на наличие плохих секторов в Linux, с помощью специальных утилит.
Проверка диска на плохие сектора с помощью утилиты badblocks
Программа badblocks позволяет пользователю сканировать устройство на наличие плохих секторов или блоков. Устройство может быть внутренним или внешним жестким диском, представленным в виде файла вида /dev/sdc.
Сначала мы с помощью команды fdisk, запущенной от имени суперпользователя, выводим информацию о всех дисках и их разделах:
Затем запустите сканирование жесткого диска на плохие сектора/блоки с помощью команды:
В приведенной выше команде badblocks сканирует устройство /dev/sda10, опция -v указывает на вывод детальной информации о производимых действиях. Кроме того, результаты операции сохраняются в файле badsectors.txt с помощью перенаправления вывода.
В случае обнаружения плохих секторов на вашем диске отмонтируйте его и запретите операционной системе запись в эти сектора.
Для этого вам необходимо будет воспользоваться командами e2fsck (для файловых систем ext2/ext3/ext4) или fsck вместе с файлом badsectors.txt и файлом устройства, как показано ниже.
Опция -l указывает команде, что необходимо добавить номера блоков, заданные в соответствующем файле (badsectors.txt) в список плохих блоков.
Для файловых систем ext2/ext3/ext4
Для других файловых систем
Поиск плохих секторов в Linux Disk с помощью Smartmontools
Этот метод более надежен и эффективен при работе с современными дисками (ATA/SATA, SCSI/SAS, а также твердотельными накопителями), оснащенными системой S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology), которая помогает детектировать, сообщать и в некоторых случаях вести лог состояния жесткого диска.
Вы можете установить smartmontools с помощью следующих команд:
В системах на базе Debian/Ubuntu
В системах на базе RHEL/CentOS
Для контроля интегрированной в диск системы S.M.A.R.T используется утилита smartctl. Подробно ознакомиться с ее возможностями вы можете с помощью следующих команд:
Теперь введите команду smartctrl, указав в качестве аргумента название своего диска и флаг -H или —health, чтобы получить результаты тестирования диска.
Представленные выше результаты показывают, что с вашим диском все в порядке, и у него в ближайшем времени не должно быть никаких аппаратных сбоев.
Для вывода обзорной информации о состоянии диска используется опция -a или —all, при этом выводится все информация системы SMART, а при использовании опции -x или —xall выводится также информация, не относящаяся к системе SMART.
Источник
Проверка диска на битые секторы в Linux
Одно из самых важных устройств компьютера — это жесткий диск, именно на нём хранится операционная система и вся ваша информация. Единица хранения информации на жестком диске — сектор или блок. Это одна ячейка в которую записывается определённое количество информации, обычно это 512 или 1024 байт.
Битые сектора, это повреждённые ячейки, которые больше не работают по каким либо причинам. Но файловая система всё ещё может пытаться записать в них данные. Прочитать данные из таких секторов очень сложно, поэтому вы можете их потерять. Новые диски SSD уже не подвержены этой проблеме, потому что там существует специальный контроллер, следящий за работоспособностью ячеек и перемещающий данные из нерабочих в рабочие. Однако традиционные жесткие диски используются всё ещё очень часто. В этой статье мы рассмотрим как проверить диск на битые секторы Linux.
Проверка диска на битые секторы 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
Это безопасно и её можно выполнять на файловой системе с данными, она ничего не повредит. В принципе, её даже можно выполнять на смонтированной файловой системе, хотя этого делать не рекомендуется. Если файловая система размонтирована, можно выполнить тест с записью с помощью опции -n:
sudo badblocks -vn /dev/sda2 -o
После завершения проверки, если были обнаружены битые блоки, надо сообщить о них файловой системе, чтобы она не пыталась писать туда данные. Для этого используйте утилиту fsck и опцию -l:
Если на разделе используется файловая система семейства Ext, например Ext4, то для поиска битых блоков и автоматической регистрации их в файловой системе можно использовать команду e2fsck. Например:
sudo e2fsck -cfpv /dev/sda1
Параметр -с позволяет искать битые блоки и добавлять их в список, -f — проверяет файловую систему, -p — восстанавливает повреждённые данные, а -v выводит всё максимально подробно.
Выводы
В этой статье мы рассмотрели как выполняется проверка диска на битые секторы Linux, чтобы вовремя предусмотреть возможные сбои и не потерять данные. Но на битых секторах проблемы с диском не заканчиваются. Там есть множество параметров стабильности работы, которые можно отслеживать с помощью таблицы SMART. Читайте об этом в статье Проверка диска в Linux.
Источник
Как в Linux проверить диск на битые секторы
Важнейшей составляющей компьютера выступает жесткий диск. Именно на нем хранятся файлы операционной системы и прочая важная информация. Единица хранения на жестком диске — сектор или блок. Именно в него записывается определенный объем данных, обычно это 512 или 1024 байт. Со временем на диске появляются битые секторы, которые перестают работать, но файловая система продолжает пытаться записать в них информацию. Записать информацию в такие секторы крайне сложно, поэтому пользователь может их потерять. Причем этот недостаток свойственен жестким дискам HDD, а твердотельные накопители SSD лишены этих недостатков. В них есть специальный контроллер, который перемещает данные из битых секторов в рабочие. В этой статье расскажем о том, как проверить диск на битые секторы в Linux.
Проверяем диск на битые секторы
Для поиска битых секторов на жестком диске в операционной системе Linux подходит программа под названием badblocks. Если вам надо проверить корневой или домашний раздел диска, то лучше загрузится в LiveCD, чтобы файловая система не была смонтирована. Если необходимо посмотреть, какие разделы есть на диске можно воспользоваться командой fdisk:
Пользуясь графическим интерфейсом, можно воспользоваться Gparted — специальная утилита. Пользователю достаточно выбрать нужный диск в выпадающем списке.
В конкретном примере рассмотрим, как проверить раздел /dev/sda2 с файловой системой XFS. Для этого используется команда badblocks. Синтаксис у неё довольно простой:
Вам могут потребоваться следующие опции программы:
- -e — дает возможность установить количество битых блоков, после достижения которого дальше продолжать тест не надо;
- -f — по умолчанию утилита пропускает тест с помощью чтения/записи если файловая система смонтирована чтобы её не повредить, эта опция позволяет всё таки выполнять эти тесты даже для смонтированных систем;
- -o — записать обнаруженные битые блоки в указанный файл;
- -p — количество проверок, по умолчанию только одна;
- -s — показывает прогресс сканирования раздела;
- -v — максимально подробный режим;
- -i — позволяет передать список ранее найденных битых секторов, чтобы не проверять их снова;
- -n — использовать безопасный тест чтения и записи, во время этого теста данные не стираются;
- -w — позволяет выполнить тест с помощью записи, на каждый блок записывается определённая последовательность байт, что стирает данные, которые хранились там раньше.
С целью проведения обычной проверки используйте такую команду:
Эту команду можно выполнять на диске с операционной системой, ничего страшного не будет — она не способна навредить. Допускается выполнять на смонтированной файловой системе, хотя этого лучше не делать Если файловая система размонтирована, рекомендуем сделать тест с записью с помощью опции -n:
После окончания проверки системе необходимо сообщить информацию о битых секторах, чтобы она туда не обращалась. Для этого можно использовать утилиту fsck и опцию -l:
В случае использования файловой система семейства Ext для поиска битых блоков и автоматической регистрации их в файловой системе используйте команду e2fsck:
При помощи параметр -с легко искать битые блоки и добавлять их в список, -f — проверяет файловую систему, -p — восстанавливает повреждённые данные, а -v выводит всё подробно.
Тепеь вы знаете, как проверять жесткий диск и находить битые секторы.
Источник
How to Check Hard Drive for Bad Sectors or Blocks in Linux
Badblocks is the command-line utility in Linux like operating systems which can scan or test the hard disk and external drive for bad sectors. Bad sectors or bad blocks is the space of the disk which can’t be used due to the permanent damage or OS is unable to access it.
Badblocks command will detect all bad blocks(or bad sectors) of a hard disk and save them in a text file. Later we can use it with e2fsck to instruct Operating System(OS) not to store any data on these damaged sectors or blocks.
In this article, we will learn how to check or scan hard drive for bad sectors using badblocks command.
Step 1) Use fdisk command to identify hard drive info
Run fdisk command to list all available hard disks to Linux operating system. Identify the disk which you want to scan for bad blocks.
Step 2) Scan hard drive for Bad Sectors or Bad Blocks
Once you identify the hard disk then run badblocks command. Example is shown below
Just replace “/dev/sdb” with your own hard disk / partition. When we execute above command a text file “bad-blocks” will be created under /tmp , which will contains all bad blocks.
Step 3) Inform OS not to use bad blocks for storing data
Once the scanning is completed, if the bad sectors are reported then use file “bad-blocks.txt” with e2fsck command and force OS not to use these bad blocks for storing data. Run the following e2fsck command
Note : Before running e2fsck command, you just make sure the drive is not mounted.
For any further help on badblocks & e2fsck command , read their respective man pages
8 thoughts on “How to Check Hard Drive for Bad Sectors or Blocks in Linux”
don’t you need to make sure the blocks are not allocated to a file or swap etc?
Don’t modern harddrives already have all this already — as built in functionality?
(access via smartctl)
$ apropos smartctl
smartctl (8) – Control and Monitor Utility for SMART Disks
From time to time, it is a good practice to check your hard drive for errors using Windows CHKDSK or Check Disk.
This has given me an idea of creating this script
#!/bin/sh
minsize=0
target=”/tmp/bad-blocks.txt”
for disc in `fdisk -l | grep ‘^/’ | awk ‘< print $1 >’`; do
badblocks -v $disc > “$target”
tam=$(du -k “$target” | cut -f 1)
if [ $tam -eq $minsize ]; then
echo “no badblocks on $disc”
else
echo “badblock(s) found(s) on $disc”
fi
done
You don’t need to run badblocks first. That’s a waste of time. Just use the e2fsck executable to run it for you with the -c option…
# sudo e2fsck -c /dev/sdb
This lets you avoid creating an unnecessary file, especially when you’re booting to an optical drive and don’t want to write to the hard drive you’re testing.
The ONLY reason you should ever create a bad blocks table is to send commands to the drivbe to tell it to repair the sectors
ATA and scsi drives are supposed to map out bad blocks. You can force the issue by wirting 0x00 to the sector (or use hdparm–repair-sector)
Take note of smartctl -A /dev/drive returns – in particular the bad sector (mapped out sectors) and pending sectors (probably bad but not mapped out) values – if the bad sector normalised value (not the raw value) is below the threshold then you need to replace the drive – NOW.
If you have large numbers of pending bad sectors then you’ll need to identify them and write zeros to them to allow the drive to fix or map them out (perfectly sectors can get marked as pending due to vibration issues, amongst other things).
Badblocks -svn will do this (unmount the partition first!), or if the partition is trashable/part of a raidset, hdparm –repair-sector and then rescan/reformat afterwards.
If bad sectors are not being mapped out then the drive needs to be replaced immediately. It’s probably out of spares (you’ll see this with smartctl -A) or about to fail.
What command just to report sectors or drive health.
Using an old pata drive that has not been used in some time to run Linux
peppermint 64x.
From my experience with windows os’s and smart, one bad sector can trash
a program or even the entire drive.
Most filesystems these days use 4096 byte blocks.
Using the commands as directed here will make a hash of your filesystem.
As advised in the current man page for badblocks
“Important note: If the output of badblocks is going to be fed to the
e2fsck or mke2fs programs, it is important that the block size is prop‐
erly specified, since the block numbers which are generated are very
dependent on the block size in use by the filesystem. For this reason,
it is strongly recommended that users not run badblocks directly, but
rather use the -c option of the e2fsck and mke2fs programs”
Following the example on this page the command would be: es2fsck -c /dev/sdb
Источник