楼主: 菩提祖师
收起左侧

[已解决] 机械硬盘中向已删除区域写入数据要先清空原来的数据,而不是直接覆盖?

 关闭 [复制链接]
天月来了
发表于 2014-6-23 16:12:30 | 显示全部楼层
菩提祖师 发表于 2014-6-23 15:56
意思是ssd要先清空区域再写入数据?为什么不能直接覆盖呢?反正空间已经释放了,直接写就行了,清空它干什么?

ssd存储芯片是电子的,写之前得还原存储单元区域的电子水平吧,

磁盘或许象磁带那样,写之前必须将磁道还原至空白通用状态吧。

就象磁带录音,你要是写新的之前不擦掉过去的,可能过去的部分数据和新的数据有混杂的可能吧

估计的
专业路过
发表于 2014-6-23 16:58:35 | 显示全部楼层
机械硬盘因为寻道原因,找到扇区ID定位到扇区首先会尝试读写测试,失败八次就是返回bad了,累计一定数量操作系统就弹出数据冗余失败,由于机械硬盘是用磁来对电平进行转换的,所以必须先进行消磁处理,然后一次性将磁头上面的数据加磁到磁盘上,否则硬盘预先无法xor计算磁头上面的数据;儿SSD则不同,描述数据的本身就是电平,预写时候可以直接寻址取出计算,寿命问题故不需要改变的则不会去改变
菩提祖师
 楼主| 发表于 2014-6-23 20:38:06 | 显示全部楼层
专业路过 发表于 2014-6-23 16:58
机械硬盘因为寻道原因,找到扇区ID定位到扇区首先会尝试读写测试,失败八次就是返回bad了,累计一定数量操 ...

意思就是像11楼所说的,机械硬盘需要先把磁盘还原为空白,防止数据混乱?
但有些不明的"否则硬盘预先无法xor计算磁头上面的数据"
也就是仍然不明白为什么要清空.
比如一个文件,写入1字节,系统索引就知道这个文件是1字节了.
虽然底层是按照扇区分配,但像用C语言的fread读取,如果超过长度,就会产生EOF,而不是继续读取相同扇区内的其它字节.
菩提祖师
 楼主| 发表于 2014-6-23 20:41:08 | 显示全部楼层
天月来了 发表于 2014-6-23 16:12
ssd存储芯片是电子的,写之前得还原存储单元区域的电子水平吧,

磁盘或许象磁带那样,写之前必须将磁 ...

但系统应该有索引,知道文件的长度啊.
就算混乱,那也是文件之外的东西.
比如用C语言的fread,读取到文件结束就结束了,而不是继续读取最后一个相同扇区的其它数据.
xiajiebuhui
发表于 2014-6-23 23:04:03 | 显示全部楼层
菩提祖师 发表于 2014-6-23 15:56
意思是ssd要先清空区域再写入数据?为什么不能直接覆盖呢?反正空间已经释放了,直接写就行了,清空它干什么?

额 ,我只肯定先做标记,到一定程度再做处理,具体是不是删除 要查查资料了

       Trim是ATA指令的一种,由微软提出,并在Windows NT6.1操作系统(Windows 7以及Windows Server 2008 R2)中首次实现。Trim需要操作作系统支持,所以不要想着你在XP下用什么软件也能实现Trim,很遗憾告诉你除了NT6.1或者更新的NT6.2(即Windows 8)等等之外都是不可以的。这个指令的作用是标记已删除的文件,并且通知SSD主控制器这些文件已经无用,这样主控就可以在空闲时间提前擦除这些文件对应的Block块。之前说过SSD的擦除速度很慢,所以这样提前擦除的操作可以维持SSD性能到一个良好的状态。打个比喻:没有Trim的情况下就好像等着用盘子的时候才开始洗盘子,速度自然非常非常慢;有了Trim的情况下主控会在空闲的时候先把可能要用到的盘子洗掉,这样等到用盘子的时候就不需要等待了。
http://bbs.pcbeta.com/viewthread-1043654-1-2.html 以上是来自远景的一段

不明确提出这个事情。

评分

参与人数 1经验 +4 收起 理由
woxihuan2011 + 4 感谢提供分享

查看全部评分

菩提祖师
 楼主| 发表于 2014-6-24 00:50:58 | 显示全部楼层
本帖最后由 菩提祖师 于 2014-6-24 00:59 编辑
xiajiebuhui 发表于 2014-6-23 23:04
额 ,我只肯定先做标记,到一定程度再做处理,具体是不是删除 要查查资料了

       Trim是ATA指令的一 ...


为什么要擦除?直接写进去就行了,反正系统知道文件大小,API读文件的时候超过特定长度就EOF就行了,何必非的清空?
Tue Jun 24 00:51:32 CST 2014补充:
正在仔细看您提供的资料,貌似有介绍为什么.
Tue Jun 24 00:55:48 CST 2014补充:
还是没看出来为什么删除文件就一定要"擦除"?
难道文件系统不知道哪些地址是空闲?哪些地址被哪些文件占用?非要擦除?
xiajiebuhui
发表于 2014-6-24 08:55:56 | 显示全部楼层
菩提祖师 发表于 2014-6-24 00:50
为什么要擦除?直接写进去就行了,反正系统知道文件大小,API读文件的时候超过特定长度就EOF就行了,何必非 ...


文件系统知不知道,不清楚。
但是对于ssd来说,trim的指令不就是做这个用的么、

这些问题我也不清楚,建议你去
【新提醒】技术论坛
http://bbs.pceva.com.cn/
问下,有专门的板块讨论存储技术

问回来记得贴到一楼哦

评分

参与人数 1人气 +1 收起 理由
菩提祖师 + 1 貌似不错的论坛,就是不知是否会因水平太菜.

查看全部评分

茴八香
发表于 2014-6-24 13:43:04 | 显示全部楼层
我接触的是这样的  HDD 是在删除的扇区中的文件前面附加统一的一个标记,仍然储存在该扇区,所以即使删除或者格式化后还可以尝试恢复,但是当有新的数据被再次写入到相同扇区时,则完整的契合到扇区中,原有数据彻底清空,所在扇区被装入新的数据,直到下一次被删除或者被新的文件重新装入到扇区。 SSD 没用过,不清楚,考虑到是颗粒组成, 我假想成U盘形式来看的话,U盘的恢复则比较困难,U盘的恢复是在删除文件标记后,有任何读写操作,都可能导致数据彻底消失或者损坏
菩提祖师
 楼主| 发表于 2014-6-24 17:47:37 | 显示全部楼层
茴八香 发表于 2014-6-24 13:43
我接触的是这样的  HDD 是在删除的扇区中的文件前面附加统一的一个标记,仍然储存在该扇区,所以即使删除或 ...

写入本身就是一个覆盖过程,怎么还"先清空,后写入"?
wjlaugh
发表于 2014-6-24 20:25:40 | 显示全部楼层
菩提祖师 发表于 2014-6-24 17:47
写入本身就是一个覆盖过程,怎么还"先清空,后写入"?

个人觉得机械硬盘不需要先清空数据再写入,因为磁极只有N和S(没有中间状态)
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-6-26 15:57 , Processed in 0.096123 second(s), 14 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表