
前阵子给老家那台飞牛补了块4T酷狼,图省事,开箱SSH进去smartctl瞄了一眼,通电9小时、型号对得上,心想全新盘稳了,格式化直接上数据。第三天进后台一看,Current_Pending_Sector冒出个1。就一个待定扇区,文件倒是一个没坏,但我心里膈应了整整一星期。后来给小机箱添第二块盘,这回我认认真真挂机跑了18个小时badblocks写零,跑完看着「0/0/0 errors」那行字才踏实。新盘检测这事到底值不值、你用不用做,这篇一次讲透。
新硬盘也会坏,不是吓唬人
很多人觉得全新盘带塑封有防伪,坏了是小概率轮不到自己。机械盘的失效有个说法叫浴缸曲线:失效率开头几个月偏高,中间几年趴底,寿命末期又翘起来。开头那一段叫早期失效期——工厂筛选没筛干净的边缘元件、盘片上没暴露的弱扇区,基本都在头几百个小时里现形。厂商出厂只做抽检加短测,一块4T盘八十多亿个扇区,不可能每一块都全盘写读验证一遍,这个漏网概率就留给了你。
还有一层是运输。硬盘标称非运行状态能抗250G冲击、运行状态70G,听着结实,但那是实验室的脉冲极限值,快递装卸抛一下、路上连续颠簸,弱扇区就是这么被震出来的。所以「新盘检测」本质上就干一件事:把厂商没做完的全检自己补一遍,让带病盘在保修期内、在你存数据之前暴露出来。换新的运费都不要你出,就问你揪出来值不值。
不信邪的可以翻翻Backblaze每年发布的硬盘失效统计,人家机房几万块盘挂着跑,年鉴里年年都能看到新盘头几个月的年化失效率比第二年高。机房环境恒温恒湿尚且如此,你家快递柜到楼道这段路的颠簸,只会更精彩。碰上弱扇区不是你运气差,是概率本来就在那摆着,区别只是你上机前抓到、还是上机后抓到。
三种检测,狠度差得很远
挂在嘴边的「检测一下」其实分三档,查出来的东西完全不一样:
| 方式 | 耗时(4T) | 干了什么 | 查得出什么 |
| smartctl -t short | 2~5分钟 | 电路和磁头基本动作自检 | 彻底坏死的盘,查不出弱扇区 |
| smartctl -t long | 6~8小时 | 全盘顺序读一遍 | 读得出错的扇区,查不出写不进的 |
| badblocks写零(-wvs -t 0x00) | 15~18小时 | 全盘写零再读回验证 | 读写都过了一遍,最狠 |
我那块pending盘就是活例子:到手short两分钟通过,long我偷懒没跑,直接上数据。后来复盘把它拆下来跑写零,跑到六成多的时候读回验证报了一个扇区——这地方读是读得过的,写进去再读就漂了。这种「写能力不行」的弱扇区,short和long都抓瞎,只有写零能逼出来,这也是我后来只认badblocks的原因。
badblocks写零全流程,能等的人再跑
丑话说前面:写零会把整盘数据清空,只能对空盘做;中途断了没有断点续跑,断了就从头再来。挑个周末挂机,别赶时间。具体三步:
第一步,认盘符。SSH进去先lsblk看清楚哪块是新盘,盘符看错,写零写的就是数据盘,这种事故没有后悔药。稳妥点可以把数据盘下电拔掉,机器里只留目标盘,想写错都难。
第二步,跑命令:
badblocks -wvs -t 0x00 /dev/sdb
-w是写测试,-t 0x00指定只写零这一个模式。默认的-w不带-t会写0xaa、0x55、0xff、0x00四种模式各验证一遍,4T得跑两天两夜,家用真没必要,写零一遍足够把弱扇区逼出来。-v显示进度和错误数,-s给个进度条,不然黑屏挂十几个小时心里没底。
第三步,等。4T的CMR盘写一遍读一遍,我这块跑了17个半小时,晚上十点挂机,第二天下午三点半收工。叠瓦SMR盘直接劝退,写放大能让你跑30小时往上,买盘的时候就该按换盘那篇的两道关把CMR确认好。跑的期间把硬盘休眠关了,不然盘一睡检测就断;机器要是本来就有偷写盘的老毛病,正好这回一并排查。
跑完看末尾输出,「Pass completed, 0/0/0 errors」就是全过。真报了错误也别慌,记下块号,再跑一次smartctl -a看Reallocated和Pending有没有涨——现代硬盘固件自己会把坏扇区重映射掉,红黄牌怎么判读我在坏盘前兆那篇写过。全新盘就有重映射的,别修别犹豫,直接走售后换新。
跑检测这几个坑,我替你踩过了
第一个坑,用USB硬盘盒顺便检测。不少人新盘到手先插硬盘盒在电脑上验,思路没错,但USB桥接芯片经常把smartctl的指令拦在半路,读出来一堆Unsupported,这时候加个-d sat参数走SCSI转ATA就行。badblocks在USB盒里跑还容易中途掉线,跑一半报错先别急着判死刑,拆下来直连SATA再跑一遍,八成是盒子的锅。
第二个坑,检测期间舍不得停业务。long和写零都是满负荷读写,磁头臂全程在扫,你这时候开着Jellyfin看4K,转码加读盘一起抢,卡成PPT别怪盘。我的做法是睡前挂上,早上看结果,NAS该干的事一点不耽误。写零时盘温也比平时待机高个七八度,机箱闷在柜子里的,侧板先打开。
群晖飞牛自带的扫描,够不够用
不想碰命令行,系统里也有现成的。群晖在存储管理器、HDD/SSD、选中硬盘、健康信息、测试这一串路径里,有快速测试和完整测试两档,完整测试底层就是smartctl long,4T挂后台跑六七个小时,期间NAS照常用。飞牛在存储空间管理里选中硬盘做健康检测,逻辑一样。
但要清楚图形化的天花板:它们只读不写。读不出的坏它能抓,「写得进读得回」这种最阴的弱扇区它没辙。所以我的用法是折中的:空盘到手先用系统自带的完整测试挂一晚,读没问题、盘又是拿来装可再生的影视下载,直接上;要放照片和文档这种丢了就没了的东西,再补一晚写零。听着夸张,其实挂机跑你该干嘛干嘛,比第三天冒pending再倒腾数据省事多了——毕竟重要数据的底牌从来是备份,检测只是少给自己找事。
到底做不做:对号入座
| 你的情况 | 建议 |
| 放照片文档等不可再生的数据 | long一晚+写零一晚,都值得 |
| 一次买多块要组RAID | 必须做,带病盘重建时要命 |
| 二手盘或者来路存疑 | 写零是底线,先查通电小时 |
| 纯下载盘、影视库 | short加long够了,坏了重下 |
| 品牌整机有保修兜底 | 自带完整测试过一遍就行 |
| 当天就要用等不了 | 先short,有空再补long |
多说一句组RAID的:阵列里混进一块带病盘,平时没事,等哪块盘退休触发重建,带病盘跟着高负载跑十几个小时,很容易连环倒,重建窗口有多熬人我在RAID那篇算过账。一次买几块盘的朋友,这步千万别省。
我的完整顺序压缩成五行:开箱smartctl info查通电小时和固件,拦翻新盘;空盘挂一晚long,拦读错误;重要用途再挂一晚写零,拦写弱扇区;全过了再格式化挂载上数据;头两周重要文件多备一份。18个小时听着吓人,实际就是两个晚上的挂机,电费不到一块钱。比起第三天盯着pending发呆,这钱花得一点不冤。

发表评论