Konfigurace /etc/fstab - připojování a odpojování disků.
Práce s disky je v linuxu pojata úplně jinou cestou než ve Windows. V Linuxu, na rozdíl od Windows (a: c: d:) existuje jen jediný adresářový strom, do kterého se připojují všechny disky. Každé zařízení v Linuxu (HDD, VGA, CDROM, zvukovka, ....) je soubor umístěný v adresáři /dev/. Připojování disků se v linuxu provádí v konfiguračním souboru /etc/fstab, nebo ručně pomocí příkazu mount. V /etc/fstab je třeba nadefinovat jaké zařízení se má připojit, do jakého adresáře v našem adresářovém stromu se má připojit a s jakými parametry. Standardně se linux rozděluje na dva(kořen / a swap) a více oddílů .
Jelikož mají všechna zařízení svůj soubor, musíme znát které soubory patří našemu harddisku, DVD mechanice, nebo třeba usb disku.
Označení disků je spojeno s hardwarovou konfigurací počítače a má svá pravidla. Disk na prvním kanále (primary master) je /dev/hdaDisk na druhém kanále (secondary master) je /dev/hdb
Disk na třetím kanále (primary slave) je /dev/hdc
Disk na čtvrtém kanále (secondary slave) je /dev/hdd
SATA a USB disky se označují písmeny "sd".
První disk /dev/sdaDruhý disk /dev/sdb
...
Podle konfigurace kernelu se můžeme ještě setkat s /dev/uba, /dev/ubb, ..., které má stejnou funkci jako sd ale používá jiný ovladač.
Dále se rozlišují oddíly (partitions) na disku. Mohou být primární (maximálně čtyři oddíly 1-4) a rozšířené (také čtyři oddíly 5-8). Oddíly se vytvářejí programem fdisk nebo přehledněji třeba programem cfdisk. Pozor aby jste si nesmazali diskové oddíly :). Použití je jednoduché např. # cfdisk /dev/sda
Takže máme-li první harddisk rozdělen na dva oddíly a jeden je primární (primary) a druhý rozšířený (extended), bude první oddíl označen jeko /dev/hda1 a druhý jako /dev/hda5 jelikož byl vytvořen jako rozšířený a ten vždy začíná od čísla 5.
Když nevíme jaké disky máme v systému můžeme si je vypsat např. pomocí příkazu fdisk
# fdisk -l
Disk /dev/hda: 164.6 GB, 164696555520 bytes 255 heads, 63 sectors/track, 20023 cylinders Units = cylindry of 16065 * 512 = 8225280 bytes Zařízení Boot Start End Blocks Id System /dev/hda1 * 1 6 48163+ 83 Linux /dev/hda2 7 3653 29294527+ 83 Linux /dev/hda3 3654 19701 128905560 83 Linux /dev/hda4 19702 20023 2586465 82 Linux swap / Solaris Disk /dev/hdb: 81.9 GB, 81964302336 bytes 255 heads, 63 sectors/track, 9964 cylinders Units = cylindry of 16065 * 512 = 8225280 bytes Zařízení Boot Start End Blocks Id System /dev/hdb1 * 1 1998 16048903+ 7 HPFS/NTFS /dev/hdb2 1999 9964 63986895 f W95 Ext'd (LBA) /dev/hdb5 1999 9964 63986863+ b W95 FAT32 Disk /dev/sda: 1031 MB, 1031798784 bytes 16 heads, 32 sectors/track, 3936 cylinders Units = cylindry of 512 * 512 = 262144 bytes Zařízení Boot Start End Blocks Id System /dev/sda1 * 1 3936 1007600 6 FAT16
Užitečný je také výstup programu dmesg, který ukáže například momentálně připojený usb disk a další informace.
# dmesg | tail - vypíše konec gmesg výstupu
... ... sda: assuming drive cache: write through SCSI device sda: 2015232 512-byte hdwr sectors (1032 MB) ... ... ... sda: assuming drive cache: write through sda: sda1 ... ...
Z předchozího zkráceného výstupu vidíme, že jsem právě připojil Gigovej usb disk a ten dostal přiřazeno označení sda1, ale to už předbíhám.
Ukázkový konfigurační soubor /etc/fstab na pracovní stanici může vypadat takto:
# Pokud je BOOT partition na ReiserFS, vložte notail parametr. /dev/hda1 /boot ext2 defaults,noatime 1 2 /dev/hda2 / reiserfs noatime 0 0 /dev/hda3 /home reiserfs noatime 0 0 /dev/hda4 none swap sw 0 0 /dev/hdb1 /mnt/win ntfs rw,user,umask=0222 0 0 /dev/hdb5 /mnt/data vfat quiet,user /dev/hdc /mnt/dvd auto noauto,ro,user 0 0 /dev/sda /mnt/usb auto quiet,user 0 0 /dev/fd0 /mnt/floppy auto noauto,user 0 0 # Tato řádka je kriticky nutná pro boot! proc /proc proc defaults 0 0 # Připojení tmpfs do /dev/shm - toto vyžaduje glibc shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
V tomto ukázkovém konfiguráku jsou 2 harddisky první je rozdělen na čtyři oddíly, které jsou vytvořené jako primární (hda1, hda2, hda3, hda4). Druhý disk je rozdělen na dva oddíly první je primární a druhý rozšířený (hdb1, hdb5). Dále mám DVD-RW nechaniku (hdc - u CD, DVD mechanik se samozřejmě oddíly nevytváří a proto nezadáváme číslo oddílu (partyšny)), usbdisk (sda), a disketovou mechaniku (fd0).
Formát záznamu je jednoduchý:
/dev/zařízení /adresář filesystem parametry dump fsck
/dev/zařízení - oddíl, který se má připojit (hda, hdb, vzdálený oddíl samby je např. //ferda/filmy, ...)
/adresář - do jakého adresáře se oddíl připojí (swap se nepřipojuje - none, kořenový adresář je /)
filesystem - jaký souborový systém je na oddílu (fat, vfat, ext2, ext3, reiserfs, iso9660, swap, ....)
parametry - sem zadáváme parametry připojení
dump - určuje jak často se má zálohovat (číslo)
fsck - určuje pořadí kontroly soubrových systémů při startu systému (číslo)
ro - jen pro čtení
rw - pro čtení i zápis
user - povolí přístup obyčejným uživatelům
quiet - nebude vypisovat hlášky např. o nemožnosti nastavení práv na oddílu, který to nepodporuje
noatime - zakáže úpravu informací o posledním přístupu k souboru
noauto - zakáže automatické připojení po startu
codepage - znaková sada názvů souborů (codepage=utf8)
iocharset - znaková sada, do které se budou převádět názvy souborů (iocharset=iso8859-2)
noexec - nebude spouštět soubory na tomto oddílu
umask - nastavení práv souborů
dmask - nastavení práv adresářům
Přípojné body(adresáře) si musíme na disku samozřejmě vytvořit. Když máme fstab zkonfigurován disky se po restartu sami připojí. Ruční připojování se provádí příkazem # mount a odpojování příkazem # umount.
# mount /mnt/dvd - připojí dvd mechaniku# umount /mnt/dvd - odpojí dvd nechaniku
Výborný je také příkaz # eject, který dokáže ovládat dvířka mechanik.
Swap se připojuje příkazem # swapon a odpojuje příkazem # swapoff.
# swapon -a - připojí všechny oddíly označené jako swapSeznam právě připojených disků naleznete v /etc/mtab.
# cat /etc/mtab
/dev/hda2 / reiserfs rw,noatime 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 udev /dev tmpfs rw,nosuid 0 0 devpts /dev/pts devpts rw 0 0 /dev/hda1 /boot ext2 rw,noatime 0 0 /dev/hda3 /home reiserfs rw,noatime 0 0 /dev/hdb5 /mnt/data vfat rw,noexec,nosuid,nodev,quiet 0 0 /dev/hdb1 /mnt/win ntfs rw,noexec,nosuid,nodev,umask=0222 0 0 shm /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0 usbfs /proc/bus/usb usbfs rw,devmode=0664,devgid=85 0 0 /dev/hdc /mnt/dvd iso9660 ro,noexec,nosuid,nodev 0 0





















