资讯
HOME
资讯
正文内容
修复nand 为什么固态会掉盘?著名的30分钟大法修复是什么原理?
发布时间 : 2024-10-11
作者 : 小编
访问数量 : 23
扫码分享至微信

为什么固态会掉盘?著名的30分钟大法修复是什么原理?

如果现代的台式机或者笔记本忽然断电(Power Loss),你觉得哪个硬件部分容易损坏?出乎大多数人的意料的是,固态硬盘SSD最脆弱,容易出现掉盘的现象,也就是BIOS和操作系统不认盘的情况。今天我们就一起来Deep Dive一下原理和应对之道,并对有趣的“30分钟大法”的原理和是否正确进行一些分析。

FTL损坏和丢失

我介绍了很多SSD的原理,其中最重要的根本是对FTL的理解。SSD甚至SD卡、手机存贮的很多问题和解决方案都或多或少地和它相关,再怎么强调都不为过。为了理解后面的原理,我们先来简单回顾一下FTL:我们的写(Program)Flash操作只能把bit 1改成0,而不能从0改成1. 即我们可以把11110000改成11000000,但不能改成11111111。即有点像逻辑and操作(我们可以通过NAND这个名字联想记忆一下)。那么如何把0改回1呢?这就要靠擦除操作了,但是别忘了,NAND flash的寿命是由其擦写次数决定的(P/E数 (Program/Erase Count)来衡量的),频繁的擦除慢慢的会产生坏块,如FAT分区的文件分配表(老狼:FAT文件系统与UEFI)等。为了能够做到寿命均衡(Wear Levelling)和对坏块的遮蔽,就需要一个逻辑地址(LBA,logical block addresses )和物理地址(PBA, physical block addresses)的对应表,对外界暴露逻辑块,里面是具体是哪个物理块,固件自己做主,这个对应关系表就是FTL表:

因为LBA大部分实现是基于Page的,也叫做Page Mapping Table (PMT):

FTL看起来挺简单,但它是SSD、NAND等基础逻辑,它的实现多种多样,是各个固件的核心机密。也有些Open Source的方案。

FTL表在哪里呢?作为核心数据结构,它当然也要存储在Flash上。但由于它会被频繁更新,所以每次改动也不能立刻写会Flash,一般会先暂存在内存中,在积累到一定程度,再写回Flash:

什么时间写回,这是SSD固件的核心机密之一。另一方面,随着SSD容量的提高,FTL表的容量也快速上涨。我们以8GB的为例,FTL表不加处理可以达到8MB;以此类推,800G的SSD,FTL表可以有800MB!有些省空间的方案可以大大减小FTL表的大小,但也高达数十MB。这么大,FTL表也就有了部分被换入换出的过程。如何设计,也是很讲究技巧的。

FTL表如此重要,没了它,整个SSD/SD卡就没法工作了。如果在FTL写回Flash之前,还在内存的时候,忽然没电了,内存数据丢失,FTL表也就丢失了。有鉴于此,高端SSD和服务器SSD都加上了电容,来作为应急供电方案,让SSD控制器有时间把内存中的FTL表和一些缓存内容存到Flash上去:

现实中的例子,我们在M.2的SSD上面有很多很小的电容:

在Vcc没电的时候,这些电容的gate就会打开,会为主控争取1ms左右的时间。主控会立刻放弃现在所有没有存储的数据,而立刻开始存储FTL表,保证不会出大问题。

在企业级的SSD中,有的DRAM大小将近1GB,而企业SSD的数据完整性要求极高,不容有失,不但FTL表要存好,DRAM中没有存储过的,也必须全部存下来。这就需要很大的电容,来争取更多的时间,如果我们拆开企业SSD,就会发现很多大黄快:

它们也是为了这个目的。

但是,一些低端消费级的SSD,没有这种措施,忽然掉电,会造成FTL丢失。那么发生这种情况是不是SSD就报废了呢?也不是。

FTL表的重建

