研讨了一下hdparm 发明,用dd重写不能修复的硬盘坏扇区,能够用hdparm的--write-sector 参数,停止修复。
参数是lba扇区数, 跟smartctl -a 陈述出来的不异, 每次修复一个512的扇区,
不外由于如今的磁盘都是4096字节的扇区, 以是要别离施行8次, 才气真正修复一个扇区:
假定 smartctl -a 报出221147150有毛病,:
Num | Test_Description Status | Remaining | LifeTime(hours) | LBA_of_first_error | |
# 1 | Short offline Completed: read failure | 90% | 5503 | 221147150 |
用dd号令, 定位一下, 一共有8个LBA扇区读毛病:
dd if=/dev/sdb skip=221147143 bs=512 count=1 of=/tmp/221147143
记载了1+0 的读入
记载了1+0 的写出
512字节(512 B)已复制,0.0128338 秒,39.9 kB/秒
dd if=/dev/sdb skip=221147144 bs=512 count=1 of=/tmp/221147144
dd: 正在读入"/dev/sdb": 输入/输出毛病
记载了0+0 的读入
记载了0+0 的写出
0字节(0 B)已复制,21.1198 秒,0.0 kB/秒
dd if=/dev/sdb skip=221147144 bs=512 count=1 of=/tmp/221147144
dd: 正在读入"/dev/sdb": 输入/输出毛病
记载了0+0 的读入
记载了0+0 的写出
0字节(0 B)已复制,21.1198 秒,0.0 kB/秒
....
....
....
221147144-221147151 一个8个扇区毛病。
用hdparm 修复:
hdparm --yes-i-know-what-i-am-doing --write-sector 221147144 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147145 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147146 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147147 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147148 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147149 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147150 /dev/sdb
hdparm --yes-i-know-what-i-am-doing --write-sector 221147151 /dev/sdb
/dev/sdf:
re-writing sector 221147151: succeeded
如今再检测一下:
root@bak1:~# dd if=/dev/sdb of=/tmp/221147144 count=8 bs=512 skip=221147144
记载了8+0 的读入
记载了8+0 的写出
4096字节(4.1 kB)已复制,0.000288426 秒,14.2 MB/秒 曾经修复。
要得到坏扇区列表, 能够用命令:
s -b 512 /dev/sdb -o /sdb.
然后按照文件 /sdb. 停止修复。 新京葡娱乐场388官网新葡京在线娱乐xpj677