Re: How can i read really 512 byte?

From: Janos Haar
Date: Wed Oct 01 2008 - 09:50:24 EST



----- Original Message ----- From: "Andrey Borzenkov" <arvidjaar@xxxxxxx>
To: "Milton Miller" <miltonm@xxxxxxx>; <janos.haar@xxxxxxxxxxxx>; "Linux Kernel Mailing List" <linux-kernel@xxxxxxxxxxxxxxx>
Sent: Wednesday, October 01, 2008 2:36 PM
Subject: Re: How can i read really 512 byte?


Milton Miller wrote:


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.


C'mon, really.

{pts/0}% dd_rescue -h

dd_rescue Version 1.14, garloff@xxxxxxx, GNU GPL
[...]
-b softbs block size for copy operation (def=65536),
-B hardbs fallback block size in case of errs (def=512),
[...]
-d/D use O_DIRECT for input/output (def=no),

YES! 8-)
It works! :-)

Thank you wery much for you, and Milton!

Thanks
Janos Haar



--
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/

--
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/