Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1405699
  • 博文数量: 247
  • 博客积分: 10147
  • 博客等级: 上将
  • 技术积分: 2776
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-24 15:18
文章分类

全部博文(247)

文章存档

2013年(11)

2012年(3)

2011年(20)

2010年(35)

2009年(91)

2008年(87)

我的朋友

分类: LINUX

2011-04-21 19:18:53

Linux检测硬盘坏道

  badblocks

  功能说明:检查磁盘装置中损坏的区块。

  语法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]

  补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。

  参数:

  -b 指定磁盘的区块大小,单位为字节。

  -o 将检查的结果写入指定的输出文件。

  -s 在检查时显示进度。

  -v 执行时显示详细的信息。

  -w 在检查时,执行写入测试。

  [磁盘装置] 指定要检查的磁盘装置。

  [磁盘区块数] 指定磁盘装置的区块总数。

  [启始区块] 指定要从哪个区块开始检查。

  badblocks 检测磁盘坏块

  1)$badblocks -s //显示进度 -v //显示执行详细情况 /dev/sda1

  2)读写方式检测 未挂载的磁盘设备或分区

  $badblocks -s //显示进度 -w //以写去检测 -v //显示执行详细情况 /dev/sda2

LINUX系统下检测磁盘坏道 - 茫然De蚂蚁 - 蚂蚁的家
 
 
 
 
============================================================================
 
 

linux和win是不同的(废话 ),win下磁盘检测工具一抓一大把,管用不管用的名字起的都相当牛,不是**大师就是**专家,但是管用的就不多了。汗 

linux下,最长用的磁盘检测工具是smartcontrol了(smartctl)

但是我的移动硬盘竟然不支持smart,所以只能用肥猪流方法啦 

起因:悬挂在某高处的某物体,自由落体状,砸在了320G eaget 移动硬盘上,外壳有损伤,因为正在进行读写操作,所以进行坏道检测。(杯具阿!! )


首先umount已经mount的移动硬盘

代码:
umount /dev/sd*



进行检测:

方法一:

代码:
badblocks -s  -v  /dev/sd*1



方法二:

代码:
sudo e2fsck -f -c /dev/sd*1



因为需要对磁盘进行检测,所以速度非常之缓慢,在检测过程中注意不要断电,不要对硬盘进行任何读写,不要移除硬盘,不要物理损伤,不要震动等等。

杂牌硬盘还要注意散热。

检测过程可以中途终止,也可以指定区块重新开始

用法:

代码:
sudo badblock /dev   last  start



引用:
耐心等待吧!我320G移动硬盘,用了2小时,60%,然后为了写这篇文章,杯具的按下了ctrl+c

幸好可以指定区块开始



当你看到:

引用:
Pass completed, 0 bad blocks found.



恭喜!!没有坏道。如果>0,那么你也杯具了。快找软件修复吧!!

引用:
其他
1、fsck使用badblocks的信息
badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:

# -l /tmp/ /dev/hda1

2、在创建文件系统前检测坏道
badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:


# -c /dev/hda1

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




命令以及相关信息请参考:

引用:
delectate@delectate-laptop:~$ umount /dev/sdc1
delectate@delectate-laptop:~$ umount /dev/sdc2
delectate@delectate-laptop:~$ sudo badblocks -s -v /dev/sdc1
[sudo] password for delectate: 
Checking blocks 0 to 304182710
Checking for bad blocks (read-only test): done 
Pass completed, 0 bad blocks found.
delectate@delectate-laptop:~$ sudo badblocks -s -v /dev/sdc2
[sudo] password for delectate: 
Checking blocks 0 to 8385929
Checking for bad blocks (read-only test): done 
Pass completed, 0 bad blocks found.
delectate@delectate-laptop:~$



所以说,移动硬盘,应该多多注意才是。

每次拔下时,要umount,然后再拔下。

不过我尝试过,第一次umount后马上拔下,硬盘有异响,频率很高的口支声,但是umount后等10s左右再拔下来,就没有,想来应该是磁头回landing zone的时间吧!

移动硬盘不比u盘,多多小心,多多注意才是哦!! 

update : 2009-12-05

可以在桌面右键点击盘符,然后选择“safely remove this device”,大部分移动硬盘可以自动卸载并停止转动,所以需要进行坏道检测的童鞋,不要点击这个选项,仅仅卸载即可……

检测完成后,可以mount上再点击那个“safely remove device”,使移动硬盘停止转动。

(大部分移动硬盘可以停止转动,但是小部分的还是不可以,原因未知,应该是硬盘盒问题。)

 

 

==============================================================

 

 

 

磁盘坏道,是所有人都不希望遇到的事情……

磁盘坏道,轻则磁盘性能下降,重则系统启动失败,数据丢失。所以我们要时刻关注磁盘健康状况,及时备份重要数据。

什么是S.M.A.R.T?

