badblocks, coś z nim nie tak chyba.

Jakub Głazik zytek-lists w nuxi.pl
Sob, 16 Cze 2007, 20:00:23 CEST


badblocks, ten soft w ogóle do czegokolwiek służy?

zaobserwowałem takie coś u siebie:

hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=22686768,
sector=22686768 ide: failed opcode was: unknown
end_request: I/O error, dev hda, sector 22686768
Buffer I/O error on device hda2, logical block 393966

Pojawia się to przy odczycie z jednej partycji, zwróciłem uwagę gdy
reiserfsck mi się wywalił sugerując wadliwy dysk.
Błędy pojawiają się przy odczycie >800Mb na partycji hda2 (sprawdziłem
przez dd).

Zapuściłem więc badblocks, ale.. no właśnie. Po pierwsze primo, czy on
w ogóle OZNACZA badblocki na dysku, czy tylko wypisuje?
Poza tym mogliby wspomnieć w dokumentacji, że wynik działania mocno
zależy od ustawień dysku oraz ilości czytanych bloków na raz (-c).


[root w jenny ~]# badblocks -s -v /dev/hda2 1600000 1550000
Sprawdzanie bloków od 1550000 do 1600000
Poszukiwanie wadliwych bloków (tylko odczyt): 1575856 1575856/
1600000 1575864 1575864/        1600000
1575865 1575865/        1600000
1575866 1575866/        1600000
1575867 1575867/        1600000
done                                
Przebieg zakończony, znaleziono 5 wadliwych bloków.

[root w jenny ~]# badblocks -s -v -c 1 /dev/hda2 1600000 1550000
Sprawdzanie bloków od 1550000 do 1600000
Poszukiwanie wadliwych bloków (tylko odczyt): 1575864 1575864/
1600000 1575865 1575865/        1600000
1575866 1575866/        1600000
1575867 1575867/        1600000
done                                
Przebieg zakończony, znaleziono 4 wadliwych bloków.

[root w jenny ~]# hdparm -a /dev/hda
/dev/hda:
 readahead     =  0 (off)
[root w jenny ~]# hdparm -a 128 /dev/hda

/dev/hda:
 setting fs readahead to 128
 readahead     = 128 (on)

[root w jenny ~]# badblocks -s -v -c 1 /dev/hda2 1600000 1550000
Sprawdzanie bloków od 1550000 do 1600000
Poszukiwanie wadliwych bloków (tylko odczyt): 1575852 1575852/
1600000 1575853
1575854
1575855
1575856
1575857
1575858
1575859
1575860
1575861
1575862
1575863
s1575864 1575864/        1600000
1575865 1575865/        1600000
1575866 1575866/        1600000
1575867 1575867/        1600000
done                                
Przebieg zakończony, znaleziono 16 wadliwych bloków.

Więc ile, 5,4 16, 24 ??

Pomijam fakt, że na ustawieniach domyślnych (readahead i ilość
czytanych bloków na raz) po starcie systemu jak zapuściłem mke2fs z
opcją -c to nie znalazł żadnych badblocków, mimo, że błędy DMA w dmesgu
się pojawiały. Ech.

A tu jeszcz przykład ze zmianą wyniku w zależności od zmiany zakresu i
readahead:

[root w jenny ~]# hdparm -a 256 /dev/hda

/dev/hda:
 setting fs readahead to 256
 readahead     = 256 (on)
[root w jenny ~]# badblocks -s -v /dev/hda2 1600000 1550000
Sprawdzanie bloków od 1550000 do 1600000
Poszukiwanie wadliwych bloków (tylko odczyt): 1575856 1575856/
1600000 1575864 1575864/        1600000
1575865 1575865/        1600000
1575866 1575866/        1600000
1575867 1575867/        1600000
done                                
Przebieg zakończony, znaleziono 5 wadliwych bloków.
[root w jenny ~]# badblocks -s -v /dev/hda2 1600000 1500000
Sprawdzanie bloków od 1500000 do 1600000
Poszukiwanie wadliwych bloków (tylko odczyt): 1575840 1575840/
1600000 1575844 1575842/        1600000
1575845
1575846
1575847
1575848
1575849
1575850
1575851
1575852
1575853
1575854
1575855
1575856
1575857
1575858
1575859
1575860
1575861
1575862
1575863
1575864 1575864/        1600000
1575865 1575865/        1600000
1575866 1575866/        1600000
1575867 1575867/        1600000
done                                
Przebieg zakończony, znaleziono 25 wadliwych bloków.


To jak to w końcu jest?

-- 
.: Jakub Glazik,
.: too geek to live, too leet to die ;-) 
.: email & jabber: zytek<at>nuxi.pl



Więcej informacji o liście dyskusyjnej pld-users-pl