Messages in this thread | | | From | "Janos Haar" <> | Subject | Re: How can i read really 512 byte? | Date | Wed, 1 Oct 2008 15:44:41 +0200 |
| |
----- Original Message ----- From: "Andrey Borzenkov" <arvidjaar@mail.ru> To: "Milton Miller" <miltonm@bga.com>; <janos.haar@netcenter.hu>; "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org> 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@suse.de, 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
| |