全称为 Self-Monitoring Analysis and Report Technology ,用于磁盘自我检测,并向用户报告磁盘状态。这项技术需要主板支持,且检测结果不一定准确。

linux上可以使用gnome-disk-utility查看磁盘的S.M.A.R.T相关信息。

您也可以安装

1

sudo pacman -S libatasmart smartmontools gsmartcontrol

启用smart图形化界面(gsmartcontrol)/cli工具(smartctl)进行查看。

·温彻斯特磁盘:(硬盘原理)

大致原理就是非工作时间磁头停留在landing zone;需要读取数据时,磁头离开landing zone,依靠盘片的旋转产生升力悬浮在盘片表面读取数据。

因为盘片旋转速度非常快,且磁头与盘片距离非常近(头发丝的千分之一),如果剧烈震动或者外力冲击,甚至电压不稳,均有可能导致磁头与高速旋转的盘片产生物理接触,造成不可修复性物理损坏。

当您的磁盘:

 

1.在读取某一文件或运行某一程序时,硬盘反复读盘且出错,提示文件损坏等信息,或者要经过很长时间才能成功;有时甚至会出现死机;            

2.io wait 无故增高或居高不下;

3.硬盘声音突然由原来正常的摩擦音变成了怪音;

4.系统无法正常启动,出现“IO error”等提示信息;

5.mkfs时,到某一进度停止不前,最后报错,无法完成;

6.每次系统开机都会自动运行fsck扫描磁盘错误;

7.对硬盘执行FDISK时,到某一进度会反复进进退退;

8.如果您的磁盘出现如上状况,您就需要及时对磁盘进行坏道检测以测试磁盘可用性,并立即备份数据。

 

·磁盘坏道检测

建议使用livecd或者liveusb对本地磁盘进行检测。如果是对移动存储设备进行检测,请umount后再进行检测,以免数据受损。

1

umount /dev/sd*

对磁盘进行read-only检测:

 

sudo badblocks -s  -v  /dev/sd*

因为需要对磁盘进行检测,所以速度非常缓慢,在检测过程中注意不要断电,不要对硬盘进行任何操作,不要移除硬盘,不要物理损伤,不要震动等。

检测过程可以中途终止,也可以指定区块重新开始。

1

sudo badblock -s -v  /dev/sd*   last  start

如果您检测完成后看到

Pass completed, 0 bad blocks found.

那么恭喜,此磁盘通过测试,没有坏道(坏块)。您可以放心使用。

·磁盘有坏道了……

但是,如果您检测过程中再某一个区块停滞不前,而后报告中提示有坏块,那么杯具了……您的磁盘有坏道了。

不论是什么类型的坏道,均建议您首先进行数据备份!把重要数据进行备份然后再尝试修复。如果您有重要数据却无法读取(磁盘出现异常),那么请立即停止使用此磁盘并找专业人员进行修复

·坏道的修复/屏蔽

常见坏道分为以下几种类型:

·              

逻辑坏道

0磁道损坏

o 物理坏道

坏道一般以单独或者组合形式出现。

·逻辑坏道修复:

1

fsck -a /dev/sd*

就这么简单。

更多fsck用法您可以查看或者查看man手册。

·0磁道损坏修复:

使用1磁道代替零磁道(操作危险需谨慎)

大致流程就是全盘格式化,然后重新分区,编辑分区表使用1磁道,从而复活硬盘。

操作手册(,,)

·物理坏道

物理坏道没有修复可能性,只能进行屏蔽。

如果您已经进行了坏道检测,那么您肯定已经知道坏道(坏块)大致位置以及坏块大小,您需要:

1.备份硬盘数据

2.删除所有硬盘分区

3.根据坏块位置以及大小,估算出所占空间(例如共100个区块,磁盘大小为100g,20-30损坏,则坏块在20-30g这个区间)

4.进行分区(接上:分区应为 0-15|15-35|35-100,中间的15-35g为有坏道的分区。要对有坏道的分区进行扩容处理,数值不要过小,以免坏道被分到其他分区。)

5.隔离15-35g这个分区(即不挂载,不读写,不操作)

6.您的磁盘可用空间减少,但是剩余空间均可用(坏道已经屏蔽)

由于物理坏道具有扩散性,所以建议尽早让磁盘“退休”才是……

·分区表修复工具

如果您的分区表已经被损坏,建议使用testdisk进行修复。他可以快速回复分区表,真的非常好用(修复我的硬盘n次!利器也~)

安装

1

sudo pacman -S testdisk

基本用法(,2

·珍爱磁盘,爱护数据

磁盘有价,数据无价

不要等磁盘出现问题了才想到数据还没有备份;不到等论文丢了才想起来明天就要交;不要等rm了才想起来把重要文件删除了。备份数据并不是多么困难,也不需要多少时间,所以请您及时备份,保护无价的数据吧!

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