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