Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Aug 2010 02:29:40 -0500 (CDT)
From:      Robert Bonomi <bonomi@mail.r-bonomi.com>
To:        bonomi@mail.r-bonomi.com, dnelson@allantgroup.com
Cc:        kamikaze@bsdforen.de, freebsd-questions@freebsd.org
Subject:   Re: change file creation time on msdosfs
Message-ID:  <201008290729.o7T7Tew3027097@mail.r-bonomi.com>

next in thread | raw e-mail | index | archive | help
> From dan@dan.emsphone.com  Fri Aug 27 23:38:08 2010
> Date: Fri, 27 Aug 2010 22:51:47 -0500
> From: Dan Nelson <dnelson@allantgroup.com>
> To: Robert Bonomi <bonomi@mail.r-bonomi.com>
> Cc: freebsd-questions@freebsd.org, kamikaze@bsdforen.de
> Subject: Re: change file creation time on msdosfs
>
> In the last episode (Aug 27), Robert Bonomi said:
> > > From owner-freebsd-questions@freebsd.org  Thu Aug 26 14:33:04 2010
> > > Date: Thu, 26 Aug 2010 21:06:04 +0200
> > > From: Dominic Fandrey <kamikaze@bsdforen.de>
> > > To: freebsd-questions@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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008290729.o7T7Tew3027097>