Linux E X P R E S

Facebook

Diskotéka v systému

V systému používáme velké množství disků, ty mají oddíly a přípojné body. Kdo se v tom má vyznat? Kam se který disk připojuje, jak ho mohu odpojit?


Označení disků

Veškerá zařízení nalezneme v adresáři /dev, ATA disky pak nesou označení: hda, hdb, hdc, hdd, atd. Označení hda resp. hdb znamená master resp. slave na primárním kanálu a obdobně to je i s hdc a hdd na sekundárním. Pokud tak např. máme na primárním kanálu disk a na sekundárním CD mechaniku, obě zařízení jako master, pak v systému nalezneme zařízení /dev/hda a /dev/hdc.

Zařízení připojená přes Serial ATA nebo SCSI se značí sda, sdb, sdc, atd. Pokud na těchto rozhraních nic nemáme a připojíme např. flash disk, použije se pro něj označení /dev/sda, pokud je sda obsazeno, použije se sdb atd.

Oddíly - partitions

Předpokládejme, že máme disk na /dev/hda. Kromě něj bychom měli najít některá z následujících zařízení: hda1, hda2, hda3, atd. Co tato čísla znamenají, si vysvětlíme na následujícím příkladě. Zadáním příkazu fdisk -l /dev/hda jsem dostal tento výpis:

Zařízení Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       20317    10239736+   c  W95 FAT32 (LBA)
/dev/hda2           20318       77520    28830312    5  Rozšířený
/dev/hda5           20318       48836    14373544+  83  Linux
/dev/hda6           48837       76863    14125576+  83  Linux
/dev/hda7           76864       77520      331096+  82  Linux swap / Solaris

Disk můžeme rozdělit maximálně na čtyři primární oddíly. Tyto oddíly mají označení hda1, hda2, hda3, hda4. Pokud nám čtyři oddíly nestačí, můžeme vytvořit rozšířenou oblast a na ní pak vytvářet další oddíly. Jejich počet je prakticky neomezený. Pro tyto oddíly pak zbývá označení hda5, hda6, hda7 atd.

V našem příkladě máme tedy vytvořen jeden primární oddíl hda1, který je zároveň označen jako bootovací, pak následuje rozšířený oddíl hda2 a v něm logické disky hda5, hda6, hda7. Všimněte si stejného začátku rozšířeného oddílu a prvního logického disku.

Boot sektor obsahuje malý program, který umožní přečtení části operačního systému, jež je nutná pro spuštění systému.

Jednou z nejobávanějších situací je poškození nebo smazání MBR či partition table. Pokud k tomu dojde a my máme vytvořené potřebné zálohy těchto údajů, je řešení jednoduché. Pokud je nemáme, máme obvykle smůlu.

Partition table, tabulka rozdělení disku. Obsahuje informace o umístění a velikosti jednotlivých oblastí (oddílů) disku.

První sektor na disku se označuje jako MBR (Master Boot Record), jeho velikost je 512 bajtů. Z tohoto sektoru čte BIOS po startu počítače informace o tabulce rozdělení disku (partition table), dále informace o oddílu, který je označen jako zaváděcí (bootable) a některé další údaje.

Zálohování a obnova MBR

Jak bylo řečeno, MBR zabírá 512 bajtů. Tato oblast se nachází na začátku disku, takže ji stačí jednoduše překopírovat, nejlépe pak na disketu např. do souboru mbr.

dd if=/dev/hda of=/mnt/floppy/mbr bs=512 count=1

V případě potíží provedeme obnovu takto:

dd if=/mnt/floppy/mbr of=/dev/hda bs=512 count=1

Zálohování a obnova partition table

Pro provedení zálohy partition table by nám v podstatě stačila tužka a kousek papíru (stačí opsat informace o umístění a typu jednotlivých oblastí). Při obnově bychom pak tabulku znovu vytvořili. Tuto činnost si můžeme ulehčit pomocí tiskárny, anebo použijeme následující příkaz a zazálohujeme si potřebné informace opět např. na disketu:

sfdisk -d /dev/hda > /mnt/floppy/partition_table

Obnovu provedeme takto:

sfdisk /dev/hda < /mnt/floppy/partition_table

S.M.A.R.T.

V současné době touto technologií disponují snad všechny pevné disky. Umožňuje nám sledovat, analyzovat a podávat informace o stavu disku a tak předcházet chybám. Ke sledování stavu disku potřebujeme balíček smartmontools. Pomocí něj pak můžeme disk nejen sledovat, ale i testovat. Základní informace o SATA disku získáme takto:

smartctl -i -d ata /dev/hda

a teď podrobnější informace:

smartctl -a -d ata /dev/hda

Užitečnou vlastností je procházení logu. Jsou zde zaznamenány informace o stavu (chybách) disku po celou dobu jeho života. Ne každý disk však podporuje všechny logy:

smartctl -l error -d ata /dev/hda

Můžeme také spustit "krátký" test (doba trvání testu je upřesněna po zadání příkazu):

smartctl -t short /dev/hda

a o jeho výsledku si přečíst opět v logu:

smartctl -l selftest /dev/hda

