centos硬盘坏道?固态硬盘能测坏道吗

这篇文章给大家聊聊关于centos硬盘坏道,以及固态硬盘能测坏道吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

centos出现磁盘坏掉,怎么修复和检测

1.首先检测下坏掉

badblocks-s-v-o/root/bb.log/dev/sda将结果保存到bb.log

[root@logging~]# badblocks-s-v-o/root/badblocks.log/dev/sda

Checking blocks 0 to 586061784

Checking for bad blocks(read-only test): done

Pass completed, 173 bad blocks found.

smartctl-a/dev/sda3(快速检测硬盘坏道,看read,write后面有没有errors)

2.逻辑坏道修复方法

①、badblocks-s-w/dev/sda END START(END代表需要修复的扇区末端,START代表需要修复的扇区起始端)

②、fsck-a/dev/sda

修复后再用badblocks-s-v-o/root/bb.log/dev/sda监测看是否还有坏道存在,如果坏道还是存在的话说明坏道属于硬盘坏道。硬盘坏道要用隔离方法,首先记录监测出的硬盘坏道然后分区的时候把硬盘坏道所在的扇区分在一个分区(大小一般大于坏扇区大小),划分出的坏道分区不使用即可达到隔离的目的

3. 0磁道坏道和硬盘坏道(准备换硬盘)

0磁道坏道的修复方法是隔离0磁道,使用fdsk划分区的时候从1磁道开始划分区。

如果是硬盘坏道的话,只能隔离不能修复

CentOS下对SSD寿命的检查和健康判断详解

整个网上只有 intel的 SSD查看硬盘寿命的资料,象我们这种穷人,只能使用的起 Crucial和 OCZ的用户来讲是太不公平了.象我要透过 RAID卡就真没法子看其它商家的 SSD的寿命了吗?

研究了一下,所有查看 SSD的命令,只要要透过 RAID的,都需要借助 MegaCli和 smartCtl获得 ssd盘使用情况.认真研究了一下,目前我使用的

RAID卡是LSI Logic/ Symbios Logic MegaRAID SAS 1078和 2108这二种.使用通常的 MegaCli来查询:

这个是的下载地址:

Centos5的 MegaCli

Centos6的 MegaCli

整个过程分二步,第一步是从过 RAID卡来取得下面硬盘的信息.接下来使用 smartCtl来进行硬盘详细信息的显示.

使用 MegaCli来取得 RAID卡下硬盘的信息:

然后使用下面的命令:

/opt/MegaRAID/MegaCli/MegaCli64-PDList-aALL

这样可以查出 RAID卡下面的内容.会显示如下:

Enclosure Device ID: 252

Slot Number: 7

Device Id: 28

Sequence Number: 2

Media Error Count: 0

Other Error Count: 1

Predictive Failure Count: 0

Last Predictive Failure Event Seq Number: 0

PD Type: SATA

Raw Size: 119.242 GB [0xee7c2b0 Sectors]

Non Coerced Size: 118.742 GB [0xed7c2b0 Sectors]

Coerced Size: 118.277 GB [0xec8e000 Sectors]

Firmware state: Online, Spun Up

SAS Address(0): 0x1e394d57aa996b80

Connected Port Number: 7(path0)

Inquiry Data: 0000000011070303A99EC300-CTFDDAC128MAG 0007

FDE Capable: Not Capable

FDE Enable: Disable

Secured: Unsecured

Locked: Unlocked

Needs EKM Attention: No

Foreign State: None

Device Speed: 6.0Gb/s

Link Speed: 1.5Gb/s

Media Type: Solid State Device

注意上面几个地方,上面会输出很多这样的信息,只有 Media Type: Solid State Device.表示这是 SSD.其中 Device Id: 28这个需要记下来.这个过一会使用 smartctl查询时会需要.我们可以见到上面都显示了硬盘的型号:Inquiry Data: 0000000011070303A99EC300-CTFDDAC128MAG 0007.另外还有一个标志告诉你这个 SSD是不是正常的 Firmware state: Online,Spun Up这个选项,所以如果你做 SSD的监控报警,直接监控这个参数基本就行了.

使用 smartctl来取得 SSD硬盘的详细信息

要注意,不同厂商不同型号磁盘的信息不同.象 intel的硬盘信息就不介绍了.下面是查询所使用的命令.其中-a是让显示所有的信息出来.-d是用来设置硬盘的.这时需要注意不同的 RAID卡所使用的接口可能不一样,所以可能会有小的不相同.

比如 intel的硬盘,直接使用-d megaraid,27就能正常了.但我使用了上面的 raid卡后,需要指定 sat这个参数,就变成象下面这样了:

smartctl-a-d sat+megaraid,27/dev/sdb1-s on

上面这时的 sat是指由 SCSI转成 ATA的设备,可以加象 scsi,ata之类的参数.

这时,会显示如下的信息:

Model Family: Crucial/Micron RealSSD C300/C400

Device Model: C300-CTFDDAC128MAG

SMART Attributes Data Structure revision number: 16

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x002f 100 100 000 Pre-fail Always- 0

