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