作者Ahhhhaaaa (你是个好人)
看板Storage_Zone
标题[请益] 低阶格式化软体 写入0的运作原理
时间Sat Feb 25 19:13:44 2023
最近有使用一款HDD Low Level Format Tool来做低阶格式化
我知道现代的硬碟做低阶格式化就是把硬碟每个区块写入、填满0 (Zero-filling)
但想请问一下,对於一颗已经有05值黄灯的硬碟
(当前199 最差199 临界140 RAW值35)
我知道这意思是已经有某些区块(sector)曾经发生过写入错误,因此判定为坏轨、不再对
其写入,而是把这份资料改为在「备用区块」进行写入,发生一次就使得05值计数增加
一次
不过我比较不清楚的是一颗硬碟会有多少备用区块可以用? 是由韧体来管理与记录这些备
用区块的吗?(因为是SMART值在记录 所以应该是韧体吧)
被判定坏轨的区块也会被记录在韧体里头吗? 是由韧体来管理、禁止读写头对其写入吗?
会这样问是因为我想知道,LLF软体到底会不会对那些已被判定为坏轨的区块进行写入?
如果LLF是全碟进行一次写入0的话,那有没有可能去写到当初已被判定为坏轨的区块,然
後再次发生写入错误,再次判定坏轨数量增加,再次把更多备份区块拿来使用,导致备份
区块的剩余数量又减少了?
这样的话迟早会因为备份区块数量减少到低於临界值而变成红灯吧?
另外,理论上这颗硬碟应该是4Kn,每个区块有4096B+100B(ECC校验区)对吧?
所以SMART值看到的05值,新买来的硬碟看到是(当前200 最差200 临界140),就代表这颗
硬碟的备份区块被设计为只有200个区块吗? 然後被使用到低於140就是红灯临界了?
一个区块4KB,一颗1T硬碟的区块数量都破亿了吧,只设定200个备份区块会不会有点少?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.251.64.160 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Storage_Zone/M.1677323626.A.796.html
1F:→ kpg0427 : 明明是同一个位置坏轨,为什麽会判定增加?假设之 02/25 19:19
2F:→ kpg0427 : 前要不要先确定一下理论的正确性? 02/25 19:19
韧体要怎麽知道这区块是先前坏轨的同一个位置?
假设之前坏轨的区块是编号第101区块,这些各区块的编号、区块是否坏轨等资讯,会被记
录在哪里?
这些资讯会被记录在硬碟某地方? 还是韧体ROM里?
如果是记录在硬碟里,那我用软体把硬碟清空了,这些资讯还会在吗?
3F:→ andy199113 : 没救 02/25 19:28
※ 编辑: Ahhhhaaaa (60.251.64.160 台湾), 02/25/2023 19:38:18
4F:推 smallreader : 05是已经remap过的坏轨,填不到原来的坏轨了 02/25 20:08
5F:→ smallreader : 韧体的领域,任何软体都管不到,要修改可能要接飞线 02/25 20:13
6F:→ smallreader : 然後用PC3000去debug吧... 02/25 20:13
7F:→ smallreader : LBA对应硬体扇区的关系不透明,个人猜测可能是间隔 02/25 20:19
8F:→ smallreader : 多少磁轨就安插备用磁轨这样,所以备用轨在remap就 02/25 20:19
9F:→ smallreader : 不需要seek很远 02/25 20:19
10F:→ smallreader : 而且可以想像,磁碟有很多磁盘,就算坏轨所在磁盘的 02/25 20:40
11F:→ smallreader : 本地的备用轨都用完,还是可以remap到其他磁盘对应 02/25 20:40
12F:→ smallreader : 位置的磁轨。甚至再进一步,让磁盘A第N至N+3k圈以 02/25 20:40
13F:→ smallreader : [B](N, N+k)、[C](N+k, N+2k)、及[D](N+2k, N+3k)圈 02/25 20:40
14F:→ smallreader : 来当备用轨,如此交错分配来减少remap对性能的冲击? 02/25 20:40
15F:→ smallreader : 实际上over provision的量应该没这麽多,要兼顾成本 02/25 20:43
16F:推 smallreader : 然後05值就把他想成SSD健康度 有一个内在数值作参考 02/25 20:46
17F:→ comipa : 韧体不会让你碰被mark成失效的部分 跟本不让你清 02/25 23:44
18F:推 HMKRL : FW不让你碰的东西多咧 你用软体下去洗不用怕碰到map 02/26 12:59
19F:→ HMKRL : ping或已经被换掉坏磁区 要写那块就会跑去用替代了 02/26 12:59
20F:→ sorrojvr : 出现05应该就是备用区也用完了? 02/26 13:25
22F:→ smallreader : 05有921条但指数才从200减到169而已 02/26 13:34
23F:→ smallreader : 如果他是线性的 那大概30对1 算到1800条过临界 02/26 13:37
24F:→ smallreader : 有扫过LBA 红区集中在前头 所以我分割避开继续用 :P 02/26 13:41
25F:→ smallreader : 开始是当准系统的系统兼BT碟(做种)用,等到系统故障 02/26 13:53
26F:→ smallreader : 无法用sfc /scannow跟dism...restorehealth排除,才 02/26 13:53
27F:→ smallreader : 发现系统分区坏轨坏了整片,且05 C4 C5 C6稳定增加. 02/26 13:53
28F:→ smallreader : 用分割把污染区(大约在90G位置)划开,第一次是划100 02/26 14:00
29F:→ smallreader : 後头把资源塞回去,後来监控05还在增加,就重划200G 02/26 14:00
31F:→ smallreader : 总之我的想法:污染区有大量红块,可以当作主控已经 02/26 14:35
32F:→ smallreader : remap过,换成备用轨也在受损区内,所以重扫还是坏 02/26 14:35
33F:→ smallreader : 的,对它写入只会继续增加重定位事件跟05值,乾脆就 02/26 14:35
34F:→ smallreader : (分割表=软体方式)封锁起来不要任何读写 02/26 14:35
36F:→ smallreader : :Low Level Format 原始意义是让碟片组的CHS对齐 02/27 03:53
37F:→ smallreader : 用於早期的MFM或RLL硬碟(真的不认识) 02/27 03:58
38F:→ smallreader : 新硬碟安装到位需要先跑一次LLF,校正并适应新环境 02/27 04:05
39F:→ smallreader : 进入ATA时期後就不再校正对齐,变成全盘写零初始化 02/27 04:11