5 Reallocated_Sector_Ct 0x0033 100 100 000 Pre-fail Always- 0

9 Power_On_Hours 0x0032 100 100 000 Old_age Always- 5572

12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always- 3

170 Grown_Failing_Block_Ct 0x0033 100 100 000 Pre-fail Always- 0

171 Program_Fail_Count 0x0032 100 100 000 Old_age Always- 0

172 Erase_Fail_Count 0x0032 100 100 000 Old_age Always- 0

173 Wear_Levelling_Count 0x0033 090 090 000 Pre-fail Always- 536

174 Unexpect_Power_Loss_Ct 0x0032 100 100 000 Old_age Always- 1

181 Non4k_Aligned_Access 0x0022 100 100 000 Old_age Always- 0 0 0

183 SATA_Iface_Downshift 0x0032 100 100 000 Old_age Always- 0

184 End-to-End_Error 0x0033 100 100 000 Pre-fail Always- 0

187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always- 0

188 Command_Timeout 0x0032 100 100 000 Old_age Always- 0

189 Factory_Bad_Block_Ct 0x000e 100 100 000 Old_age Always- 250

195 Hardware_ECC_Recovered 0x003a 100 100 000 Old_age Always- 0

196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always- 0

197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always- 0

198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline- 0

199 UDMA_CRC_Error_Count 0x0036 100 100 000 Old_age Always- 0

202 Perc_Rated_Life_Used 0x0018 090 090 000 Old_age Offline- 10

206 Write_Error_Rate 0x000e 100 100 000 Old_age Always- 0

如果是 OCZ的:

Device Model: OCZ-AGILITY3

Serial Number: OCZ-1OX963Q8B5X2V684

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x000f 086 086 050 Pre-fail Always- 135388659

5 Reallocated_Sector_Ct 0x0033 100 100 003 Pre-fail Always- 9

9 Power_On_Hours 0x0032 100 100 000 Old_age Always- 265772576277126

12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always- 15

171 Unknown_Attribute 0x0032 000 000 000 Old_age Always- 9

172 Unknown_Attribute 0x0032 000 000 000 Old_age Always- 0

174 Unknown_Attribute 0x0030 000 000 000 Old_age Offline- 13

177 Wear_Leveling_Count 0x0000 000 000 000 Old_age Offline- 1

181 Program_Fail_Cnt_Total 0x0032 000 000 000 Old_age Always- 9

182 Erase_Fail_Count_Total 0x0032 000 000 000 Old_age Always- 0

187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always- 0

194 Temperature_Celsius 0x0022 030 030 000 Old_age Always- 30(Lifetime Min/Max 30/30)

195 Hardware_ECC_Recovered 0x001c 120 120 000 Old_age Offline- 135388659

196 Reallocated_Event_Count 0x0033 100 100 003 Pre-fail Always- 9

201 Soft_Read_Error_Rate 0x001c 120 120 000 Old_age Offline- 135388659

204 Soft_ECC_Correction 0x001c 120 120 000 Old_age Offline- 135388659

230 Head_Amplitude 0x0013 100 100 000 Pre-fail Always- 100

231 Temperature_Celsius 0x0013 100 100 010 Pre-fail Always- 0

233 Media_Wearout_Indicator 0x0000 000 000 000 Old_age Offline- 2531

234 Unknown_Attribute 0x0032 000 000 000 Old_age Always- 3465

241 Total_LBAs_Written 0x0032 000 000 000 Old_age Always- 3465

242 Total_LBAs_Read 0x0032 000 000 000 Old_age Always- 2030

SSD是否健康的参数分析:

注意这时的使用寿命不在是象 intel ssd的 Media_Wearout_Indicator这个参数(当然 OCZ也有,在 Crucial就变成了Perc_Rated_Life_Used).但其实我们要看 SSD是否健康,主要是要通过 Wear Leveling Count(颗粒平均擦写次数)这个参数和Grown Failling Block Ct这个参数.

注意看下面二行:

170 Grown_Failing_Block_Ct 0x0033 100 100 000 Pre-fail Always- 0

173 Wear_Levelling_Count 0x0033 090 090 000 Pre-fail Always- 536

上面二个参数是关键:

Wear Levelling Count(颗粒平均擦写次数):先讲这个参数.更加重要.先声明这个硬盘是使用了一年的 SSD硬盘.图中显示的数据为536,即这块128G的硬盘的全盘写入/擦除(P/E)数为536次,显示还有 90%的寿命.所以大约这个硬盘使用的闪存颗粒的寿命为 5000多次的样子.536约为 5000的 10%,所以此项值为90(CA). Grown Failing Block Count(使用中新增坏块数):此项代表 SSD的闪存颗粒在使用时出现的坏块(类似于HDD的坏道)数量,此处数据为 0即尚未有出现坏块,若你命不好.新购买回来 SSD在正常使用时,很短的时间内这个数据产生较大变化,那代表盘可能有问题,早点找售后服务吧.

MegaCli常用参数组合介绍:

MegaCli-cfgdsply-aALL| grep Error【正常都是0】