在内存中FTL丢失之前,Flash上还有上次的FTL内容,虽然已经过时了,但总比没有好吧!于是可以搜索SSD中的Flash,找到上次的FTL,这样尽管会丢失一些信息,但大部分数据可以保持。于此同时,有些实际块已经被分配使用过了,再次用会发生错误,就需要修正最后的FTL。那么怎么修正呢?

每个Flash的page都有一些额外的空间,这些空间大部分做ECC校验用,但还有些富余,我们拿来做Mapping Flag(MF):

有了这个提示,我们可以逐Page扫描整个Flash,来修正FTL。

看到逐Page,就知道这是个很耗时的工作。现在SSD那么大,需要不少时间,可以高达数分钟乃至数十分钟!

那么什么时间做FTL的重建呢?不少主控都在发现错误后会开始重建,直到成功重建,主控才会响应ATA等命令。这就是为什么忽然断点后,有些SSD会很长时间没有响应,想掉盘一样了!那么为什么有时候断电后又没问题呢?如果当时最新的FTL已经被写回Flash中去,没有错误,当然也就不会出问题了。

30分钟大法是怎么回事?

掉电后各个主控的表现不一,这和它们的FTL存储算法有关。某些主控可以迅速恢复,有些则可能耗时很久,为了给某些主控充足的时间重建FTL表,掉盘后可以这样做:

1.掉电开机后,发现掉盘。如果是系统盘,则启动失败,如果是数据盘,则在操作系统里面发现该盘没有了。

2.不要立即重启,啥也不干,等待30分钟,让SSD主控充分的时间自行修复FTL。

3. 30分钟后,关机。再开机,看能不能找到该SSD。

有些同学还有些额外的步骤,即不插数据线,光插电源线开机30分钟。尽管我现在已经不做Flash相关工作,但我从经验和原理上认为这个步骤不是必须的。另外M.2的SSD也可照此办理。

需要特别提醒的是,比较忌讳在此过程中十分烦躁,不停关机开机和重启,打断主控重建FTL的过程,有可能加剧错误造成彻底不可以用了。

结论

断电会造成FTL表损坏,进而可能出现掉盘的现象。正确利用30分钟大法,可以修正部分问题,关键是给主控充分的时间进行FTL表的重建。其实不光断电,高温也有可能造成掉盘。我在我的笔记本M.2上插了块500GB某厂SSD,在大量拷贝电影时,过热会让该SSD主控忽然停止工作。我的笔记本这时就会没有响应,在过了一会后,要不蓝屏,要不就是发现该盘符没有了。这是我如果直接重启,就会发现在BIOS里面和Windows中,该硬盘都没有了。我这时就会让笔记本凉一会,再重启,硬盘就又出现了。这也是30分钟大法的一个变种。

如果还不能修复,其实还可以进入工程模式进行恢复。但是该过程比较复杂,软件昂贵,还是留给专业人士吧!

我在下一篇文章会介绍为什么有时候micorSD卡(TFlash卡/T卡)会忽然进入类似写保护状态,敬请期待!

每日一词生态保护修复 ecological conservation and restoration

据自然资源部介绍,近年来,我国生态保护修复取得明显成效,同时在全球生态治理方面做了大量工作。

China has achieved remarkable progress on ecological conservation and restoration in recent years, contributing significantly to global efforts to build an ecological civilization, according to the Ministry of Natural Resources.

图为厦门同安湾整治前后对比,上图为整治前画面,下图为整治后画面。(自然资源部第三海洋研究所供图)图片来源:求是网

【知识点】

6月5日是世界环境日。2024年世界环境日重点关注恢复土地、遏制荒漠化与建设抗旱能力,呼吁各国政府和多边组织履行承诺,恢复万千生命共同依赖的土地,并提高民间社会团体、企业和个人的意识,深刻认识到各自与土地和平相处的责任。

我国划定生态保护红线,实现一条红线管控重要生态空间。全国实施52个山水林田湖草沙一体化保护和修复重大工程,修复治理面积超过1亿亩。2016年以来,累计完成历史遗留废弃矿山治理修复面积超过450万亩,整治修复海岸线近1680公里、滨海湿地超过75万亩,我国成为世界上少数几个红树林面积净增长的国家之一。

