Linux: проверка диска на bad blocks

Автор: | 01/14/2019
 

Имеется у нас билд-агент для Jenkins, запущен на Ubuntu 16.

Периодически при загрузке машина подвисает сразу после запуска GRUB.

Один из вариантов поиска проблемы — проверить диск на предмет наличия битых секторов.

Для этого можно использовать утилиты badblocks из набора e2fsprogs, и smartctl из набора smartmontools.

badblocks

Проверяем диски на этой машине:

root@username-ci:~# fdisk  -l
Disk /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 861359CC-45AD-437A-B8EC-5EEC601F0884
Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1050623   1048576   512M EFI System
/dev/sda2  1050624   2050047    999424   488M Linux filesystem
/dev/sda3  2050048 468860927 466810880 222,6G Linux filesystem

/dev/sda2/boot-раздел, который и надо проверить, а /dev/sda3 — LVM-раздел с root и home.

Запускаем badblocks:

root@username-ci:~# badblocks -v /dev/sda2
Checking blocks 0 to 499711
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)

Можно добавить -s, что бы отображать прогресс проверки.

smartctl

Устанавливаем smartmontools:

root@username-ci:~# apt -y install smartmontools

И проверяем диск, используя -H:

root@username-ci:~# smartctl -H /dev/sda2
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.15.0-43-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Больше примеров по SMART — см. в посте S.M.A.R.T: проверка HDD – описание атрибутов, значение атрибутов, утилиты, параметры (2013 год, правда).