Manipulace s diskem v Linuxu
Dnes jsem si potřeboval dát do pořádku flashdisk, odstranit staré oddíly a vytvořit jeden nový s FAT32. V souvislosti s tímto jsem si napsal několik následujících poznámek k práci s disky a diskovými oddíly v Linuxu. Jako bonus ještě na konec zmíním několik nástrojů, pro monitorování stavu a záchranu dat z disku, se kterými mám pozitivní zkušenosti.
1. Získávání informací
Seznam filesystémů podporovaných jádrem
cat /proc/filesystems
Zaregistroval systém připojení USB disku?
dmesg
dmesg vytiskne zprávy jádra. Pokud ho spustíte po tom, co jste připojili USB disk, můžete si zkontrolovat, zda Váš systém USB disk vůbec “vidí”.
Ukázka výstupu dmesg:
[ 5395.140035] usb 2-1: new high speed USB device using ehci_hcd and address 3
[ 5395.273100] usb 2-1: configuration #1 chosen from 1 choice
[ 5395.282585] scsi9 : SCSI emulation for USB Mass Storage devices
[ 5395.283167] usb-storage: device found at 3
[ 5395.283171] usb-storage: waiting for device to settle before scanning
[ 5400.280620] usb-storage: device scan complete
[ 5405.952224] scsi 9:0:0:0: Direct-Access Corsair Flash Voyager 1.00 PQ: 0 ANSI: 2
[ 5405.952880] sd 9:0:0:0: Attached scsi generic sg3 type 0
[ 5405.966303] sd 9:0:0:0: [sdc] 15859712 512-byte logical blocks:(8.12 GB/7.56 GiB)
[ 5405.966919] sd 9:0:0:0: [sdc] Write Protect is off
[ 5405.966924] sd 9:0:0:0: [sdc] Mode Sense: 03 00 00 00
[ 5405.966929] sd 9:0:0:0: [sdc] Assuming drive cache: write through
Co a kam se připojuje při startu?
cat /etc/fstab
Pěkný článek o fstab na abclinuxu.cz.
Seznam všech aktuálně připojených disků
mount nebo mount -l
Zobrazí seznam zařízení, jejich přípojných bodů a parametrů připojení.
Seznam diskových oddílů v systému
cat /proc/partitions
Tabulky rozvržení oddílů na všech blokových zařízeních
parted -l
Poznámka: Jsou potřeba práva roota.
Tabulky rozdělení disků
fdisk -l
Poznámka: Jsou potřeba práva roota.
2. Práce s disky a oddíly
POZOR: Následující část článku již ukazuje samotnou práci s disky a diskovými oddíly. Naleznete v ní i praktické příklady použití. V žádném případě, nedoporučuji příklady zkoušet, pokud nevíte co děláte! Já v příkladech pracuji se zařízením /dev/sdc což byl v mém případě flashdisk, ale na vašem počítači to může být klidně disk s daty a proto buďte opatrní a dejte pozor jakému disku měníte rozdělení oddílů a co formátujete!
Práce s tabulkou oddílů
fdisk
Program fdisk slouží k manipulaci s oddíly na pevném disku.
Příklad postupu pro rozdělení disku
(vytvoření jednoho velkého oddílů přes celý disk /dev/sdc):
$ fdisk /dev/sdc
Pomocí m zobrazíme nápovědu.
Pomocí d smažeme postupně dosavadní oddíly (pokud nějaké jsou).
Pomocí n vytvoříme nový oddíl.
– Vybereme p, protože chceme vytvořit primární oddíl.
– Číslo diskového oddílů zvolíme 1.
– První a poslední cylindr ponecháme implicitní.
Pomocí w zapíšeme změny na disk a ukončíme program.
Vytvoření filesystému (formát disku)
mkfs
Program mkfs je frontend pro různé systémové programy na tvorbu filesystémů.
Příklad použití pro vytvoření souborového systému FAT na oddílu /dev/sdc1, který jsme si vytvořili výše pomocí fdisku:
$ mkfs -t vfat /dev/sdc1
Pokud chcete při tvorbě zadat nějaká upřesňující nastavení, příkazem “mkfs.pozadovany_file_system” získáte jejich přehled včetně názvu konkrétní aplikace pro tvorbu požadovaného filesystému. Příklad:
$ mkfs.vfat
mkfs.vfat 3.0.3 (18 May 2009)
No device specified!
Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] [-b backup-boot-sector]
[-m boot-msg-file] [-n volume-name] [-i volume-id]
[-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]
[-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors]
/dev/name [blocks]
Jak vidíte, pro tvorbu filesystému FAT používá mkfs program mkdosfs. Pokud tedy chceme disk naformátovat na FAT32 a zároveň mu nastavit i název, tak místo mkfs můžeme rovnou použít mkdosfs. Příklad:
$ mkdosfs -F 32 /dev/sdc1 -n Flashka
Kontrola a oprava filesystému
fsck
Fsck je, podobně jako mkfs, frontend pro různé systémové programy na kontrolu filesystému.
Podrobnější informace o přepínačích pro jednotlivé filesystémy zjistíte pomocí “fsck.jmeno_filesystemu“.
Pro kontrolu oddílu s FAT tak můžete použít:
fsck -t vfat /dev/sdc1 # Díky přepínači "-t vfat" se ve skutečnosti spustí program dosfsck.
3. Programy pro monitorování “zdraví” pevného disku
pomocí {tooltip}S.M.A.R.T.{end-link}Self-Monitoring, Analysis, and Reporting Technology{end-tooltip}
Smartmontools
Balík dvou programů pro monitorování stavu pevných disků pomocí systému S.M.A.R.T..
První program je “smartd” démon, který běží na pozadí v systému a sbírá data, druhý je “smartctl“, který slouží k ovládání S.M.A.R.T. a monitorování výsledků.
Domovská stránka: http://sourceforge.net/apps/trac/smartmontools/
Licence: GNU GPLv2
Jméno balíčku pro Ubuntu: smartmontools
GSmartControl
Grafické uživatelské rozhraní pro program smartctl z výše uvedeného balíku Smartmontools.
Screenshoty aplikace GSmartControl.
Domovská stránka: http://gsmartcontrol.berlios.de/home/index.php/en/Home
Licence: GNU GPL v2 a v3
Jméno balíčku pro Ubuntu: gsmartcontrol
4. Záchrana dat z disku
TestDisk
Výborný nástroj na záchranu dat na disku. Umí obnovit ztracené rozdělení oddílů na disku, opětovně nastavit bootovací oddíl, obnovit smazané soubory z FAT, NTFS a ext2 a ještě několik dalších velice užitečných věcí.
Domovská stránka: http://www.cgsecurity.org/wiki/TestDisk
Licence: GNU GPL
Jméno balíčku pro Ubuntu: testdisk
Ddrescue
Nástroj pro obnovu dat. Slouží ke kopírování dat ze jednoho souboru, nebo blokového zařízení do jiného.
Domovská stránka: http://www.gnu.org/software/ddrescue/ddrescue.html
Licence: GNU GPLv3
Jméno balíčku pro Ubuntu: ddrescue