Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Sep 1999 21:07:03 -0700
From:      John-Mark Gurney <gurney_j@efn.org>
To:        andrew@ugh.net.au
Cc:        Jan Pechanec <pechy@hp735.cvut.cz>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Corrupt File System
Message-ID:  <19990927210703.25786@hydrogen.fircrest.net>
In-Reply-To: <Pine.BSF.4.10.9909281332190.27643-100000@beebite.ugh.net.au>; from andrew@ugh.net.au on Tue, Sep 28, 1999 at 01:43:37PM %2B1000
References:  <19990927110332.31201@hydrogen.fircrest.net> <Pine.BSF.4.10.9909281332190.27643-100000@beebite.ugh.net.au>

next in thread | previous in thread | raw e-mail | index | archive | help
andrew@ugh.net.au scribbled this message on Sep 28:
> On Mon, 27 Sep 1999, John-Mark Gurney wrote:
> 
> > that's why I wrote ffsrecov... but you should be able to recover the fs's
> > assuming you haven't writen anything to the slice of the disk that
> > contained your data...
> 
> I tried it on both the var and usr partitions..not that var is too
> important but it is much smaller. With var it dumps up to inode 136 and
> core dumps with sig11:
> 
> #0  0x280baa02 in memcpy ()
> #1  0xefbfda2c in ?? ()

interesting, this must be getinode, as that is what is called at 450..
if this is the case, then it could be that my size calculation is
messed up around the for loop, the block is out of range, I didn't
allocate enough data (shouldn't happen, if it does, the inode is
corrupt), or I didn't map enough of file system... (to small of size
for the partition)

> #2  0x8049f31 in dumpall (pi={fs = 0x280d6000, map = 0x280d4000, st = {
>         st_dev = 131077, st_ino = 1420575, st_mode = 33188, st_nlink = 1,
>         st_uid = 0, st_gid = 5, st_rdev = 5866536, st_atimespec = {
>           tv_sec = 938523740, tv_nsec = 0}, st_mtimespec = {
>           tv_sec = 895067625, tv_nsec = 0}, st_ctimespec = {
>           tv_sec = 895067625, tv_nsec = 0}, st_size = 0x0000000001400000,
>         st_blocks = 0x000000000000a030, st_blksize = 8192, st_flags = 0,
>         st_gen = 1796484062, st_lspare = -188160832, st_qspare = {
>           0xf01be1a0f4c8e4c0, 0xf01be75800000002}}}) at main.c:450
> #3  0x8048e0e in main (argc=1, argv=0xefbfdc5c) at main.c:179
> #4  0x80489a9 in _start ()
> 
> With usr I have the problem with the image being greater than 2Gb and so
> mmap fails.

yeh, I know about this... I'm thinking about writing a bit of code that
mmap's a cylindar group as needed, and then if an mmap fails, it will
throw the oldest cylindar group away (I could even do a really stupid
linked list for this)...

> Any ideas?
> 
> Thanks for all your help,

it's hard to say...  I'd need to get a fuller dump of ffsrecov at the
segfault, like a dump of the inode that it's segfaulting on...

-- 
  John-Mark Gurney				Voice: +1 408 975 9651
  Cu Networking					  

  "The soul contains in itself the event that shall presently befall it.
  The event is only the actualizing of its thought." -- Ralph Waldo Emerson


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990927210703.25786>