badblocks,硬盘坏道检测工具
1 badblocks安装。
badblocks被打包在e2fsprogs安装包中。 CentOS下:
$yum install e2fsprogs #Ubuntu下: $apt-get install e2fsprogs
2 badblocks使用
实例
#查看系统当前硬盘信息。 $fdisk -l 例如,显示信息如下: Disk /dev/sda: 298.9 GB, 298999349248 bytes 255 heads, 63 sectors/track, 36351 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 262 2104483+ 82 Linux swap / Solaris /dev/sda2 * 263 32898 262148670 83 Linux /dev/sda3 32899 36351 27736222+ 83 Linux Disk /dev/sdb: 42.9 GB, 42949672960 bytes 64 heads, 32 sectors/track, 40960 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes 通过命令扫描硬盘。 $badblocks -s -v /dev/sdnx 其中n表示硬盘设备名,x表示硬盘对应的分区号。例如需要检查"/dev/sda2",执行命令如下: $badblocks -s -v /dev/sda2 Checking blocks 0 to 30681000 Checking for bad blocks (read-only test): 306809600674112/ 306810000000 30680964 30680965 30680966 30680967 30680968 30680969 30680970 30680971 30680972 30680973 ... done Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。
3 附录
- badblock命令简介 badblock命令用于查找磁盘中损坏的区块。 电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。badblocks就是一个很好的检查坏道位置的工具。
常见案例与用法 查看当前系统的分区:
[root@zcwyou ~]# lsblk Bash 输出结果如下: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 100G 0 disk ├─sda2 8:2 0 4G 0 part [SWAP] ├─sda3 8:3 0 95.8G 0 part / └─sda1 8:1 0 200M 0 part /boot
linux-badblock命令常见案例与用法 2.1 检查分区
比如/dev/sda1
[root@zcwyou ~]# badblocks -s -v /dev/sda1 Bash 输出结果如下: Checking blocks 0 to 204799 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. (0/0/0 errors)
2.2 在格式化文件系统前检测坏道
[root@zcwyou ~]# mkfs.ext3 -c /dev/hda1
Bash
选项-c表示在格式化文件系统前检查坏道的硬盘。 2.3 指定检查参数
badblocks以4096的一个block,每一个block检查16次,将结果输出到badblockscheck.log
[root@zcwyou ~]# badblocks -b 4096 -c 16 /dev/sda1 -o badblockscheck.log
Bash
针对上述检查结果,指定可疑范围再检查一次,每个block再检查一次,由第51000 block开始,到63000 block结束。
[root@zcwyou ~]# badblocks -b 4096 -c 1 /dev/sda1 -o hda-badblocks-list.1 63000 51000
Bash
指定磁盘检查参数
- 总结
badblocks是Linux下常用的坏道修复工具。当你觉得硬盘上可能有坏道,或者是SMART数据显示有坏道的时候,都可以用badblocks来检查一下。