Chyba cteni disku - II

Dan Lukes dan at obluda.cz
Sun Oct 12 23:14:10 CEST 2014


Zbyněk Burget wrote:
> Nasel jsem na disku soubor, ve kterem jsou necitelne sektory. 
> chtel jsem je "opravit" tak, ze je prepisu nulama.
> Ale ani to se mi nedari:
> 
> # dd if=/dev/zero of=test/poskozenysoubor bs=8192 seek=43436 count=1
> conv=notrunc
> dd: test/poskozenysoubor: Input/output error

> Napada nekoho, proc by mi mohl disk odmitnout zapsat 8kb blok dat, kdyz
> je tam vadny sektor? Proc ho nerealokuje?

Dneska me to napadlo, protoze jsem se utkal s poskozenym Hitachi diskem
(jenze ja zvitezil).

Zakopany pes se muze jmenovat "advanced format". To jsou takove ty
disky, ktere se jen tvari, ze maji standardni pulkilove sektory, ale ve
skutecnosti maji fyzicky ctyrkilove.

Takze jsem si nasel, kterych osm sektoru ej vadnych a pokusil se je
(stejne jako ty) prepsat na nuly pomoci

seek=xxxx bs=512 count=8

a hle, to neslo - IO error.

Ale bez problemu to slo prepsat pokud jsem se prizpusobil fyzicke
velikosti sektoru, tedy jako:

seek=xxxx/8 bs=4k count=1

To proslo bez problemu a sektor se stal citelnym.

Tys ale nepracoval nad fyzickym diskem, ale nad sektorem. A zde bs=8k z
tveho prikladu nezarucuje, ze se jednalo o zapis do prave dvou fyzickych
sektoru.

Pokud se tenhle osmikolivy blok presne nekryl s fyzickym sektorem, tak
to nemusi dopadnout dobre. A je mozny, ze mu vadi uz jen to, ze nesedi
presne velikost bloku.

Takze zaprvy to muzes zkusit prepsat na prikaz, kde bs=4k:

> dd if=/dev/zero of=test/poskozenysoubor bs=4096 seek=86872 count=2

A pokud to nepomuze, pak zapomen na praci se souborem a identifikuj
vadny sektor na fyzickem disku - a pak ho jako ctyrkilovy prepis ...

Neni jisty, ze problem je v tomhle, ale hypoteza to je nadejna ...

Dan





More information about the Users-l mailing list