tool for mapping away bad blocks on an external disk

Michael Powell nightrecon at
Sun Apr 17 17:27:10 UTC 2016

Warren Block wrote:

> On Sun, 17 Apr 2016, Steve O'Hara-Smith wrote:
>> On Sun, 17 Apr 2016 09:26:41 +0200
>> Matthias Apitz <guru at> wrote:
>>> Hello,
>>> I have an older external disk, connected through USB, which has bad
>>> blocks:
>> The tool you're looking for is badsect - I'm moderately surprised
>> it's still around, the last time I used it was on FreeBSD but it
>> is still in FreeBSD 10.3.
>> It doesn't do the analysis though - you'll have to do that with the
>> filesystem unmounted and just used dd conv=noerror if=<device>
>> of=/dev/null to read the whole device and pull the duff sectors out of
>> the error messages.
> That won't remap them, though.
>> However it's been a *long* time since this was worth doing except
>> perhaps as a last ditch data recovery exercise, drives have had internal
>> sector remapping for a long time now and when that stops working they are
>> well and truly banjaxed.
> True.  But this is not (yet :) a data recovery problem, just a desire to
> make the disk usable again.  Bad blocks are only remapped on a write.
> I think that a SMART long test (smartctl -tlong) writes every block
> and will do remapping as a side effect, but have not verified it.
> The even more brute-force method would be to just manually write every
> block on the disk with dd.  A bs= of 64K or 128K or more will help speed
> that up.  Retries on bad writes might slow it down again.
> The drive could use up all available spares during that process, or
> continue to grow new bad blocks.  That makes the decision to scrap it
> easy.  If it successfully maps out the bad blocks and does not appear to
> be creating new ones, then using it becomes a judgement call.  As they
> say, choose wisely.

Back in the day  (Fixed Direct Access SCSI-2 device) you could use the 
controller BIOS to do what used to be known as a "low level format" of SCSI 
drives in order to attempt to squeak a little more life from them. And if 
new bad spots did not begin to pop again right away you might be good to go 
for a while. If they did it indicated mass media failure that would just 
avalanche. The old Adaptec 1540 and 2940 controllers come to mind (Ctrl-A to 
enter the controller BIOS during POST).

Can't do this through a USB subsystem.


More information about the freebsd-questions mailing list