2020-02-23 21:45:10 +03:00
|
|
|
|
#!/bin/bash
|
2020-03-18 21:01:26 +03:00
|
|
|
|
|
|
|
|
|
#info @ EOF
|
2021-01-24 09:31:08 +03:00
|
|
|
|
#Скриптец проходится по ошибкам на диске и затирает их ddшкой.
|
|
|
|
|
#ACHTUNG! данные на диске могут быть утеряны!
|
2021-02-22 12:42:17 +03:00
|
|
|
|
#Написано для диска sdba с одним разделом sdb1 на весь диск
|
2021-01-24 09:31:08 +03:00
|
|
|
|
|
2023-11-11 23:18:15 +03:00
|
|
|
|
DISK="/dev/sda"
|
2020-03-18 21:01:26 +03:00
|
|
|
|
|
2023-11-11 23:18:15 +03:00
|
|
|
|
block=$(sudo smartctl --all $DISK | grep 'Short offline' | head -1 | awk '{print $10}')
|
2020-02-23 21:45:10 +03:00
|
|
|
|
echo "Fixing: " $block
|
|
|
|
|
|
2023-11-11 23:18:15 +03:00
|
|
|
|
sudo hdparm --read-sector $block $DISK
|
|
|
|
|
sudo hdparm --repair-sector $block --yes-i-know-what-i-am-doing $DISK
|
|
|
|
|
sudo hdparm --read-sector $block $DISK
|
2020-02-23 21:45:10 +03:00
|
|
|
|
|
2023-11-11 23:18:15 +03:00
|
|
|
|
sudo smartctl -t short $DISK -q errorsonly
|
2020-02-23 21:45:10 +03:00
|
|
|
|
|
2023-11-11 23:18:15 +03:00
|
|
|
|
while `sudo smartctl -a $DISK | grep -q 'Self_test_in_progress'`
|
|
|
|
|
do
|
|
|
|
|
sleep 1
|
|
|
|
|
done
|
2020-02-23 21:45:10 +03:00
|
|
|
|
|
2023-11-11 23:18:15 +03:00
|
|
|
|
sleep 20
|
2020-02-23 21:45:10 +03:00
|
|
|
|
echo "New badblock: "
|
2023-11-11 23:18:15 +03:00
|
|
|
|
sudo smartctl --all $DISK | grep 'Short offline' | grep '# 1' | awk '{print $10}'
|
2020-02-23 21:45:10 +03:00
|
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
|
|
#######
|
|
|
|
|
|
2020-03-18 21:01:26 +03:00
|
|
|
|
SRC: https://linoxide.com/linux-how-to/how-to-fix-repair-bad-blocks-in-linux/
|
|
|
|
|
|
2020-02-23 21:45:10 +03:00
|
|
|
|
bc 1.07.1
|
|
|
|
|
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
|
|
|
|
|
This is free software with ABSOLUTELY NO WARRANTY.
|
|
|
|
|
For details type `warranty'.
|
|
|
|
|
L=99846
|
|
|
|
|
(standard_in) 1: syntax error
|
|
|
|
|
l=99846
|
|
|
|
|
s=2048
|
|
|
|
|
b=4096
|
|
|
|
|
(l-s)*512
|
|
|
|
|
50072576
|
|
|
|
|
50072576/b
|
|
|
|
|
12224
|
|
|
|
|
l=109614
|
|
|
|
|
((l-s)*512)/b
|
|
|
|
|
13445
|
|
|
|
|
l=128153
|
|
|
|
|
((l-s)*512)/b
|
|
|
|
|
15763
|
|
|
|
|
l=484030
|
|
|
|
|
((l-s)*512)/b
|
|
|
|
|
60247
|