Re: How can i read really 512 byte?

From: Milton Miller
Date: Wed Oct 01 2008 - 08:19:45 EST



On Oct 1, 2008, at 5:23 AM, Janos Haar wrote:

On Tue, 30 Sep 2008 at 08:29:15 -0400 (EDT), Janos Haar wrote:
Now i am working on recover some data from one defective drive. I
am using dd_rescue, and dd, but both ready only 4K, i think, because
the kernel's block size is 4K.
I have tried to google for the solution, but only found this trick:
losetup /dev/loop0 /dev/hdc
blockdev --setbsz 512 /dev/hdc
and after this set, trying to read the hdc...
It looks like working on the first look, but not really. :-( The
512 size bad sectors still have 4K sizes, but the reading attempt
takes more (8x ?) longer.
Somebody can help me to set the reading block size to 512 byte?
You need to add O_DIRECT to the open call in the flags parameter
(the second argument). (My brother tested this a year or so ago,
and it worked for him).
milton

Hello,

Thank you for the information.
Can you help me a little bit more?
Where need to add this parameter?
In the kernel, in the blocked's source, or in the dd_rescue's source?

dd_rescue ... there is a call to open, add O_DIRECT to the second argument and recompile. If it says unknown identifier, just copy the #define from the kernel header into the dd_rescue source.

milton

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/