Administrace souborového systému
Připojování a odpojování disků
Speciální soubory
V Linuxu jsou disky reprezentovány speciálními soubory v adresáři /dev
.
Disk může být rozdělen na několik částí (partitions). Každá část pak lze zvlášť naformátovat. Ve Windows se každé části obvykle přiřadí nějaké písmeno a chová se, jako by byla samostatným diskem.
V Linuxu se diskům automaticy přiřadí nějaký speciální soubor, například první disk reprezentuje
/dev/hda
, druhý disk /dev/hdb
atd. To se týká ATA disků. SCSI
diskům (novější typy disků, USB klíčenky atp.) se přiřazuje /dev/sda
, /dev/sdb
atd.
Jednotlivým částe (partitions) disků pak odpovídají soubory /dev/hda1
,
/dev/hda2
atd.
Takže souboru /dev/sdc2
odpovídá druhá partition na třetím SCSI disku.
Seznam všech disků a jejich partitions můžete zobrzit příkazem fdisk -l
(zřejmě k tomu budete muset mít práva roota), jinak se vám žádná data nevypíšou:
Disk /dev/sda: 160,0 GB, 160 041 885 696 bajtů
hlav: 255, sektorů na stopu: 63, cylindrů: 19 457, celkem 312 581 808 sektorů
Jednotky = sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Identifikátor disku: 0x89718971
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sda1 2048 4208639 2103296 82 Linux swap/Solaris
/dev/sda2 * 4208640 130045951 62918656 83 Linux
/dev/sda3 130045952 144809983 7382016 83 Linux
/dev/sda4 144809984 312580095 83885056 83 Linux
Disk /dev/sdb: 16,2 GB, 16 173 236 224 bajtů
hlav: 64, sektorů na stopu: 32, cylindrů: 15 424, celkem 31 588 352 sektorů
Jednotky = sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Identifikátor disku: 0xf8ceefaa
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sdb1 * 32 11718655 5859312 7 HPFS/NTFS/exFAT
/dev/sdb2 11718656 31588351 9934848 83 Linux
Disk /dev/mapper/luks-ff4796b2-eb5c-42f8-b008-d8bed502ca38: 10,2 GB, 10 171 187 200 bajtů
hlav: 255, sektorů na stopu: 63, cylindrů: 1 236, celkem 19 865 600 sektorů
Jednotky = sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Ve výpisu výše můžete vidět že mám v PC dva disky, jeden 160 GB velký, druhý jen 16,2 GB – to je USB klíčenka.
První disk je rozdělen na 4 čáasti. První část slouž jako tzv. swap, ostatní jsou linuxové oddíly (sda2 je zaváděcí oddíl, ze kterého se startuje operační systém).
USB disk je rozdělen na 2 části. Na jedné je NTFS formát (ten používám ve windows) a na druhé je Linuxový formát (ten používám v linuxu). První (sdb1) partition je označená jako zaváděci, protože na ní mám nainstalovaný Slax.
Připojování disků (mount)
V Linuxu nejsou disky řešeny různými písmeny jako ve Windows, ale připojují
se všechny do jednoho souborového systému (jehož kořenem je /
).
K tomu slouží program mount
. K odpojení
program umount
.
Popis disků, jaké mají formátování a kam se v systému souborů mají připojit
je v souboru /etc/fstab
. Většina zde uvedených disků se připojí
automaticky po startu (neplatí například pro CD/DVD mechaniky).
Pokud je disk (resp. jeho partition) uveden v /etc/fstab
,
při připojování a odpojování se stačí odkazovat na adresář, kde má být připojen.
$ mount /cdrom
$ # pokud neni:
$ mount /dev/sdc /cdrom
Příkaz mount
umí dokonce připojit do souborového systému
i obrazy disků, a to pomocí tzv. loop zařízení:
Příklad výše připojí soubor obraz.disku.img
do adresáře
disketa/
. Parametr -t vfat
určuje, jakým
formátem je obraz disku zformátován.
Odpojování disků (umount)
Po skončení práce s diskem (třeba USB klíčenkou) se musí disk nejdříve
odpojit příkazem umount
, než jej odpojíte od počítače.
Jinak se může stát, že se provedené změny na disk nezapíšou korektně
(kvůli tomu, že se zapisovaná data zapisují nejdříve do mezipaměti
disku a až později na disk - nejpozději před odpojením).
CD/DVD většinou z počítače ani nevyndáte, když je neodpojíte:
Disk se podaří odpojit pouze pokud s jeho obsahem nepracuje žádný program (nesmíte mít na odpojovaném disku ani aktuální adresář v shellu!).
Pokud se vám nedaří disk odpojit a nevíte, který program s diskem pracuje,
může vám pomoci program lsof
. Ten vypíše všechny otevřené (používané)
soubory z disku.
Výpis připojených disků
Připojené oddíly lze vypsat příkazem mount
,
ale i příkazem findmnt
, který
dává mnohem hezčí výstup.
findmnt
EXAMPLES
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2 ext4 rw,relatime,data=ordered
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs rw,nosuid,nodev,noexec,mode=755
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup
rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-a
│ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
...
Správa diskových oddílů
Většina následujících příkazů vyžaduje superuživatelská práva (root).
Informace o discích
- fdisk -l
- zobrazí rozdělení disků
- dumpe2fs /dev/sda1
- vypíše podrobné informace o souborovém systemu ext (linuxový souborový systém)
- e2label
- zobrazí název diskového oddílu. Dokáže jej i změnit.
Kontrola a oprava souborových systémů
- badblocks -v -s /dev/sda6 pocet_bloku_jednotky
-
Testuje oddíl disku a hledá chyby (ovšem neopravuje je).
Přepínač
-v
vypisuje informace,-s
značí status (kolik je hotovo...),/dev/hda6
je jmeno testovane oblasti. - fsck -f -y /dev/sda6
- Opravuje poškozený fsystém. Jednotka (/dev/sda6) musí být odpojená, tj. často je nutné nastartovat např. z diskety a poté jednotku opravit. Existují různé varianty tohoto programu pro různé filesystémy. Například fsck.ext2, fsck.ext3, fsck.msdos).
- dosfsck -t -r -v /dev/fd0
-
Kontroluje a opravuje DOSový souborový systém. Přepínač
-t
zajistí kontrolu bad-block, přepínač-r
určuje, že před opravou bude dotázán uživatel (lze ji nahradit volbou-a
, tj. oprava se provede automaticky), přepínač-v
opět slouží k výpisu více informací.
Formátování disků
- fdisk /dev/hda
- rozděluje disk, mění formát diskových oddílu atp.
Příkazy:- p
- (print) vypíše informace o všech jednotkách (včetně počtu bloků: Blocks)
- m
- nápověda
- t
- formátuje diskové oddíly
- q
- (quit)
- cfdisk /dev/hda
- Celoobrazovkový program na rozdělování disku (doporučuji používat místo
fdisk
) - mke2fs -c -v /dev/fd0
- formátuje disketu (fd0) linux-fsystémem. Přepínač
-c
testuje sektory, příkaz-v
zobrazuje informace. Před použitím tohoto příkazu je nutné zařízení (/dev/fd0) odpojit pomocíumount
. - tune2fs -c 60
- Nastaví početní limit připojení oddílu, po kterém se spustí kontrola integrity.
- mkswap -c -v /dev/sda1
-
formátuje diskový oddíl pro swap oblast. Význam přepínačů je stejný jako u
mke2fs
. - mkdosfs -c -v /dev/fd0
- formátuje disketu dos-fsystémem
mkboot(disk) `uname -r`vytvoření botovatelné diskety