User request: BTW: Could you please add some sort of deleted and possibly corrupted file and inode list to e2fsck report. There should be filenames deleted from directory inodes, files with duplicate blocks e.t.c. It's pretty annoying to filter this information from e2fsck output by hand :- ------------------------------------------ Add a "answer Yes always to this class of question" response. ---------------------------------- ext2fs_flush() should return a different error message for primary versus backup superblock flushing, so that mke2fs can print an appropriate error message. --------------------------------- Date: Mon, 08 Mar 1999 21:46:14 +0100 From: Sergio Polini I'm reading the sorce code of e2fsck 1.14. In pass2.c, lines 352-357, I read: if ((dirent->name_len & 0xFF) > EXT2_NAME_LEN) { if (fix_problem(ctx, PR_2_FILENAME_LONG, &cd->pctx)) { dirent->name_len = EXT2_NAME_LEN; dir_modified++; } } I think that I'll never see any messages about too long filenames, because "whatever & 0xFF" can never be "> 0xFF". Am I wrong? -------------------------------------- Add chmod command to debugfs. ------------------------------------------ fix up get_backup_sb, so that it doesn't choose something bogus if fs->super->.... is ridiculous ---------------------------------- Maybe a bug in debugfs v.1.14: if a file has more than one hardlink, only the first filename is shown when using command ncheck ------------------------------------ Add a filesystem creation date to the superblock ----------------------------------- Date: Tue, 18 Jan 2000 17:54:53 -0800 (PST) From: Alan Blanchard To: tytso@MIT.EDU Subject: DEBUGFS - thanks and a feature idea Content-Type: TEXT/PLAIN; charset=US-ASCII Theodore: First, let me thank you for writing debugfs. Recently, my Linux box (RH 6.0, 400 MHz PIII, on a DSL line) was hacked into. The intruder did an "rm -Rf" on a 34 GB drive with about 5GB of data on it. I was able to restore essentially the entire thing with debugfs and a bit of C code and Perl. Actually, I could have done the entire thing with debugfs and Perl, but I thought it would be too slow. During this exercise, I noticed that one small feature was lacking that would have made my job a bit easier. The length of a deleted directory is reported as 0, hence debugfs won't dump the contents of the directory to a file using the "dump" command. The only thing that saved me was that the list of disk blocks is not zeroed out. I was able to dump the contents of the directories by using debugfs to get the relevant block numbers, then using dd to get the actual data. If debugfs had a feature where it ignored the size of a directory reported by the inode and instead just dumped all the blocks, it would have facilited things a bit. This seems like a very easy feature to add. Again, thanks for writing debugfs (and all the other Linux stuff you've written!). Cheers, Alan Blanchard alan@abraxas.to ------------------------------------------------------------------- Date: Fri, 21 Jan 2000 14:07:12 -0800 From: "H. Peter Anvin" Subject: mkfs -cc and fsck -c a) An option to mkfs to run badblocks in read/write mode. The filesystem is blank, so this is the perfect time to run the read/write test. b) An option to mkfs to zero the partition. Yes, it can be done with dd, but it would be a nicer way of doing it. ------------------------------------------------------------------ Add support for in ext2fs_block_iterate() for a returning the compressed flag blocks to block_iterate. Change default to not return EXT2_COMPRESSED_BLKADDR. Change e2fsck to pass this flag in. (The old compression patches did this by default all the time, which is bad, since it meant e2fsck never saw the EXT2_COMPRESSED_BLKADDR flagword. ------------------------------------------------------------ E2fsck should offer to clear all the blocks in an indirect block, not the entire inode, so there's better recovery for when an indirect block gets trashed. ------------------------------------------------------------- From: Yann Dirson - LOGATIQUE Date: Thu, 2 Mar 2000 13:52:13 +0100 (MET) During my experiments on the broken system, I noticed the following in the badblocks program (which I'm aware is not designed for IDE drives) - I'd probably have already fixed them if my home system was up :( * the syntax summary documents 2nd arg as blocks_count, which should probably read something like end_count. * testing past end of device is not detected, and lists those blocks as bad, whereas they simply do not exist. I think I'll probably add a "max count" option to findsuper(8), so that I do not have to wait for the whole disk to be scanned when the system had to be launched with "init=/bin/sh", in which case Ctrl-[CZ] and friends appear to be absolutely ignored. Somewhat unrelated, I just noticed the http://web.mit.edu/tytso/www/linux/ext2.html could be updated: - mentions 1.17 as new :) - could mention SGI xfs (http://oss.sgi.com/projects/xfs/ - they just release 0.03 snapshot) ---------------------------------------------------------------- Return-Path: Date: Thu, 10 Feb 2000 13:20:14 -0500 From: "Theodore Y. Ts'o" To: R.E.Wolff@BitWizard.nl In-Reply-To: Rogier Wolff's message of Thu, 10 Feb 2000 08:46:30 +0100 (MET), <200002100746.IAA24573@cave.bitwizard.nl> Subject: Re: e2fsck request for enhancement. Phone: (781) 391-3464 Date: Thu, 10 Feb 2000 08:46:30 +0100 (MET) From: R.E.Wolff@BitWizard.nl (Rogier Wolff) Lately, while trying to recover a broken disk, my system froze (twice, until I tried something else) while copying the disk. So I had a file of about 50Mb that was growing frantically at the moment of the crash. e2fsck, then finds an indirect block that is completely bogus. It starts by asking me if it's ok to clear a few of the referenced blocks. I say yes. Then it comes to the conclusion: too many invalid blocks. Clear inode? and then I get the option to delete the whole file. Not to truncate the file to a "working" size. I'd MUCH rather have e2fsck say something like: inode 1234 references an invalid block 134345454. Hmm. inode 1234 references 567 out of 50176 invalid blocks, all near the end. Truncate file to 49152 blocks? Here you can see that of the 1024 blocks near the end of the file, only 567 were detected as invalid. However now 48Mb of the file will be recovered, instead of thrown away. That's a good point. Actually, the right thing is for e2fsck to offer to clear all of the bad blocks in a particular indirect block. I don't know how hard it would be to do that, but I'll put it on my e2fsprogs TODO list. - Ted ---------------------------------------------------------------- check_if_mounted() should check to see if the file is in /proc/swaps, to avoid mkfs's or checking a active swap partition. ---------------------------------------------------------------- Add a check in configure.in on Linux systems making sure that /usr/include/linux and /usr/include/asm exist. Otherwise you can have some very obscure errors! -----------------------------------------------------------------