Parametrů předávaných programu je podstatně více a určitě stojí za to si je projít, získané informace jsou docela zajímavé a často tak můžeme předejít nechtěné ztrátě dat při kolapsu disku. Ostatně více najdete v článku Mateje Kvocery.

Při práci s diskem hlavně nezapomínejte na zlaté pravidlo "Zálohovat, zálohovat, zálohovat!" Kdo se nebojí, je blázen, kdo se nebojí a zálohuje, je poloviční blázen. Zálohujte na jiné médium, než je zálohovaný disk!

Práce s disky

Následující informace budou značně subjektivní, ale snad vám usnadní základní operace s disky. Dále popisované utility pro vytváření oddílů a zálohování disku naleznete na live CD SystemRescueCD, které je pro činnosti záchrany a obnovy systému jako stvořené.

Vytvoření oddílů

Asi nejpoužívanější utilitou je fdisk. Práce s programem není obtížná, ale pokud hledáte něco více "klikacího", pak mohu doporučit cfdisk. Oba dva programy běží v konzoli. No a pokud si chcete skutečně zaklikat myší, pak bude nejlepší použít qtparted. Tento program nám umožní vytvářet oddíly obdobným způsobem jako v komerčním Partition Magicu.

Zálohování obrazu disku a oddílů

Možností je celá řada, já bych zmínil svou oblíbenou. Program se jmenuje partimage. Jak již název napovídá, jeho úkolem je vytvořit obraz disku. Kromě jeho vytvoření a obnovy umí ukládat také na síťový server, kde běží démon partimaged, a to vše dokonce i v zabezpečené SSL variantě a s možností nastavení úrovně komprese. (Na síti s rychlostí 100 Mbit počítejte s rychlostí obnovy "běžného" systému s časem pod 10 minut.)

Rychlost a nastavení disku

Kdo by neznal program hdparm, pomocí něj můžeme nastavovat celou řadu parametrů ovlivňujících rychlost nejen disku, ale i mechanik. Také můžeme otestovat rychlost zařízení. Více v článku Jindřicha Vrby.

Označení flash disku

Vzhledem k postupnému přidávání písmen do jména zařízení lze odhadnout, jak bude flash disk označen v systému. Pokud máme zařízení umístěná pouze na ATA, pak bude mít označení /dev/sda (první partition na něm /dev/sda1), máme-li jeden SATA disk, pak to bude /dev/sdb atd. Možností, jak se o tom přesvědčit, je několik. Po zasunutí flash disku můžeme zadat cat /proc/partitions, objeví se nám seznam dostupných oblastí. Také můžeme pročíst informace v logu. Zřejmě bude stačit zobrazit jen několik posledních řádků: tail /var/log/messages. Pokud by nás zajímaly informace o flash disku, rychlosti připojení atd., můžeme zadat tail -f /var/log/messages, a to ještě před připojením flash disku. Průběh připojení pak můžeme sledovat na obrazovce. Čtení vstupu ze souboru ukončíme stiskem kláves [Ctrl-C].

Co mám připojeno a proč to nejde odpojit

Co mám připojeno, se dozvím jednoduše zadáním příkazu mount bez parametrů; pokud by mě zajímala i nějaká statistika obsazení disku, mohu použít df. Občas se stane, že necháme otevřený nějaký ten soubor ze zařízení, které chceme odpojit. Pak nám při pokusu o odpojení zařízení systém napíše něco jako umount: zařízení /mnt/removable je již používáno.

Místo klasického umount /mnt/removable pak můžeme použít umount -l /mnt/removable. Není to zcela nejčistší odpojení zařízení, neboť zařízení je odpojeno ze stromové struktury ihned a odkazy na něj později, jakmile to bude jenom možné.

Mnohem lepší je zjistit, která aplikace nám odpojení blokuje. Máme-li např. flash disk připojen na /dev/sda a na něm je jediná oblast /dev/sda1, pak můžeme zadat následující: lsof /dev/sda1 a objeví se nám seznam procesů přistupujících k zařízení.

Kernel opět panic

Kernel panic - not syncing: VFS: Unable to mount root fs on uknown-block(0,0)

"Oblíbená" hláška někdy zobrazovaná už při startu systému. Její příčiny jsou v podstatě dvě - buď v jádře chybí podpora příslušného diskového řadiče, nebo podpora souborového systému. Tady bych chtěl zdůraznit, že podpora souborového systému oblasti, na které jsou životně důležitá data pro systém (typicky jím bývá root) MUSÍ být zakompilována přímo v jádře a ne jako modul. Důvod je jednoduchý: jak např. načíst modul pro podporu souborového systému ext3 umístěného v oblasti naformátované souborovým systémem ext3?

Při hlášce začínající na "Kernel panic" panikařit nemusíte, protože si tím stejně nepomůžete. Raději zachovejte klid a rozvahu, rm -rf / zpravidla nepomáhá.

Závěr

Práce s disky nepatří a nikdy nepatřila mezi ty jednodušší činnosti. Při instalaci zavaděče a následném restartu počítače mě vždy trochu zamrazí. Díky spoustě "jednoduchých" nástrojů se ale tato činnost stává stále jednodušší, srozumitelnější a bezpečnější i pro uživatele.

Diskuze (0) Nahoru