Jsem fanda a uživatel Linuxu a nedokážu si bez něj představit IT svět. Miluju na něm to, že si mohu všechno přizpůsobovat svým potřebám a mít nespočet možností. V domácnosti mám v rozvodné skříni mikropočítače s Linuxem a k jenomu z nich je připojený mikropočítač Cubie Board 2. Je to už starší kousek, nicméně pro zálohu stále použitelný. Má SATA port na připojení hard disku. Pro úplnost doplním, že na Cubie Board 2 mi běží distro Armbian.
Hledání vhodného disku
Ke Cubie Boardu jsem měl připojený 2TB disk a skrze něj jsem si zálohoval data. Bohužel můj HDD i s daty odešel do křemíkového nebe. Na celé situaci mě potěšilo alespoň to, že jsem pár měsíců před odchodem HDD zkopíroval celý jeho obsah na jiný disk. Technicky vzato jsem přišel o data tak měsíc stará a technicky vzato mě to už ani nebolí 🙂
Nastal čas koupit nový disk a připravit ho k používání. Je to vlastně už druhý disk, který mi odešel ještě v době kratší než 2 roky. Proto jsem trávil opravdu několik hodin hledám nějakého spolehlivějšího. Po pročtení mnoha příspěvků, názorů, statistik Backblaze jsem si jenom potvrdil, že nemá smysl hledat něco, co neexistuje. Jediný způsob, jak snížit riziko ztráty dat je vytvářet zálohy záloh. V dalším kroku se chystám na softwarový RAID, nicméně tento příspěvek je o přípravě nově koupeného disku. V rámci disku jsem se rozhodnul pro Seagate IronWolf, 3,5″ – 4TB.
Prověření koupeného disku S.M.A.R.T.
Prvním úkolem po koupi disku je vydržet tu dětskou radost z něčeho nového a nepřesouvat tam žádná data. Nejprve musím dostatečně softwarově prověřit i kdyby to mělo trvat týden. Nejprve zkontroluji disk skrze S.M.A.R.T.:
smartctl --test=conveyance /dev/sda
Tento příkaz je dobré spustit po koupi disku, kdy je možné, že někomu disk spadnul. Testují se možná poškození po přenosu disku. Podrobnosti lze najít v manuálu. Výsledky testů a zda jsou dokončeny je možné sledovat pomocí tohoto příkazu:
smartctl -l selftest /dev/sda
Jako další krok je dobré provést zkrácený a dlouhý test. Zkrácený test běžel pár minut. Dlouhý test už potrvá nějakou tu hodinku.
smartctl --test=short /dev/sda smartctl --test=long /dev/sda
Výsledky testů dopadly dobře, žádná chyba nebyla nalezena, mohu přejít k dalšímu kroku.
root@cubieboard2:/home/armbian# smartctl -l selftest /dev/sda smartctl 6.4 2014-10-07 r4002 [armv7l-linux-4.19.13-sunxi] (local build) Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === 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 -
Kontrola vadných bloků
Dalším rozumným krokem před vytvořením souborového systému a přenesením dat je kontrola vadných bloků na disku. Následující příkaz provádí zápis dat na disk a posléze čtení. Postupně zkouší tyto sekvence bitů: 1010, 0101, 1111, 000. Pokud všechno dopadne dobře, výpis vypadá takto:
root@cubieboard2:/home/armbian# badblocks -c 10240 -s -w -v /dev/sda Checking for bad blocks in read-write mode From block 0 to 3907018583 Testing with pattern 0xaa: done Reading and comparing: done Testing with pattern 0x55: done Reading and comparing: done Testing with pattern 0xff: done Reading and comparing: done Testing with pattern 0x00: done Reading and comparing: done Pass completed, 0 bad blocks found. (0/0/0 errors)
Zároveň je potřeba počítat s určitou dávkou trpělivosti. Na desce Cubieboard2 trvala tato kontrola 7 dní.
Jako poslední krok před další práci s diskem jsem přepsal disk náhodnými daty a připravil se tak na šifrování. Vykonání posledního příkazu zabralo něco kolem 30h.
badblocks -c 10240 -s -w -t random -v /dev/sda
Problém s většími disky a 32-bit systémem
Disk jsem kontroloval na 32 bitovém operačním systému. Jenže už jsme měl 8TB disk. Při pokusu o kontrolu se objevilo chybové hlášení:
badblocks -c 10240 -s -w -v /dev/sdb badblocks: Hodnota je příliš velká pro daný datový typ invalid end block (7814026584): must be 32-bit value
V diskusích jsem dohledal, že by mělo zafungovat použití většího bloku v bitech:
badblocks -b 4096 -s -w -v /dev/sdb
Pro pochopení použití příkazu je dobré si zobrazit rozdělení disku:
fdisk -l /dev/sdb Disk /dev/sdb: 7,28 TiB, 8001563222016 bytes, 15628053168 sectors Disk model: 002-2ZM188 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Tento postup může pomoci obejít omezení 32bitového adresování bloků. Parametr -b v příkazu badblocks určuje velikost bloku v bytech, kterou program použije pro testování disku. Standardní velikost bloku je často 512 bytů, ale může být zvětšena na 4096 bytů nebo dokonce více.
Když zvětším velikost bloku, snižuji celkový počet bloků na disku. To je proto, že celkový prostor disku je nyní rozdělen do větších ‚kousků‘. Pro 8TB disk:
- Při velikosti bloku 512 bytů: 8 TB / 512 B = 16,000,000,000 bloků (přibližně)
- Při velikosti bloku 4096 bytů: 8 TB / 4096 B = 2,000,000,000 bloků (přibližně)
Takže při použití větší velikosti bloku 4096 bytů se celkový počet bloků sníží, což znamená, že jsou menší čísla potřebná pro adresování těchto bloků.