If it worked then you could export the pool and its datasets to FreeBSD - exporting a pool does seem to preserve the crtime time stamps. Whether it would be possible to transfer your data to a ZFS dataset on one of those platforms and then, combining the tools they have with, say, dtrace in order to rewrite the crtime fields is more of a theoretical question. You may be able to find more advanced tools on OpenSolaris based systems like Illumos or SmartOS ( e.g. You will likely have more success finding an archiving application that is " crtime aware" than trying set the creation times by hacking on the ZFS based FreeBSD system with what are likely to be rudimentary tools. the -pe "preserve everything" flag for pax which it seems in current versions does not preserve "everything" - viz. If there is a version of pax or another archiving tool for your system it may be able to do this ( cf.
Mdb files stat transfer archive#
What you might need to do instead is find an archive format that will the preserve crtime field that presumably is already set for the files on your fileserver. Indeed, neither fsdb nor debugfs are likely to be suitable for use with ZFS.
Mdb files stat transfer how to#
The question of how to replicate a dataset so all timestamps are identical seems quite natural from an archival point of view. I'm surprised at how hard this is turning out to be. So, after much googling and trying out things I finally decided to post a question here today, hoping someone might have the answer. I'm told by the folks who sold me the NAS box that debugfs and fsdb are not meant for ZFS filesystems, but they haven't been able to come up with an equivalent. Another debug tool that lets you alter timestamps by editing an inode directly is fsdb it too runs on the target machine, but again I can't seem to get it to recognize a ZFS file system. Specifically I can make a list of (filename, crtime) pairs on the source fs (file system), then use debugfs -w on the target fs to read a script with lines of the formīut my target fs is not ext4 but ZFS and although debugfs runs on the target machine, it is entirely useless there. If I were moving to another ext4 file system I would solve the problem using the fantastic tool debugfs. I want to move the data to a NAS box running ZFS, but the methods I know (scp -p -r, rsync -a, and tar, among others I've tried) preserve the modification time but not the creation time. I consult these creation timestamps often using a script based on debugfs, which reports it as crtime. It holds a file system where I care about the creation date (birth date) of the individual files. I have a USB drive attached to a Ubuntu 14.04 laptop. Is there a tool similar to debugfs for ZFS?
Unlike an ext4->ext4 transfer where I can feed debugfs a script to set the file creation times.
But I haven't been able to figure out how I can set the creation time of a file so it mirrors the creation time in the original file system. In the case of zfs it's even reported by the stat command. Both linux/ext4 (where the data is now) and zfs store creation time or birth time. I've just got a NAS running ZFS and I'd like to preserve creation times when transferring files into it.