On Sat, Aug 17, 2013 at 10:51:36PM +0100, Mik J wrote: > Hello, > > In my message log file I have > /bsd: wd1g: uncorrectable data error > reading fsbn 27690576 of 27690560-27690591 (wd1 bn 1951859792; cn 121497 tn > 166 sn 29), retrying > > I used the badblocks utility an checked the whole disk > and only this block number is faulty. > I tried to override it with zeros but no > luck, impossible. > > Since I believe my disk is ok, I would like it to avoid > realocating the block number 27690576. How can I do it ?
The OS reported that it failed to read the bad block -- therefore, the block is allocated -- to a file, directory, socket, or fifo. As the data within the block is now lost, the only recovery is from backup. I don't believe the OS has any built-in tools that can determine ownership from a block number. The error could also have been produced if you or another admin just happened to be reading blocks outside of filesystem control, such as using dd(1) with if=/dev/... in that case, the block might be unallocated. I haven't used it in some time, but if I recall correctly, sysutils/sleuthkit may be helpful in identifying block ownership. The badblocks program from sysutils/e2fsprogs can be helpful in forcing a drive to reallocate the LBA from its set of spare blocks. The data will be lost, but the "bad block" LBA will become "good" again.