Suggestion regarding fsck output enhancement

Kurt Hackenberg kh at panix.com
Mon Aug 24 22:27:40 UTC 2020


On 2020-08-24 04:40, Polytropon wrote:

> In both entries, the inode number is mentioned. Wouldn't it be
> nice to display a file or directory name, if possible, to show
> what file could be affected? Basically, it's what you can already
> manually do:
> 
> 	1. run fsck in dry mode
> 	   (only list actions, do not take them)
> 
> 	2. note inode numbers
> 
> 	3. use fsdb to find out what the inodes point to
> 
> 	4. take specific action prior to fsck if needed
> 
> My suggestion would be: If this kind of information is available,
> fsck should display it, for example:
> 
> 	INCORRECT BLOCK COUNT I=24236 (288 should be 268)
> 	FILENAME ada0p4:/tmp/test.dat
> 	CORRECT? yes


That would be great. However, from my limited knowledge, I think it's 
not easy.

I know how this works only in old, traditional Unix. As far as I know 
it's the same for FreeBSD and its filesystem -- I think it has to stay 
the same to preserve semantics -- but I don't know specifically.

I think a directory entry contains only a filename and an inode number. 
All other information about the file is in the inode. (Well, apparently 
the file type has been copied or moved from the inode to the directory 
entry, probably for speed, but that doesn't matter here.)

The trouble is, an inode does not point back to any of the directory 
entries that point to it. Far as I know, the only way to find names 
associated with an inode is to search the whole filesystem, looking for 
directory entries that contain that inode number. That could take a while.

I had never heard of fsdb; I just read the man page. I don't see any 
command to trace back from an inode to filenames. Did I miss something?


More information about the freebsd-questions mailing list