change file creation time on msdosfs
bonomi at mail.r-bonomi.com
Sun Aug 29 07:30:41 UTC 2010
> From dan at dan.emsphone.com Fri Aug 27 23:38:08 2010
> Date: Fri, 27 Aug 2010 22:51:47 -0500
> From: Dan Nelson <dnelson at allantgroup.com>
> To: Robert Bonomi <bonomi at mail.r-bonomi.com>
> Cc: freebsd-questions at freebsd.org, kamikaze at bsdforen.de
> Subject: Re: change file creation time on msdosfs
> In the last episode (Aug 27), Robert Bonomi said:
> > > From owner-freebsd-questions at freebsd.org Thu Aug 26 14:33:04 2010
> > > Date: Thu, 26 Aug 2010 21:06:04 +0200
> > > From: Dominic Fandrey <kamikaze at bsdforen.de>
> > > To: freebsd-questions at freebsd.org
> > > Subject: change file creation time on msdosfs
> > >
> > > I need to change the file creation time of some files on an msdosfs file
> > > system.
> > >
> > > Is there any other way to do this than copying the file and deleting the
> > > original?
> > There are _always_ alternative ways. With suffficient knowledge, oue
> > could, for example, use 'dd' to copy the required two bytes to the
> > appropriate position on the raw device holding the filesystem. This
> > approach is, however, not likely to be at all 'reasonable' for the average
> > user.
> > > The usual suspects like touch and mv do not work.
> > yup. 'creation' timestamp is intended to be more-or-less immutable in the
> > Unix world. And that 'viewpoint' carries over to other kinds of
> > filesysems grafted onto a Unix host.
> No; the utimes() syscall can be used to easily set the creation time (called
> birth time so it doesn't get confused with the "ctime" file metadata change
> time). More likely is that whoever added birthtime to ufs didn't bother
> updating the msdosfs code. If one of the other BSD's has implemented it, it
> should be relatively easy to import the changes. Otherwise you'll probably
> have to look at how birthtime is currently handled in ufs, and make it work
> in msdosfs.
I repeat my previous. it is intended to be 'more-or-less' immutable.
The FFS designers recognized that there would be occasions where it was
_necessary_ to do so, and built the capability into the OS. The *omission*
of user-tools that use that hook is/was =intentional=. A means of saying
'you really *shouldn't* do this", without absolutely prohibiting it. It
_isn't_ "impossbile", but the 'bar' is deliberately/intentionally out of
the reach of the casual user.
A backup/resture utility has good reason to muck with the 'birth date',
but hardly anything else does.
More information about the freebsd-questions