Chinaunix首页 | 论坛 | 博客
  • 博客访问: 640374
  • 博文数量: 486
  • 博客积分: 10125
  • 博客等级: 上将
  • 技术积分: 5842
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(486)

文章存档

2011年(52)

2010年(107)

2009年(289)

2008年(38)

我的朋友

分类: LINUX

2010-12-01 01:34:00


linux下检查磁盘坏道zz
  电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。硬盘出现坏道最好对硬盘进行重新分区,把坏道部分单 独分成一个区,并把它隐藏起来。在 Linux下硬盘坏道有两种修复方法,下面我将介绍比较这两种方法,它们是在ext2文件格式下修改的,也同样适用ext3格式,因为ext3只不过是 ext2+journal。

修复方法一

为了检查坏道,可以使用mkfs.ext2的命令,带上参数-C用只读的方式检查硬盘。我们使用man命令查看“mkfs.ext2”需要带上的参数,输入下面命令:

#man mkfs.ext2

由其结果可以看到显示“mkfs.ext2”可以支持的功能和参数。

#man mkfs.ext2 
mke2fs [ -c | -l filename ] [ -b block-size ] [ -f fragment-size ] [ -i
……

上 面代码表示使用-c在创建文件系统前检查坏道的硬盘,-b是block的大小,- f碎裂的大小。这个操作已经很清楚地告知我们可以采用“mkfs.ext2 -c”选项用“read-only”方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相 当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。做法如下:

# mkfs.ext2 -c /dev/hda1

修复方法二

根据经验,坏道通常会波及到其它的区域,尤其是邻近的“block”。此外还有些“block”会有以下的情况:读写16次中有一两次会出现读写错误的情况。类似这种要坏不坏的情况具体修复方法如下,先输入下面命令:

# man badblocks

查看一下badblocks所带的参数,由结果可以看到显示“badblocks”可以支持的功能和参数。

NAME 
badblocks - search a device for bad blocks
badblocks [ -svwnf ] [ -b block-size ]
[ -c blocks_at_once ] [ -i input_file ]
[ -o output_file ] [ -p num_passes ] device [ last-block ] [ start-block ]
-b block-size
-c number of blocks
……

上面的说明中表明badblocks 检查寻找一个设备上的坏道;-b是block的大小,-c是检查的次数,-i输出文件,-o输入文件,-p是通过的数量。

硬 盘在格式化时会指定一个“block”的大小,默认值为“block 4K ”(4K/block)。“badblocks”在检查坏道时并不知道将来想要格式化时所指定的“block-size”,所以必须告知 “badblocks”硬盘的“block size”。

“-c number of blocks”是检查的次数,默认是16次。这样的命令需要耐心等待。语法如下:

# badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list

其中,“badblocks”以4096的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里。

“hda-badblocks-list”是个文本文件,内容如下:

# cat hda-badblocks-list 
51249
51250
51251
51253
51254
……
61245
……

如果希望能找出可疑的“blocks”,并一起“mark”起来,可以针对可疑的区块多做几次操作:

# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000

“badblocks” 以4096字节为一个“block”,每一个“block” 检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束。这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。

# cat hda-badblocks-list.1 
51248
51250
51251
51253
……
61243
61245
……

重复几次上述的操作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,产生了最后的“hda-badblock-list.final” ,最后要格式化硬盘。输入下面代码:

#man mkfs.ext2

结果可以看到显示“mkfs.ext2 ”可以支持的功能和参数。

NAME mke2fs - create an ext2/3 filesystem 
……

mkfs.ext2是用来创建一个ext2/3系统文件。

总结

以上介绍的是Linux下硬盘有了坏道的解决方法,希望这些方法能给大家带来帮忙。

硬 盘有了坏道,如果不是因为老化问题,则说明平时在使用上有不妥之处,比如对硬盘过分频繁地整理碎片、内存太少以致应用软件对硬盘频频访问等,而忽略对硬盘 的防尘处理也会导致硬盘磁头因为定位困难引发机械故障。另外,对CPU超频引起外频增高,迫使硬盘长时间在过高的电压下工作,也会引发故障。所以,平时对 硬盘的使用还应以谨慎操作为上策。

Linux操作系统相比Windows要复杂得多,修复硬盘的方法及技巧绝不仅限与此,本文只是抛砖引玉,希望广大电脑爱好者能更好地熟悉Lnux环境下硬盘


阅读(498) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~