Используем dd для тестирования жесткого диска

Любое оборудование, новое, или бывшее в употреблении требует после покупки тестирования. В Windows для этого есть разные приложения, но очень популярна утилита VictoriaHDD. В Linux с этим не всё так радужно. Большинство приложений имеет консольный интерфейс, так как считается, что пользователи здесь более продвинутые, нежели в Windows.
Так получается, что программ тестирования в Linux нет вообще, не считая fsck, которая требует, чтобы на диске была файловая система, например ext4, xfs, zfs и даже ntfs, которую пингвины поддерживают очень даже неплохо. Но всё-таки, чтобы одной единственной командой протестировать диск, нужно знать, что везде, хоть в Linux, хоть в FreeBSD есть чудесная программа dd.
Она предназначена для переноса любого объекта в двоичной системе в другой объект. Например так можно выполнить побитовое клонирование жестких дисков, у вас даже структура фрагментации сохранится, если очень нужно.

 


 

 

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

$ sudo su

# fdisk -l

допустим, что вывод показал нам нужный диск как /dev/sdc

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

# dd if=/dev/zero bs=4096 of=/dev/sdc status=progress

программа начнет работу. Если у вас жесткий диск, как у меня имеет объем 2 Тб, и он подключен по USB 2.0 через адаптер, то на большую скорость рассчитывать не стоит и можно отойти и заняться своими делами, например вымыть посуду, поиграть и уложить спать ребёнка, можно даже приготовить ужин. Процедура очень продолжительная.
Как показано на картинке ниже, 136 Гб у меня записывались всего один час. Учитывая, что скорость записи с увеличением объема файла всегда снижается, то 2 терабайта будут заполнены за 14 часов, поэтому, если не страшно, то можно оставить машинку работать на ночь.

При возникновении ошибок записи, dd с параметром status=progress сообщит о проблемных секторах и блоках.
При необходимости, можно осуществить вывод в текстовый файл, но следует учесть, что конечный файл будет достаточно большим и потребует большого количества свободного места на рабочем жестком диске. 

параметр status=progress не заработает в случае, когда у вас не установлен пакет утилит progress.
Можно поступить иначе:
запускаем dd if=/dev/zero of=/dev/sdc bs=4096
открываем второе окно терминала, либо заходим с другого ttys (ctrl+alt+f2-f6), если совсем уже туго приходится, либо делаем второй логин по ssh и запускаем команду top.
Запоминаем PID процесса, который имеет имя dd...
Пишем команду watch -n3 kill -USR1 ABCDE, где ABCDE -- PID процесса. он может быть и четырёхзначным, и однозначным, это не важно, важно знать номер процесса.
После запуска данной команды, можете перейти в терминал запуска dd и каждые две по умолчанию секунды вы будете видеть, что за это время сделала dd.

Есть и обратный способ тестирования с помощью этой утилиты:

$sudo dd if=/dev/sd* bs=4096 of=/dev/zero status=progress 

Эта программа произведет считывание данных с устройства /dev/sd* в устройство /dev/zero, а когда дойдет до конца, то просто остановится.

Есть ещё одна утилита для работы с hdd, это testdisk. Устанавливается стандартным для Deb систем способом:
$ sudo apt install testdisk

Ну, вы, конечно можете использовать свой способ установки, в том числ и сборка программ из исходников. В ubuntu эта программа полностью переведена на русский язык и имеет удобный диалоговый способ работы, разберётся даже ламер.
Запуск соответственно командой:
$ sudo testdisk /dev/sd*, если нужно поработать с конкретным диском, или /dev/sdX*, если необходимо работать с конкретным разделом.

Кстати, для этой цели можно использовать "апельсинку", только не забывайте, что dd при этом потребляет ресурсы ЦП, поэтому позаботьтесь об охлаждении одноплатника. Ну или используйте полноценный ПК и подключайте жесткий диск к материнской плате и блоку питания.

Выводы делайте самостоятельно и только после того, как самостоятельно попробуете поработать в Linux с жесткими дисками.
Моё примечание.
Linux очень требователен к качеству оборудования и рассчитан на работу с новым и стандартным оборудованием. При работе со старым и не очень исправным "железом" у вас могут возникнуть серьёзные проблемы. Однако, правильно подобранное оборудование и хорошо настроенный Linux впредь будут работать долгие годы без shutdown.

Комментарии

Популярные сообщения из этого блога

Подключение локального репозтория для debian/ubuntu/mint/astra включая установочный диск

LibreCAD шрифты

Как пользоваться LibreCAD так, чтобы было удобно.