MegaCli-LDGetProp-Cache-LALL-a0【写策略】

MegaCli-cfgdsply-aALL| grep Memory【内存大小】

MegaCli-LDInfo-Lall-aALL【查RAID级别】

MegaCli-AdpAllInfo-aALL【查RAID卡信息】

MegaCli-PDList-aALL【查看硬盘信息】

MegaCli-AdpBbuCmd-aAll【查看电池信息】

MegaCli-FwTermLog-Dsply-aALL【查看RAID卡日志】

MegaCli-adpCount【显示适配器个数】

MegaCli-AdpGetTime aALL【显示适配器时间】

MegaCli-AdpAllInfo-aAll【显示所有适配器信息】

MegaCli-LDInfo-LALL-aAll【显示所有逻辑磁盘组信息】

MegaCli-PDList-aAll【显示所有的物理信息】

MegaCli-AdpBbuCmd-GetBbuStatus-aALL|grep Charger Status【查看充电状态】

MegaCli-AdpBbuCmd-GetBbuStatus-aALL【显示BBU状态信息】

MegaCli-AdpBbuCmd-GetBbuCapacityInfo-aALL【显示BBU容量信息】

MegaCli-AdpBbuCmd-GetBbuDesignInfo-aALL【显示BBU设计参数】

MegaCli-AdpBbuCmd-GetBbuProperties-aALL【显示当前BBU属性】

MegaCli-cfgdsply-aALL【显示RAID卡型号,RAID设置,DISK相关信息】

磁带状态的变化,从拔盘,到插盘的过程中:

Device|Normal|Damage|Rebuild|Normal

Virtual Drive|Optimal|Degraded|Degraded|Optimal

Physical Drive|Online|Failed Unconfigured|Rebuild|Online

CentOS下检测硬盘上的坏道和坏块

让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的物理损坏或闪存晶体管失效导致的。

随着坏道的继续积累,它们会对你的磁盘或闪存容量产生令人不快或破坏性的影响,甚至可能会导致硬件失效。

同时还需要注意的是坏块的存在警示你应该开始考虑买块新磁盘了,或者简单地将坏块标记为不可用。

因此,在这篇文章中,我们通过几个必要的步骤,使用特定的磁盘扫描工具让你能够判断 Linux磁盘或闪存是否存在坏道。

以下就是步骤:

在 Linux上使用坏块工具检查坏道坏块工具可以让用户扫描设备检查坏道或坏块。设备可以是一个磁盘或外置磁盘,由一个如/dev/sdc这样的文件代表。

首先,通过超级用户权限执行 fdisk命令来显示你的所有磁盘或闪存的信息以及它们的分区信息:

sudo fdisk-l列出 Linux文件系统分区

然后用如下命令检查你的 Linux硬盘上的坏道/坏块:

sudo badblocks-v/dev/sda10> badsectors.txt在 Linux上扫描硬盘坏道

上面的命令中,badblocks扫描设备/dev/sda10(记得指定你的实际设备),-v选项让它显示操作的详情。另外,这里使用了输出重定向将操作结果重定向到了文件 badsectors.txt。

如果你在你的磁盘上发现任何坏道,卸载磁盘并像下面这样让系统不要将数据写入回报的扇区中。

你需要执行 e2fsck(针对 ext2/ext3/ext4文件系统)或 fsck命令,命令中还需要用到 badsectors.txt文件和设备文件。

-l选项告诉命令将在指定的文件 badsectors.txt中列出的扇区号码加入坏块列表。

------------针对 for ext2/ext3/ext4文件系统------------$ sudo e2fsck-l badsectors.txt/dev/sda10或------------针对其它文件系统------------$ sudo fsck-l badsectors.txt/dev/sda10这个方法对带有 S.M.A.R.T(自我监控分析报告技术Self-Monitoring, Analysis and Reporting Technology)系统的现代磁盘(ATA/SATA和 SCSI/SAS硬盘以及固态硬盘)更加的可靠和高效。S.M.A.R.T系统能够帮助检测,报告,以及可能记录它们的健康状况,这样你就可以找出任何可能出现的硬件失效。

你可以使用以下命令安装 smartmontools:

------------在基于 Debian/Ubuntu的系统上------------$ sudo apt-get install smartmontools------------在基于 RHEL/CentOS的系统上------------$ sudo yum install smartmontools安装完成之后,使用 smartctl控制磁盘集成的 S.M.A.R.T系统。你可以这样查看它的手册或帮助:

$ man smartctl$ smartctl-h然后执行 smartctrl命令并在命令中指定你的设备作为参数,以下命令包含了参数-H或--health以显示 SMART整体健康自我评估测试结果。

$ sudo smartctl-H/dev/sda10检查 Linux硬盘健康

上面的结果指出你的硬盘很健康,近期内不大可能发生硬件失效。

要获取磁盘信息总览,使用-a或--all选项来显示关于磁盘所有的 SMART信息,-x或--xall来显示所有关于磁盘的 SMART信息以及非 SMART信息。

阅读剩余
THE END