小编Sil*_*evy的帖子

如何在ZFS中设置文件创建时间?

我刚刚运行了一个运行ZFS的NAS,我希望在将文件传输到它时保留创建时间.linux/ext4(现在数据都在这里)和zfs存储创建时间或出生时间.在zfs的情况下,甚至由stat命令报告.但是我无法弄清楚如何设置文件的创建时间,以便它反映原始文件系统中的创建时间.与ext4-> ext4传输不同,我可以向debugfs提供一个脚本来设置文件创建时间.

是否有类似于ZFS的debugfs的工具?

PS.为了更好地解释:

  • 我有一个USB驱动器连接到Ubuntu 14.04笔记本电脑.它拥有一个文件系统,我关心各个文件的创建日期(出生日期).我经常使用基于debugfs的脚本来查阅这些创建时间戳,该脚本将其报告为crtime.

  • 我想将数据移动到运行ZFS的NAS盒子,但我知道的方法(scp -p -r,rsync -a和tar,以及我尝试过的其他方法)保留了修改时间而不是创建时间.

  • 如果我要转移到另一个ext4文件系统,我会用奇妙的工具解决问题debugfs.具体来说,我可以在源fs(文件系统)上创建(filename,crtime)对列表,然后debugfs -w在目标fs上使用表格行读取脚本

    set_inode_field filename crtime <value>

我已经测试了这个,它运行得很好.

  • 但是我的目标fs不是ext4而是ZFS,虽然debugfs在目标机器上运行,但它在那里完全没用.它甚至不识别fs.另一个允许您通过直接编辑inode来更改时间戳的调试工具是fsdb; 它也在目标机器上运行,但我似乎无法识别ZFS文件系统.

  • 我告诉那些向我销售NAS框的人们,debugfs和fsdb并不适用于ZFS文件系统,但他们无法提供等效的功能.所以,经过大量的谷歌搜索和尝试的事情后,我终于决定今天在这里发一个问题,希望有人可能有答案.

我很惊讶这是多么艰难的结果.从档案的角度来看,如何复制数据集使所有时间戳都相同的问题似乎很自然.

filesystems inode timestamp freebsd zfs

9
推荐指数
1
解决办法
2116
查看次数

标签 统计

filesystems ×1

freebsd ×1

inode ×1

timestamp ×1

zfs ×1