data blocks question
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