linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Theodore Ts'o <tytso@mit.edu>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: "Lukáš Czerner" <lczerner@redhat.com>, linux-ext4@vger.kernel.org
Subject: Re: [PATCH 06/37] debugfs: force logdump to display (old) journal contents
Date: Sun, 11 May 2014 21:41:19 -0400	[thread overview]
Message-ID: <20140512014119.GI5480@thunk.org> (raw)
In-Reply-To: <20140506002453.GN8434@birch.djwong.org>

On Mon, May 05, 2014 at 05:24:53PM -0700, Darrick J. Wong wrote:
> I'll update the manpage.  -c seems to hexdump the contents of any block that we
> find while iterating the journal.  -b would seem to allow you to dump an
> arbitrary block #, but I could never get it to do that.

It's used to dump information _about_ an arbitrary block.  Here's an
example of some of the cool things you can do with logdump:

<tytso@closure> {/usr/projects/e2fsprogs/e2fsprogs}   (next)
1742% gunzip <  tests/f_jnl_32bit/image.gz  > /tmp/image
<tytso@closure> {/usr/projects/e2fsprogs/e2fsprogs}   (next)
1743% debugfs /tmp/image
debugfs 1.42.9 (4-Feb-2014)
debugfs:  logdump -b 680
Journal starts at block 1, transaction 2
  FS block 66 logged at sequence 3, journal block 8 (flags 0x2)
    (block bitmap for block 680: block is SET)
  FS block 680 logged at sequence 3, journal block 205 (flags 0x2)
  FS block 66 logged at sequence 4, journal block 231 (flags 0x2)
    (block bitmap for block 680: block is SET)
  FS block 680 logged at sequence 4, journal block 234 (flags 0x2)
  FS block 66 logged at sequence 5, journal block 339 (flags 0x2)
    (block bitmap for block 680: block is SET)
  FS block 680 logged at sequence 5, journal block 450 (flags 0x2)
No magic number at block 464: end of journal.
debugfs: icheck 680
Block	 Inode number
680	 2132
debugfs:  logdump -i <2132>
Inode 2132 is at group 1, block 364, offset 384
Journal starts at block 1, transaction 2
  FS block 364 logged at sequence 3, journal block 197 (flags 0x2)
    (inode block for inode 2132):
    Inode: 2132   Type: directory        Mode:  0755   Flags: 0x80000
    Generation: 3167953082    Version: 0x00000008
    User:     0   Group:     0   Size: 1024
    File ACL: 0    Directory ACL: 0
    Links: 9   Blockcount: 2
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4fa1639e -- Wed May  2 12:41:02 2012
    atime: 0x4fa1639e -- Wed May  2 12:41:02 2012
    mtime: 0x4fa1639e -- Wed May  2 12:41:02 2012
    Blocks:  (0+1): 127754 (1+1): 4 (5+1): 680 
  FS block 364 logged at sequence 4, journal block 233 (flags 0x2)
    (inode block for inode 2132):
    Inode: 2132   Type: directory        Mode:  0755   Flags: 0x80000
    Generation: 3167953082    Version: 0x0000000c
    User:     0   Group:     0   Size: 1024
    File ACL: 0    Directory ACL: 0
    Links: 13   Blockcount: 2
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4fa1639e -- Wed May  2 12:41:02 2012
    atime: 0x4fa1639e -- Wed May  2 12:41:02 2012
    mtime: 0x4fa1639e -- Wed May  2 12:41:02 2012
    Blocks:  (0+1): 127754 (1+1): 4 (5+1): 680 
  FS block 364 logged at sequence 5, journal block 434 (flags 0x2)
    (inode block for inode 2132):
    Inode: 2132   Type: directory        Mode:  0755   Flags: 0x80000
    Generation: 3167953082    Version: 0x00000015
    User:     0   Group:     0   Size: 1024
    File ACL: 0    Directory ACL: 0
    Links: 4   Blockcount: 2
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4fa163a7 -- Wed May  2 12:41:11 2012
    atime: 0x4fa163a7 -- Wed May  2 12:41:11 2012
    mtime: 0x4fa163a7 -- Wed May  2 12:41:11 2012
    Blocks:  (0+1): 127754 (1+1): 4 (5+1): 680 
