Toto je starší verze dokumentu!
Prověření nového rotačního HDD před zálohováním dat
Vytvořeno: 12.3.2019
Poznámka k aktuálnosti: Tento článek vychází z praktické zkušenosti z roku 2019 a nemusí odpovídat dnešním verzím nástrojů ani běžné praxi.
Důležité: Tento postup je určený pro klasické rotační HDD. Na SSD a NVMe disky se destruktivní testy typubadblocks -wnebo přepis celého zařízení náhodnými daty běžně nehodí.
smartmontools a badblocks umožňují před nasazením nového rotačního disku udělat základní kontrolu stavu, dlouhé self-testy a případně i destruktivní zápisový test. Tady je dobový praktický postup, který jsem používal před tím, než jsem na nový HDD začal přesouvat zálohy.
Proč disk nejdřív testovat
Po koupi nového disku dává smysl nejdřív odložit kopírování dat a disk důkladně prověřit. V mém případě šlo o disk připojený k Cubie Board 2 s Armbianem, kde měl sloužit pro zálohy. Po předchozí zkušenosti s odcházejícími disky jsem chtěl nový kus několik dní testovat ještě před tím, než na něj něco důležitého uložím.
S.M.A.R.T. testy
První krok byl S.M.A.R.T. self-test. Po koupi je rozumné začít třeba conveyance testem, který může odhalit poškození při přepravě:
smartctl --test=conveyance /dev/sda
Průběh a výsledky testů lze kontrolovat takto:
smartctl -l selftest /dev/sda
Pak následoval krátký a dlouhý test:
smartctl --test=short /dev/sda smartctl --test=long /dev/sda
Ukázka výpisu:
SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Self-test routine in progress 00% 7 - # 2 Conveyance offline Completed without error 00% 0 - # 3 Short offline Completed without error 00% 0 -
Destruktivní kontrola vadných bloků
Dalším krokem byla kontrola vadných bloků přes badblocks v režimu čtení i zápisu. To je potřeba brát jako destruktivní operaci, která smaže obsah zařízení.
badblocks -c 10240 -s -w -v /dev/sda
Pokud test dopadne dobře, výpis končí například takto:
Pass completed, 0 bad blocks found. (0/0/0 errors)
Na pomalejším zařízení může taková kontrola trvat velmi dlouho. V mém případě na Cubieboardu 2 trvala zhruba 7 dní.
Jako poslední krok jsem tehdy disk ještě přepsal náhodnými daty:
badblocks -c 10240 -s -w -t random -v /dev/sda
Problém s většími disky na 32bit systému
Na 32bitovém systému jsem narazil na problém při testování 8TB disku. badblocks skončil chybou o příliš velké hodnotě pro daný datový typ:
badblocks: Hodnota je příliš velká pro daný datový typ invalid end block (7814026584): must be 32-bit value
Pomohlo zvětšení velikosti bloku:
badblocks -b 4096 -s -w -v /dev/sdb
Pro ověření geometrie disku se hodí:
fdisk -l /dev/sdb
Pointa je v tom, že větší blok znamená menší počet adresovaných bloků, což může obejít limit 32bitového adresování.
Praktická poznámka k SSD a NVMe
Tento postup je zaměřený na rotační disky. U SSD a NVMe dává větší smysl vycházet z jejich vlastních diagnostických nástrojů, S.M.A.R.T./NVMe health dat a zbytečně je nevystavovat dlouhým destruktivním zápisovým testům přes celý disk.