HDD. Linux. Проверка HDD на бэдблоки (badblocks checking): различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Категория:HDD __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__»)
 
Строка 1: Строка 1:
[[Категория:HDD]]
[[Категория:HDD]]
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__
== Вариант 1 ==
Установка smartctl
<code>yum install smartmontools</code>
Посмотреть данные SMART
smartctl -iHA
Прогнать самотестирование (результаты смотреть через ндцать часов smartctl -a)
<code>smartctl -t long</code>
Проверить/исправить/очистить диск в режиме READ-ONLY
<code>badblocks -svb4096 /dev/sdb</code>
'''!!! READ-WRITE РЕЖИМ - ГАРАНТИРОВАННАЯ ПОТЕРЯ ДАННЫХ !!!'''
<code>'''badblocks -w -svb4096 /dev/sdb'''</code><blockquote>
     badblocks [параметры] устройство
         устройство        - имя устройства для проверки
         параметры         - необязательные параметры проверки, например
         -b   установка размера блока в байтах
                 Этот параметр желательно определять всегда. Размер используемого блока зависит от типа создаваемой файловой системы и её размера.
         -о   определение имени файла, куда программа размещает номера сбойных блоков.
                 Затем этот файл может быть передан программе, проверяющей/создающей файловую систему, для исключения отмеченных блоков.
         -i   установка имени файла, в котором находятся номера сбойных блоков
                 Использование параметра позволяет исключить повторное обращение к этим блокам при сканировании.
         -p   установка количества проходов проверки
         -n   установка для проверки режима "только для чтения", параметр по умолчанию
         -s   отображение номеров проверяемых блоков        -v   отображение подробной информации во время работы программы
         -w   установка использования при проверке режима записи - Гарантированная потеря данных!
</blockquote>А если бэды уже есть - то нужен GNU ddrescue (не путать с dd_rescue) и второй диск.
== Вариант 2 ==
Поблочное чтение диска, ничего плохого не случится
<code>dd if=/dev/ada0 of=/dev/null bs=512 status=progress</code>
При встрече первого бэд блока программа завершится с ошибкой:<blockquote>
dd: /dev/ada0: Input/output error MiB) transferred 395.000s, 8111 kB/s
6266577+0 records in
6266577+0 records out
3208487424 bytes transferred in 404.157958 secs (7938697 bytes/sec)
</blockquote>Чтобы продолжать сканирование при встрече бэдблока:
Таким образом выявим сколько всего бэдблоков на диске
Вывод ошибок в терминал
<code>dd if=/dev/ada0 of=/dev/null bs=8M status=progress '''conv=noerror'''</code>
Вывести ошибки в терминал и записать вывод с ошибками в файл
<code>dd if=/dev/ada0 of=/dev/null bs=8M conv=noerror | & tee /tmp/log.txt</code>
[[Категория:Linux]]

Версия 10:27, 3 января 2022


Вариант 1

Установка smartctl

yum install smartmontools

Посмотреть данные SMART

smartctl -iHA

Прогнать самотестирование (результаты смотреть через ндцать часов smartctl -a)

smartctl -t long

Проверить/исправить/очистить диск в режиме READ-ONLY

badblocks -svb4096 /dev/sdb

!!! READ-WRITE РЕЖИМ - ГАРАНТИРОВАННАЯ ПОТЕРЯ ДАННЫХ !!!

badblocks -w -svb4096 /dev/sdb

   badblocks [параметры] устройство        устройство        - имя устройства для проверки        параметры         - необязательные параметры проверки, например        -b   установка размера блока в байтах                Этот параметр желательно определять всегда. Размер используемого блока зависит от типа создаваемой файловой системы и её размера.        -о   определение имени файла, куда программа размещает номера сбойных блоков.                Затем этот файл может быть передан программе, проверяющей/создающей файловую систему, для исключения отмеченных блоков.        -i   установка имени файла, в котором находятся номера сбойных блоков                Использование параметра позволяет исключить повторное обращение к этим блокам при сканировании.        -p   установка количества проходов проверки        -n   установка для проверки режима "только для чтения", параметр по умолчанию        -s   отображение номеров проверяемых блоков        -v   отображение подробной информации во время работы программы        -w   установка использования при проверке режима записи - Гарантированная потеря данных!

А если бэды уже есть - то нужен GNU ddrescue (не путать с dd_rescue) и второй диск.

Вариант 2

Поблочное чтение диска, ничего плохого не случится

dd if=/dev/ada0 of=/dev/null bs=512 status=progress

При встрече первого бэд блока программа завершится с ошибкой:

dd: /dev/ada0: Input/output error MiB) transferred 395.000s, 8111 kB/s 6266577+0 records in 6266577+0 records out 3208487424 bytes transferred in 404.157958 secs (7938697 bytes/sec)

Чтобы продолжать сканирование при встрече бэдблока:

Таким образом выявим сколько всего бэдблоков на диске

Вывод ошибок в терминал

dd if=/dev/ada0 of=/dev/null bs=8M status=progress conv=noerror

Вывести ошибки в терминал и записать вывод с ошибками в файл

dd if=/dev/ada0 of=/dev/null bs=8M conv=noerror | & tee /tmp/log.txt