Re: Need help in using debugFs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 28, 2008 at 7:03 PM, Prasad Joshi <prasadjoshi124@xxxxxxxxx> wrote:>>> On Wed, May 28, 2008 at 6:45 PM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote:>>>> On Wed, May 28, 2008 at 5:55 PM, Prasad Joshi <prasadjoshi124@xxxxxxxxx>>> wrote:>> > Yes, I read the code>> >>> > On Wed, May 28, 2008 at 5:44 PM, Manish Katiyar <mkatiyar@xxxxxxxxx>>> > wrote:>> >>>> >> On Wed, May 28, 2008 at 5:43 PM, Manish Katiyar <mkatiyar@xxxxxxxxx>>> >> wrote:>> >> > On Wed, May 28, 2008 at 5:06 PM, Prasad Joshi>> >> > <prasadjoshi124@xxxxxxxxx>>> >> > wrote:>> >> >> Thanks a lot for all the replies.>> >> >>>> >> >> I am able to use the debugfs. But, I am not able  to understand the>> >> >> information displayed by ls -l command in the debugfs env>> >> >> Here, is a sample output>> >> >>>> >> >> This is the current directory structure (file system is mounted at>> >> >> /mnt)>> >> >> /mnt/>> >> >>    |--------------- dir>> >> >>    |                  |----------------- 1>> >> >>    |--------------- lost+found>> >> >>    |--------------- test>> >> >>    |--------------- test1>> >> >>    |--------------- test2>> >> >>>> >> >> test1 and test2 are hard links to file test (there is no data in the>> >> >> file)>> >> >>>> >> >> HERE IS THE OUTPUT>> >> >>>> >> >> debugfs:  ls -l>> >> >>       2   40755 (2)      0      0    1024 27-May-2008 20:03 .>> >> >>       2   40755 (2)      0      0    1024 27-May-2008 20:03 ..>> >> >>      11   40700 (2)      0      0   12288 27-May-2008 20:02>> >> >> lost+found>> >> >>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test>> >> >>      13   40755 (2)      0      0    2048 27-May-2008 20:08 dir>> >> >>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test1>> >> >>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test2>> >> >>>> >> >> debugfs:  ls -l dir>> >> >>      13   40755 (2)      0      0    2048 27-May-2008 20:08 .>> >> >>       2   40755 (2)      0      0    1024 27-May-2008 20:03 ..>> >> >>      14   40755 (2)      0      0    1024 28-May-2008 15:48 1>> >> >>       0       0 (0)      0      0       0>> >> >>>> >> >> debugfs:  ls -l dir/1>> >> >>      14   40755 (2)      0      0    1024 28-May-2008 15:48 .>> >> >>      13   40755 (2)      0      0    2048 27-May-2008 20:08 ..>> >> >>>> >> >> debugfs:  mkdir dir/2>> >> >> debugfs:  ls -l>> >> >>       2   40755 (2)      0      0    1024 27-May-2008 20:03 .>> >> >>       2   40755 (2)      0      0    1024 27-May-2008 20:03 ..>> >> >>      11   40700 (2)      0      0   12288 27-May-2008 20:02>> >> >> lost+found>> >> >>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test>> >> >>      13   40755 (2)      0      0    2048 27-May-2008 20:08 dir>> >> >>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test1>> >> >>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test2>> >> >>>> >> >> debugfs:  ls -l dir>> >> >>      13   40755 (2)      0      0    2048 27-May-2008 20:08 .>> >> >>       2   40755 (2)      0      0    1024 27-May-2008 20:03 ..>> >> >>      14   40755 (2)      0      0    1024 28-May-2008 15:48 1>> >> >>      15   40755 (2)      0      0    1024 28-May-2008 16:51 2>> >> >>       0       0 (0)      0      0       0>> >> >>>> >> >> Can any one please tell me what these collumns represent?>> >> >>> >> > It appears you are using debugfs from e2fsprogs. The columns seem to>> >> > be>> >> >>> >> > 1) inode number>> >> > 2)  permissons/mode,>> >> > 3) From the code it is "dirent->name_len >> 8", but my guess is it is>> >> > number of links.>> >> > 4) uid>> >> > 5) gid>> >>   6) There is size too :-)>> >> > 6) datetime string>> >> > 7) file name.>> >> >>> >> >>> >> > Hope that helps.>> >>> > Yes correct, I also went through the code of e2fsprogs. File for ls code>> > is>> > debugfs/ls.c>> > 1. Inode Number>> > 2. Inode Mode.>> > 3.  dirent->name_len >> 8     it is lenght in bytes>>>> How does this come to 2 then ?>>>> 11   40700 (2)      0      0   12288 27-May-2008 20:02 lost+found>>>> Since it is a directory, the link count should be minimum 2.>> This is the code which is doing the printing>>                 fprintf(ls->f, "%c%6u%c %6o (%d)  %5d  %5d   ", lbr, ino,> rbr,>                         inode.i_mode, dirent->name_len >> 8,>                         inode_uid(inode), inode_gid(inode));>> It is not link count. If you see test file has 3 links test, test1, and> test3. So, the number in the Bracket is not the link count
Hmmm... it is indeed dirent->name_len  as shown by gdb below
Breakpoint 1, list_dir_proc (dir=2, entry=2, dirent=0x80862f4,offset=12, blocksize=1024, buf=0x80862e8 "\002",    private=0xbfd6faf4) at ls.c:5151	{(gdb) p *dirent$1 = {inode = 2, rec_len = 12, name_len = 514,  name = "..\000\000\v\000\000\000\024\000\n\002lost+found\000\000\f\000\000\000\f\000\004\001test\r\000\000\000\020\000\005\atest1\000\000\000\016\000\000\000\020\000\005\atest2\000\000\000\017\000\000\000�\003\005\atest3",'\0' <repeats 173 times>}(gdb) ptype direnttype = struct ext2_dir_entry {    __u32 inode;    __u16 rec_len;    __u16 name_len;    char name[255];} *(gdb) p 514>>8$2 = 2
But why the name_len for ".." is 514 is what I need to find outbecause this should hold the actual name of the directory entry if Iunderstand correctly and even the below link says so :-(
http://www.linux-security.cn/ebooks/ulk3-html/0596005652/understandlk-CHP-18-SECT-2.html

>> debugfs:  stat test> Inode: 12   Type: regular    Mode:  0644   Flags: 0x0   Generation:> 3442830008> User:     0   Group:     0   Size: 1037> File ACL: 338    Directory ACL: 0> Links: 3   Blockcount: 6> Fragment:  Address: 0    Number: 0    Size: 0> ctime: 0x483d4909 -- Wed May 28 17:29:05 2008> atime: 0x483d496e -- Wed May 28 17:30:46 2008> mtime: 0x483c1c18 -- Tue May 27 20:05:04 2008> BLOCKS:> (0-1):7169-7170> TOTAL: 2>> debugfs:  ls -l>       2   40755 (2)      0      0    1024 27-May-2008 20:03 .>       2   40755 (2)      0      0    1024 27-May-2008 20:03 ..>      11   40700 (2)      0      0   12288 27-May-2008 20:02 lost+found>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test>      13   40755 (2)      0      0    2048 27-May-2008 20:08 dir>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test1>      12  100644 (1)      0      0    1037 27-May-2008 20:05 test2>>>>>>>>> > 4. UID>> > 5. GID>> > 6. Date>> > 7. File Name>> >>> > Thanks a lot for your reply.>> > --Prasad.>> >>> >>>> >> >>> >> >>> >> >>>> >> >> Thanks and Regards,>> >> >> Prasad.>> >> >>>> >> >> On Wed, May 28, 2008 at 8:00 AM, Peter Teoh>> >> >> <htmldeveloper@xxxxxxxxx>>> >> >> wrote:>> >> >>>>> >> >>> On Wed, May 28, 2008 at 12:17 AM, Frédéric Weisbecker>> >> >>> <f.weisbecker@xxxxxxxxx> wrote:>> >> >>> > Hi!>> >> >>> >>> >> >>> > Here is a small tutorial:>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> > http://docs.blackfin.uclinux.org/doku.php?id=file_systems#file_system_exampledebugfs>> >> >>>>> >> >>> Yes, that is the kernel-based debugfs, and u used it via the>> >> >>> following>> >> >>> manner (not mentioned in the page, but widely available in>> >> >>> Internet):>> >> >>>>> >> >>> Method 1:>> >> >>>>> >> >>> put the following line in /etc/fstab for automatic moutning at>> >> >>> bootup:>> >> >>>>> >> >>> none               /sys/kernel/debug                    debugfs>> >> >>> defaults        0 0>> >> >>>>> >> >>>>> >> >>> Method 2:>> >> >>>>> >> >>> Issue:>> >> >>>>> >> >>> mount -t debugfs none /sys/kernel/debug>> >> >>>>> >> >>> at command line level.>> >> >>>>> >> >>> BUT....in my Fedora FC7 distros, at the commandline level there is>> >> >>> a>> >> >>> "debugfs" command (man debugfs):>> >> >>>>> >> >>> DEBUGFS(8)>> >> >>>  DEBUGFS(8)>> >> >>>>> >> >>> NAME>> >> >>>       debugfs - ext2/ext3 file system debugger>> >> >>>>> >> >>> SYNOPSIS>> >> >>>       debugfs  [ -Vwci ] [ -b blocksize ] [ -s superblock ] [ -f>> >> >>> cmd_file>> >> >>> ] [>> >> >>>       -R request ] [ -d data_source_device ] [ device ]>> >> >>>>> >> >>> DESCRIPTION>> >> >>>       The debugfs program is an interactive file system debugger.>> >> >>> It>> >> >>>  can>> >> >>>  be>> >> >>>       used to examine and change the state of an ext2 file system.>> >> >>>       device  is  the special file corresponding to the device>> >> >>> containing>> >> >>> the>> >> >>>       ext2 file system (e.g /dev/hdXX).>> >> >>>>> >> >>> OPTIONS>> >> >>>       -w     Specifies that the file system should be  opened  in>> >> >>>  read-write>> >> >>>              mode.   Without  this option, the file system is>> >> >>> opened>> >> >>> in>> >> >>> read->> >> >>>              only mode.>> >> >>>>> >> >>> .........>> >> >>>>> >> >>> Very confusing.....but I think this is not what u want....it is a>> >> >>> tool>> >> >>> as part of the e2fsprogs package (e2fsprogs.sourceforge.net, I>> >> >>> think).>> >> >>>>> >> >>>>> >> >>> > If you need more help to use it, don't hesitate to ask!>> >> >>> > As you will see there are two ways to use it:>> >> >>> >>> >> >>> > _ By creating a file which exports or import a single variable.>> >> >>> > It's>> >> >>> > simple>> >> >>> > but asynchronous (you or the user-process needs to check>> >> >>> > periodically if>> >> >>> > the>> >> >>> > value has changed.>> >> >>> > _ By implementing the common file operations. But it stays simple>> >> >>> > and>> >> >>> > it's>> >> >>> > synchronous.>> >> >>> >>> >> >>> > Regards,>> >> >>> > Frédéric...>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> > 2008/5/27 Prasad Joshi <prasadjoshi124@xxxxxxxxx>:>> >> >>> >>>> >> >>> >> Hi All,>> >> >>> >>>> >> >>> >> I have an assignment and I am supposed to use debugfs for the>> >> >>> >> same.>> >> >>> >> Can anyone please help me? or Point me to a link which tells>> >> >>> >>  how>> >> >>> >> to>> >> >>> >> use>> >> >>> >> debug fs?>> >> >>> >>>> >> >>> >> Thanks and Regards,>> >> >>> >> Prasad>> >> >>> >>> >> >>> >>> >> >>>>> >> >>>>> >> >>>>> >> >>> -->> >> >>> Regards,>> >> >>> Peter Teoh>> >> >>>> >> >>>> >> >>> >> >>> >> >>> >> > -->> >> > Thanks & Regards,>> >> > ********************************************>> >> > Manish Katiyar ( http://mkatiyar.googlepages.com )>> >> > 3rd Floor, Fair Winds Block>> >> > EGL Software Park>> >> > Off Intermediate Ring Road>> >> > Bangalore 560071, India>> >> > ***********************************************>> >> >>> >>>> >>>> >>>> >> -->> >> Thanks & Regards,>> >> ********************************************>> >> Manish Katiyar ( http://mkatiyar.googlepages.com )>> >> 3rd Floor, Fair Winds Block>> >> EGL Software Park>> >> Off Intermediate Ring Road>> >> Bangalore 560071, India>> >> ***********************************************>> >>> >>>>>>>>> -->> Thanks & Regards,>> ********************************************>> Manish Katiyar ( http://mkatiyar.googlepages.com )>> 3rd Floor, Fair Winds Block>> EGL Software Park>> Off Intermediate Ring Road>> Bangalore 560071, India>> ***********************************************>>


-- Thanks & Regards,********************************************Manish Katiyar ( http://mkatiyar.googlepages.com )3rd Floor, Fair Winds BlockEGL Software ParkOff Intermediate Ring RoadBangalore 560071, India***********************************************��.n��������+%����w�j)p���{.n����z�ޖw�n'���q���b�������v��m�����Y�����


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux