Gondolom gyakorló adminisztrátorok számára rendszeres élmény amikor a kapnak egy új disket a rendszerükhöz, amit aztán használatba kellene venni, valamilyen Volume Manager poolhoz hozzáadni, vagy simán csak filesystemet tenni rá. Ilyenkor minden tapasztalt és kétkedő ember először egy gyors írási tesztet végez el az új device-n, mielőtt produktív használatba állítaná.
Természetesen több egyszerűbb és persze komplikáltabb megoldás is létezik. Mindig mérlegelni kell, mekkora a valós veszély illetve mekkora bizonyosságra van szükségünk. Az én általam ismert két megoldáson túl persze millió lehet még.
DD-zés
A legalapvetőbb, és minden UNIX/Linux platformon elérhető kis parancs a DD. A DD nem csinál mást, mint a meghatározott inputról mindent bitről bitre átmásol az output-ra. Ami lehet file, device, akármi. Természetesen mindent felül fog írni, így ha nem tök üres, disk-el tesszük ezt akkor az adatvesztéshez fog vezetni!
A legegyszerűbb tehát fogni, és a /dev/urandom (véletlengenerátor) device-t megadni inputként, és onnan szépen írni az új diskünkre. Sajnos nem nagyon lehet semmi progress bar-t látni folyamat közben, csak várni kell.
# dd if=/dev/urandom of=/dev/sdb
Ahogy látszik a fentebbi képen, a DD idővel teleírta a disk tárterületét. Akkor szépen leállt. Az én esetemben 6.1MB/s sávszélességgel és közel 3 perc alatt végzett. Eközben nem volt hiba, tehát a disk használhatónak tűnik.
Badbocks
Kicsit intelligensebb, bár alapvetően a DD-hez hasonló funkciót valósít meg a badblocks. Hasonlóképpen írási próbát fog végezni a megadott disken, tehát minden előtte lévő adat el fog veszni. Erre figyeljünk oda.
# /sbin/badblocks -c 10240 -s -w -t random -v /dev/sdb
A „-c” után a tesztelésnél használt blokk méretet, a „-t” után a tesztelés típusát lehet megadni lehet megadni. A „-s” el bekapcsoljuk azt, hogy egy minimál progress bar-on mutassa nekünk hol jár, a „-w”-vel pedig adjuk meg neki, hogy írási teszt is legyen.
Ahogy látszik ez a badblocks kicsit intelligensebb és informatívabb.
Aprocska kiegeszito trukk csak, hogy vegul is meg lehet tudni, hogy a dd hol jar – ha nem is egy progress bar kenyelmi szintjen – az 1-es signal atadasaval a processnek. (kill -USR1 `pidof dd`)