
如题
从对文件系统的共识中,我的理解是文件的存储是碎片化的,根据当前存储设备的剩余容量、寿命状态等信息,会让数据在文件系统内的数据会分布在各个地方。
有两台完全一样的设备,分别向其中写入相同的数据,然后将存储设备的数据从偏移量 0 开始导出,最后用 compare 对比后发现,对比十六进制数据发现区别很大。
虽然我觉得这是共识,但是想找到一些书面材料进行证明。
感谢各位。
1 churchmice 2022 年 10 月 23 日 via Android 关键字 文件系统 |
2 tool2d 2022 年 10 月 23 日 理论上来说不会吧,文件系统里又没有随机数,最多是文件写入日期不同。 文件名不变,hash 不变。写入顺序不变,inode 不变。我也不懂为什么直接不一样。 要不你直接把文件系统的 layout 导出看看,究竟是什么不一样。 |
3 eason1874 2022 年 10 月 24 日 “将存储设备的数据从偏移量 0 开始导出” 这样导出的 RAW 数据肯定不一样,就算刚格式化完,啥数据也没写入,也会不一样 存储设备开头几 KB 存着设备文件系统信息,inode 、block 这些根据格式化参数可以一样,文件系统创建时间、UUID 、上次挂载点、上次挂载时间、上次写入时间不会一样。虚拟设备,你刚复制完成的时候一样,但你要分别打开写入文件,那它又不一样了 要知道具体发生了什么,找本讲文件系统的书,里面应该有吧 |