中国政府推动实施的山水林田湖草沙一体化保护和修复工程,即“中国山水工程”,成功入选首批十大“世界生态恢复旗舰项目”。中国开展了全球最大规模的生态系统修复工作,在生态修复方面所做的工作和取得的成就,得到国际社会的高度评价。

【重要指示】

在全面建设社会主义现代化国家新征程上,要保持加强生态文明建设的战略定力,注重同步推进高质量发展和高水平保护,以“双碳”工作为引领,推动能耗双控逐步转向碳排放双控,持续推进生产方式和生活方式绿色低碳转型,加快推进人与自然和谐共生的现代化,全面推进美丽中国建设。

On the new journey of building a modern socialist country in all respects, efforts should be made to maintain strategic resolve in advancing ecological progress and promote high-quality development in sync with high-standard protection. With a focus on carbon peak and carbon neutrality, the country should facilitate the gradual transition from dual control over the amount and intensity of energy consumption to dual control over the amount and intensity of carbon emissions. Efforts should be made to promote the transition towards green and low-carbon production methods and lifestyles, and accelerate the advancement of modernization featuring harmony between humanity and nature to build a Beautiful China in all respects.

——据新华社杭州2023年8月15日电,习近平在首个全国生态日之际作出的重要指示

【相关词汇】

世界环境日

World Environment Day

生态文明

ecological civilization

中国日报网英语点津工作室(本文于“学习强国”学习平台首发)

来源:中国日报网

相关问答

repare和maintainence的区别?

区别是:maintenance是维护保养的意思,而repare只有维护没有保养的意思;具体如下:1、maintenance英[meintinəns]美[mentənəns]词典[计...

开机出现英文提示,IANDK is compressed 叫按ctrl+alt+del重...

1、找一张带有系统修复功能的win7安装盘;PS:一般win7安装盘都有修复功能了,如果没有的话可以上网查下如何制作带有修复功能的win7系统盘2、出现win7安装字样后...

戴尔燃7000显示你的电脑需要 修复 怎么处理-ZOL问答

nihaopenny系统有文件损坏掉了,冲起机器,直接重新做系统或者恢复系统备份了,系统自带的那个系统修复不太靠铺,建议你还是别在那上边浪费时间了。有用(0)回复...

【repair和什么词组或单词的意思一样尽量多一点、、】作业帮

[回答](修理使恢复完整)repair;restore;renovate:therestorationofapicture;一幅画的修复restoreabuildingtoitsor...

moil and toil怎么用?

moilandtoil是一个英语短语,表示辛劳、劳累的含义。1."moil"指的是辛苦劳作,做出艰苦努力来完成某个任务,也可以指身心疲惫。2."toil&qu...

电脑开机显示a problem?

Aproblemhasbeendetectedandwindowshasbeenshutdowntopreventdamagetoyourconputer,你的电脑蓝屏...

开机总提示正在扫描和 修复 驱动器怎么办?

1.这是系统在扫描你的硬盘,可能是你自己操作的问题,如果你非法关机,直接断电或者直接按电源关电,电脑开机的时候会对你的硬件做检查,包括你的硬盘。还有就是...

电脑中了rasadhlp病毒怎么清理?

一、关闭共享文件夹使用电脑时,我们经常会用到共享文件,它里面的内容可以轻易地被修改、复制。对于不必要的共享文件,我们要关闭。二、清空浏览器临时文件...

怎么 修复 wps文件?

这题我会!遇见过☞文件无法打开,或☞文件打开乱码等情况的伙伴们看过来,从事数据恢复行业20余年的“技术宅”效哥,直接给大家上权威恢复方法啦~方法一:通过...

在英语口语中,修理常用repair吗?_作业帮

[回答]mend,repair,patch,fix这些动词均含"修理,修复"之意.mend通常指较简单的修复过程,一般不需要专门技术或特殊工具.repair可与mend换用,但一般指需要...

 法官职业道德  风胸 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部