Is there way to get filename for specific LBA?
Doug Hardie
bc979 at lafn.org
Thu Sep 1 06:57:18 UTC 2011
On 31 August 2011, at 20:50, Carl Johnson wrote:
> perryh at pluto.rain.com writes:
>
>> Robert Bonomi <bonomi at mail.r-bonomi.com> wrote:
>>
>>>> Aug 31 05:13:24 da kernel: ad6: WARNING - READ_DMA UDMA ICRC
>>>> error (retrying request) LBA=107491647
>>>> ... I looked at bsdlabel a it's partition f, /home. But what
>>>> is the file name?
>>>
>>> There's *no* easy way to find out. You'll have to grovel through
>>> all the filesystem metadata, and the layers of index blocks for
>>> every file until you find the 'rgiht' one.
>>
>> This is what "icheck -B" was for, but icheck(8) no longer exists and
>> that particular bit of functionality does not seem to be provided in
>> fsck(8).
>>
>> One current userland utility (other than fsck) which does know
>> how to grovel through the metadata and index blocks is dump(8),
>> but you'd have to hack on it to report which inode was using a
>> particular block.
>
> It looks like the best bet would be fsdb, assuming that it is a UFS
> file system. That does have a 'findblk' command to find a file
> containing a block, but you would need to calculate the block offset in
> the filesystem first. It doesn't look like it would be easy, as was
> said earlier.
I created a utility some years ago that did that for UFS. I believe it works for UFS2 but haven't verified it. If you want to try it, send me a note and I'll ship you the code direct.
-- Doug
More information about the freebsd-questions
mailing list