Я выпустил sudo badblocks -nv /dev/sda6
вчера. Я только что проснулся, и это все еще так.
В документации говорится, что параметр -n
указывает, что тест должен быть неразрушающим, но занимает немного больше времени.
Это работает или это заморожено или как? Кто-нибудь знает?
Вы можете наблюдать за процессами ввода-вывода с помощью iotop
. Установите:
sudo apt-get install iotop
Затем запустите:
sudo iotop
Наблюдайте 30 секунд. Показывает ли он badblocks
выполнение ввода-вывода? Если да, то он работает, если нет, скорее всего, он заморожен.
В следующий раз вы можете запустить badblocks
с параметром -s
:
sudo badblocks -nsv /dev/sda6
это покажет прогресс.
Помимо iotop, можно также хотеть посмотреть dmesg:
dmesg -w
В моем случае, badblocks застрял на уровне 2,81%, не было никакого iotop действия, и dsmesg показал следующее сообщение на равных интервалах:
[ 7371.945131] INFO: task badblocks:19760 blocked for more than 120 seconds.
[ 7371.945134] Tainted: G OE 5.0.0-29-generic #31~18.04.1-Ubuntu
[ 7371.945135] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 7371.945136] badblocks D 0 19760 19759 0x00000004
[ 7371.945137] Call Trace:
[ 7371.945140] __schedule+0x2bd/0x850
[ 7371.945141] schedule+0x2c/0x70
[ 7371.945145] io_schedule+0x16/0x40
...
Не уверенный, что проблема находится в моем случае, но это может быть ошибка?
Вы можете увидеть, где badblocks
в настоящее время расположены на диске, посмотрев на его fdinfo
в proc
, то есть:
root@ubuntu:/home/ubuntu# ps ax | grep badblock
3772 tty1 D+ 12:11 badblocks -v /dev/sdb
5478 tty2 S+ 0:00 grep --color=auto badblock
root@ubuntu:/home/ubuntu# ls -l /proc/3772/fd
total 0
lrwx------ 1 root root 64 Mar 3 00:41 0 -> /dev/tty1
lrwx------ 1 root root 64 Mar 3 00:41 1 -> /dev/tty1
lrwx------ 1 root root 64 Mar 3 00:41 2 -> /dev/tty1
lr-x------ 1 root root 64 Mar 3 00:41 3 -> /dev/sdb
root@ubuntu:/home/ubuntu# cat /proc/3772/fdinfo/3
pos: 1707980816384
flags: 0140000
mnt_id: 24
root@ubuntu:/home/ubuntu# lsblk -bd /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 2000398934016 0 disk
Итак, это ] выполнение badblocks
выполнено примерно на 85%.
Ответ @ falconer (используйте iotop
) - хороший способ посмотреть его текущую скорость, но fdinfo
показывает, насколько продвинулась программа.