debugfs Question
Aravindan Raghuveer
aravindan_raghu at yahoo.com
Fri Apr 20 23:51:03 UTC 2007
Hi Jon,
thanks a bunch!! that explains it now.
-Aravind.
--- Jon Burgess <jburgess777 at googlemail.com> wrote:
> On Thu, 2007-04-19 at 23:19 -0700, Aravindan
> Raghuveer wrote:
> > Hello!
> >
> > I had recently posted a question on this list
> about
> > getting LBAs for a file on ext3. Andreas Dilger
> had
> > provided a very handy solution to solve the above
> > problem [Message attached along].
> >
> > My goal is to be able to read files on a ext3
> > filesystem through the scsi generic (sg) driver.
> > I first use debugfs to extract the block addresses
> for
> > every file. I then multiply the block address by 8
> > [4K/ 512] to obtain the LBAs. I then use a progam
> > sg_dd in the sg toolkit to read the data stored in
> the
> > LBA obtained above.
> >
> > However, the data I read through the sg driver
> does
> > not match the data in the file. Through some
> tinkering
> > of my code, I found that when I offset the
> original
> > LBA [obtained as block_address*8] by 63 sectors
> > [63*512 bytes], the data perfectly matches. That
> is
> > LBA' = LBA + 63 corresponds to the actual address
> used
> > for the file. I have tested this well when the
> file is
> > not fragmented. Initial testing on fragmented
> files
> > also shows similar behavior.
> >
>
> Are you accessing the raw disk or the partition
> containing the
> filesystem? 63 sounds suspiciously like the typical
> sector offset of the
> first partition on the disk. The filesystem block
> numbers are relative
> to the containing partition.
>
>
> # sfdisk -l -uS /dev/sda
>
> Disk /dev/sda: 24321 cylinders, 255 heads, 63
> sectors/track
> Units = sectors of 512 bytes, counting from 0
>
> Device Boot Start End #sectors Id
> System
> /dev/sda1 * 63 2104514 2104452 fd
> Linux raid autodetect
> /dev/sda2 2104515 390716864 388612350 fd
> Linux raid autodetect
> /dev/sda3 0 - 0 0
> Empty
> /dev/sda4 0 - 0 0
> Empty
>
>
> > I googled around but could not find a convincing
> > answer as to where this offset crops up from. Has
> > anyone in the group done a similar experiment? I
> would
> > really appreciate any pointers on this issue.
> >
> > thanks again,
> >
> > regards,
> >
> > -Aravind.
> >
> >
> > --- Andreas Dilger <adilger at clusterfs.com> wrote:
> >
> > > On Apr 16, 2007 11:17 -0700, Aravindan
> Raghuveer
> > > wrote:
> > > > I need to write a user space tool that can
> dump
> > > > logical block addresses used by every file in
> a
> > > ext3
> > > > file system. For example, if file foo uses
> LBAs
> > > 2,3
> > > > and file bar uses LBAs 100,102,156, then the
> > > ouptut
> > > > should read:
> > > >
> > > > FILENAME LBAs
> > > > foo 2, 3
> > > > bar 100,102,156
> > > >
> > > > Is there a tool that exists that can do this?
> If
> > > not,
> > > > what would be a good strategy to write this
> tool.
> > > I am
> > > > learning filesystem programming and would
> really
> > > > appreciate any pointers.
> > >
> > > "debugfs -c -R 'stat /path/to/file' /dev/XXX"
> > > reports, among other things
> > > the blocks used by that file.
> > >
> > > Cheers, Andreas
> > > --
> > > Andreas Dilger
> > > Principal Software Engineer
> > > Cluster File Systems, Inc.
> > >
> > >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam
> protection around
> > http://mail.yahoo.com
> >
> > _______________________________________________
> > Ext3-users mailing list
> > Ext3-users at redhat.com
> > https://www.redhat.com/mailman/listinfo/ext3-users
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the Ext3-users
mailing list