No magic number at block 464: end of journal.
debugfs: quit

The idea is that this can be useful when debugging a potentially
corrupted journal, or for advanced file system recovery.

Note that logdump -c is most useful in combination with -b, for
example: "logdump -b 680 -c".

	  	      	  	   	- Ted

  reply	other threads:[~2014-05-12  1:41 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-01 23:12 [PATCH 00/37] e2fsprogs patchbomb 5/14 Darrick J. Wong
2014-05-01 23:12 ` [PATCH 01/37] misc: create better-packaged static analysis reports Darrick J. Wong
2014-05-11 22:33   ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 02/37] misc: coverity fixes Darrick J. Wong
2014-05-02 11:17   ` Lukáš Czerner
2014-05-05 20:04     ` Darrick J. Wong
2014-05-11 22:40       ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 03/37] libext2fs: create sockets when populating filesystem Darrick J. Wong
2014-05-02 11:22   ` Lukáš Czerner
2014-05-05 20:08     ` Darrick J. Wong
2014-05-11 22:44       ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 04/37] mke2fs: always warn if 128-byte inode and inline_data Darrick J. Wong
2014-05-02 11:27   ` Lukáš Czerner
2014-05-05 20:10     ` Darrick J. Wong
2014-05-12  0:26       ` Theodore Ts'o
2014-05-01 23:12 ` [PATCH 05/37] debugfs: teach logdump to deal with 64bit revoke tables Darrick J. Wong
2014-05-02 11:38   ` Lukáš Czerner
2014-05-05 22:23     ` Darrick J. Wong
2014-05-06 11:35       ` Lukáš Czerner
2014-05-12  1:20         ` Theodore Ts'o
2014-05-01 23:13 ` [PATCH 06/37] debugfs: force logdump to display (old) journal contents Darrick J. Wong
2014-05-02 11:49   ` Lukáš Czerner
2014-05-06  0:24     ` Darrick J. Wong
2014-05-12  1:41       ` Theodore Ts'o [this message]
2014-05-12  3:31         ` Theodore Ts'o
2014-05-14  0:05         ` Darrick J. Wong
2014-05-01 23:13 ` [PATCH 07/37] resize2fs: fix check for collision between old GDT and superblock on sparse_super2 fs Darrick J. Wong
2014-05-12  3:35   ` Theodore Ts'o
2014-05-01 23:13 ` [PATCH 08/37] mke2fs: set gdt csum when creating packed fs Darrick J. Wong
2014-05-02 11:55   ` Lukáš Czerner
2014-05-12  4:22     ` Theodore Ts'o
2014-05-01 23:13 ` [PATCH 09/37] mke2fs: set error behavior at initialization time Darrick J. Wong
2014-05-02 12:13   ` Lukáš Czerner
2014-05-01 23:13 ` [PATCH 10/37] e2fsck: verify checksums after checking everything else Darrick J. Wong
2014-05-02 12:32   ` Lukáš Czerner
2014-05-05 22:56     ` Darrick J. Wong
2014-05-06 11:32       ` Lukáš Czerner
2014-05-08  0:05         ` Darrick J. Wong
2014-05-01 23:13 ` [PATCH 11/37] e2fsck: fix the extended attribute checksum error message Darrick J. Wong
2014-05-02 12:46   ` Lukáš Czerner
2014-05-05 23:08     ` Darrick J. Wong
2014-05-06 10:12       ` Lukáš Czerner
2014-05-01 23:13 ` [PATCH 12/37] e2fsck: insert a missing dirent tail for checksums if possible Darrick J. Wong
2014-05-02 12:54   ` Lukáš Czerner
2014-05-05 23:16     ` Darrick J. Wong
2014-05-01 23:13 ` [PATCH 13/37] e2fsck: write dir blocks after new inode when reconstructing root/lost+found Darrick J. Wong
2014-05-05 17:13   ` Lukáš Czerner
2014-05-01 23:13 ` [PATCH 14/37] dumpe2fs: add switch to disable checksum verification Darrick J. Wong
2014-05-05 17:20   ` Lukáš Czerner
2014-05-01 23:14 ` [PATCH 15/37] mke2fs: set block_validity as a default mount option Darrick J. Wong
2014-05-05 17:24   ` Lukáš Czerner
2014-05-01 23:14 ` [PATCH 16/37] libext2fs: support allocating uninit blocks in bmap2() Darrick J. Wong
2014-05-06 15:45   ` Lukáš Czerner
2014-05-06 19:59     ` Darrick J. Wong
2014-05-07 10:02       ` Lukáš Czerner
2014-05-07 21:37         ` Darrick J. Wong
2014-05-08  0:13           ` [PATCH 1/2] libext2fs: support BLKZEROOUT/FALLOC_FL_ZERO_RANGE in ext2fs_zero_blocks Darrick J. Wong
2014-05-13 11:11             ` Lukáš Czerner
2014-05-08  0:14           ` [PATCH 2/2] libext2fs: support allocating uninit blocks in bmap2() Darrick J. Wong
2014-05-27 16:28             ` Lukáš Czerner
2014-05-28 19:48               ` Darrick J. Wong
2014-05-01 23:14 ` [PATCH 17/37] libext2fs: file IO routines should handle uninit blocks Darrick J. Wong
2014-05-01 23:14 ` [PATCH 18/37] resize2fs: convert fs to and from 64bit mode Darrick J. Wong
2014-05-01 23:14 ` [PATCH 19/37] resize2fs: when toggling 64bit, don't free in-use bg data clusters Darrick J. Wong
2014-05-01 23:14 ` [PATCH 20/37] resize2fs: adjust reserved_gdt_blocks when changing group descriptor size Darrick J. Wong
2014-05-01 23:14 ` [PATCH 21/37] libext2fs: have UNIX IO manager use pread/pwrite Darrick J. Wong
2014-08-02 23:16   ` Theodore Ts'o
2014-05-01 23:14 ` [PATCH 22/37] ext2fs: add readahead method to improve scanning Darrick J. Wong
2014-05-01 23:14 ` [PATCH 23/37] e2fsck: provide routines to read-ahead metadata Darrick J. Wong
2014-05-01 23:14 ` [PATCH 24/37] e2fsck: read-ahead metadata during passes 1, 2, and 4 Darrick J. Wong
2014-07-28 22:25   ` Darrick J. Wong
2014-05-01 23:15 ` [PATCH 25/37] libext2fs: when appending to a file, don't split an index block in equal halves Darrick J. Wong
2014-08-02 23:43   ` Theodore Ts'o
2014-05-01 23:15 ` [PATCH 26/37] libext2fs: find inode goal when allocating blocks Darrick J. Wong
2014-05-01 23:15 ` [PATCH 27/37] libext2fs: find a range of empty blocks Darrick J. Wong
2014-05-01 23:15 ` [PATCH 28/37] libext2fs: provide a function to set inode size Darrick J. Wong
2014-07-26 18:37   ` Theodore Ts'o
2014-05-01 23:15 ` [PATCH 29/37] libext2fs: implement fallocate Darrick J. Wong
2014-05-01 23:15 ` [PATCH 31/37] fuse2fs: translate ACL structures Darrick J. Wong
2014-05-01 23:15 ` [PATCH 32/37] fuse2fs: handle 64-bit dates correctly Darrick J. Wong
2014-05-01 23:16 ` [PATCH 33/37] fuse2fs: implement fallocate Darrick J. Wong
2014-05-01 23:16 ` [PATCH 35/37] tests: enable using fuse2fs with metadata checksum test Darrick J. Wong
2014-05-01 23:16 ` [PATCH 36/37] tests: test date handling Darrick J. Wong
2014-05-01 23:16 ` [PATCH 37/37] ext5: define new subtype to add features and reduce testing complexity Darrick J. Wong
2014-05-02  9:45   ` Lukáš Czerner
2014-05-02 14:04     ` Theodore Ts'o
2014-05-06  1:59       ` Darrick J. Wong
2014-05-06  1:33     ` Darrick J. Wong
2014-05-06 12:50       ` Lukáš Czerner
2014-05-06 15:21         ` Theodore Ts'o
2014-05-06 15:30           ` Lukáš Czerner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140512014119.GI5480@thunk.org \
    --to=tytso@mit.edu \
    --cc=darrick.wong@oracle.com \
    --cc=lczerner@redhat.com \
    --cc=linux-ext4@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).