查看: 8219|回复: 20
收起左侧

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

 关闭 [复制链接]
菩提祖师
发表于 2013-10-21 16:54:13 | 显示全部楼层 |阅读模式
本帖最后由 菩提祖师 于 2014-6-24 18:13 编辑

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

文章:http://diy.pconline.com.cn/cpu/study_cpu/0911/1923475_1.html
该文章说道机械硬盘和SSD区别之一就是SSD会直接覆盖已删除区域,而机械硬盘会先清空再写入

Tue Jun 24 18:12:46 CST 2014补充:
根据某论坛的说法,这种"机械硬盘需要先清空,再写入"完全是个误区,是个坑.
ZHIZAI100
发表于 2013-10-21 20:32:15 | 显示全部楼层
本帖最后由 ZHIZAI100 于 2013-10-21 20:34 编辑

没必要填充数据再覆盖,除非为了数据保密。
普通删除文件只是删除了标记,实际数据还是存在的,再写入也不一定是这个区域,所以有可能恢复数据。
SSD估计更不会填充的,平衡写入算法,要禁止碎片整理的。
菩提祖师
 楼主| 发表于 2013-10-21 23:30:54 | 显示全部楼层
ZHIZAI100 发表于 2013-10-21 20:32
没必要填充数据再覆盖,除非为了数据保密。
普通删除文件只是删除了标记,实际数据还是存在的,再写入也不 ...

那机械硬盘为什么是要"当下次在磁道上进行写入操作时,系统才会将该磁道上原有的数据清空再进行写入",而不是直接覆盖?
ZHIZAI100
发表于 2013-10-22 00:23:42 | 显示全部楼层
本帖最后由 ZHIZAI100 于 2013-10-22 00:24 编辑
菩提祖师 发表于 2013-10-21 23:30
那机械硬盘为什么是要"当下次在磁道上进行写入操作时,系统才会将该磁道上原有的数据清空再进行写入",而不 ...


有清空的过程吗好像没有填充数据,我的理解是清空只是删除标记,数据直接覆盖了,也可能没完全覆盖
一般销毁数据的方法是磁盘填充,写00或FF,很难恢复的,而平常删除操作,再写入数据,有可能没覆盖,所以有可能恢复数据

评分

参与人数 1经验 +5 收起 理由
woxihuan2011 + 5 感谢解答: )

查看全部评分

菩提祖师
 楼主| 发表于 2013-10-22 00:37:34 | 显示全部楼层
ZHIZAI100 发表于 2013-10-22 00:23
有清空的过程吗好像没有填充数据,我的理解是清空只是删除标记,数据直接覆盖了,也可能没完全覆 ...


我也不知道啊,这篇文章说"机械硬盘是写入前清空被标记的区域,然后再写入",我也记得没有所谓"清空",只是标记被删除(释放)区域,然后下次写入时就覆盖写入,没听说过还要先清空再进行写入的.(机械硬盘而言,SSD不了解)
灰羽love
发表于 2013-10-22 10:14:26 | 显示全部楼层
额。。。话说。。。。。我的U盘放着n张女友的果照。。。。然后被他爹发现。。。然后。。。。被丢进派出所。。。然后个格式化U盘。。。。然后重新写了些东西进去然后晚上自己无聊试着恢复。。。结果全部都回来了。。。。。
xiajiebuhui
发表于 2014-6-22 18:09:57 | 显示全部楼层
似乎反了。ssd应该是删除坐标记。
需要用的这个部分空间在提前做删除处理才对
伊川书院
发表于 2014-6-22 21:20:56 | 显示全部楼层

我觉得应该是反过来说才对。
菩提祖师
 楼主| 发表于 2014-6-23 15:56:29 | 显示全部楼层
xiajiebuhui 发表于 2014-6-22 18:09
似乎反了。ssd应该是删除坐标记。
需要用的这个部分空间在提前做删除处理才对

意思是ssd要先清空区域再写入数据?为什么不能直接覆盖呢?反正空间已经释放了,直接写就行了,清空它干什么?
天月来了
发表于 2014-6-23 16:08:28 | 显示全部楼层
灰羽love 发表于 2013-10-22 10:14
额。。。话说。。。。。我的U盘放着n张女友的果照。。。。然后被他爹发现。。。然后。。。。被丢进派出所。 ...

你下次将U盘0扇区到整个U盘的最后一个扇区都填零成功,然后再格式化

你看他再恢复什么

天月来了
发表于 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, 2026-2-7 18:39 , Processed in 0.075551 second(s), 3 queries , Redis On.

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

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