多台 ext4 设备,从外部拷贝相同的文件,导出 RAW 数据发现不一样。

2022-10-23 22:06:38 +08:00
 ReputationZh

如题

从对文件系统的共识中,我的理解是文件的存储是碎片化的,根据当前存储设备的剩余容量、寿命状态等信息,会让数据在文件系统内的数据会分布在各个地方。

有两台完全一样的设备,分别向其中写入相同的数据,然后将存储设备的数据从偏移量 0 开始导出,最后用 compare 对比后发现,对比十六进制数据发现区别很大。

虽然我觉得这是共识,但是想找到一些书面材料进行证明。

感谢各位。

805 次点击
所在节点    问与答
3 条回复
churchmice
2022-10-23 22:50:18 +08:00
关键字 文件系统
tool2d
2022-10-23 23:41:49 +08:00
理论上来说不会吧,文件系统里又没有随机数,最多是文件写入日期不同。

文件名不变,hash 不变。写入顺序不变,inode 不变。我也不懂为什么直接不一样。

要不你直接把文件系统的 layout 导出看看,究竟是什么不一样。
eason1874
2022-10-24 08:08:57 +08:00
“将存储设备的数据从偏移量 0 开始导出” 这样导出的 RAW 数据肯定不一样,就算刚格式化完,啥数据也没写入,也会不一样

存储设备开头几 KB 存着设备文件系统信息,inode 、block 这些根据格式化参数可以一样,文件系统创建时间、UUID 、上次挂载点、上次挂载时间、上次写入时间不会一样。虚拟设备,你刚复制完成的时候一样,但你要分别打开写入文件,那它又不一样了

要知道具体发生了什么,找本讲文件系统的书,里面应该有吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/889197

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX