data blocks question

David Schultz das at FreeBSD.ORG
Wed Sep 29 16:09:36 PDT 2004


On Wed, Sep 29, 2004, Nehal wrote:
> On Wed, 29 Sep 2004 16:42:33 -0400
> David Schultz <das at FreeBSD.ORG> wrote:
> 
> > On Wed, Sep 29, 2004, Nehal wrote:
> > > on my ufs2 partition, there is a file that has a size of
> > > 65536, and has 2 direct blocks only. the block size of the fs
> > > is 16k and fragment block size is 2k.
> > > 
> > > how can this be possible? wouldn't 2 direct blocks mean that
> > > the maximum size is 2x16k = 32k? or am i not understanding
> > > something correctly?
> > > 
> > > i've made a copy of the file, and the new file has 4 direct
> > > blocks.
> > > 
> > > it is a binary file, and i can read it fine (ie, cat it). i've
> > > done fsck on the filesystem and it found no problem.
> > 
> > Yes, UFS supports sparse files.  That is, you can have a file
> > with parts you haven't written to, and the blocks for those
> > parts won't be allocated.  The cp utility doesn't know about
> > this, though, so copies will have the ``holes'' filled with
> > zeroes.
> > 
> 
> how would i determine the offset and length of these 'holes' for
> sparse files?

It's an implementation detail, so you're not supposed to need to
know most of the time.  You can use fsdb to find out.


More information about the freebsd-fs mailing list