Slovo filesystem má dva významy.

První význam slova file system používáme takto: Uživatel OS vnímá data na disku rozdělená do adresářů a souborů, zatímco hardware má disk rozdělen na sektory. Filesystem je část jádra OS, které přijímá poždavky od knihoven na čtení nebo zápis do souboru a dává příkazy části jádra "disk driver" na čtení nebo zápis příslušného sektoru na disku a vrací data zpět.

Takto vidí uživatel filesystem

Create new ext4 File System

V adresáři /bin najdeme nejčastěji používané příkazy pro všechny uživatele systému (zde jsou vypsány jenom nejpoužívanější):

  • bash  — Bourne again shell

  • cat  — výpis souboru

  • chmod  — změna oprávnění u souboru nebo adresáře

  • chown  — změna vlastníka/skupiny u souboru nebo adresáře

  • date  — výpis času

  • dd  — kopírování po bytech z disku nebo souboru

  • df  — výpis zaplnění partition

  • dmesg  — výpis systémových hlášení

  • echo  — výpis textu na konzoli

  • grep  — prohledávání textového vzoru v souboru

  • gzip gunzip  — komprimace/dekomprimace souboru

  • hostname  — výpis názvu počítače

  • ifconfig  — výpis nebo nastavení síťových zařízení

  • ip  — výpis nebo nastavení síťových zařízení nebo rout

  • kill  — ukončení běžícího procesu

  • ln  — vytvoření linku

  • ls  — výpis adresáře

  • lsblk  — výpis blokových zařízení

  • mkdir  — vytvoření adresáře

  • more  — stránkovač

  • mount  — připojení filesystému

  • mv  — přejmenování souboru nebo adresáře

  • nano  — jednoduchý textový editor

  • netstat  — výpis síťových spojení, směrovacích tabulek, statistik rozhraní a dalších síťových věcí

  • passwd  — změna hesla

  • ps  — výpis běžících procesů

  • pwd  — jméno aktuálního adresáře

  • rm  — smazání souboru nebo adresáře

  • rmdir  — smazání prázdného adresáře

  • route  — výpis nebo nastavení směrovací tabulky

  • sort  — seřazení výstupu

  • su  — změna uživatele

  • tail  — výstup posledních řádků souboru

  • tar  — archivační utilita

  • touch  — změna časového razítka u souboru

  • umount  — odpojení disku

  • uname  — výpis systémových informací

V adresáři /boot najdeme jádro operačního systému, například vmlinuz-6.1.57-gentoo a k tomu mapu systému System.map-6.1.57 a konfiguraci jádra config-6.1.57-gentoo.

V adresáři /dev najdeme znaková i bloková zařízení.

V adresáři /home jsou domácí adresáře všech uživatelů kromě roota.

V adresářích /lib a /lib64 jsou základní systémové knihovny.

Adresář /lost+found slouží programu fsck k uložení nalezených souborů při kontrole konzistence filesytému (pro filesystémy ext2, ext3 a ext4).

Adreář /media je přípojným bodem pro mountování přídavných USB disků apod.

Adresář /mnt je přípojným bodem pro mountování pevných disků.

V adresáři /opt nalezneme nestandardní software, třeba Java.

/proc není skutečný adresář na disku, je to systém informací, které poskytuje jádro systému Linux. Tyto informace jsou uspořádány do adresářové struktury.

Adresář /root je domácí adresář administrátora systému root, není čitelný nikým jiným.

V adresáři /run najdeme provozní informace běžících procesů.

V adresáři /sbin se nacházejí programy určené pro administraci systému, např. fdisk, fsck, halt, init, mkfs, shutdown, swapon a swapoff.

Adresář /tmp slouží k uchování dočasných souborů. Po startu systému je obvykle obsah tohot adresáře smazán.

V adresáři /usr se nacházejí uživatelské programy, knihovny a spousta dalších věcí (dokumentace, překlady apod.)

V adresáří /var se nacházejí "proměnlivá data" nejrůznějšího obsahu, logovací soubory ve /var/log, databáze různých programů ve /var/db a spousta dalších věcí.


Druhý význam slova file system je uspořádání dat na disku. K pořádku na disku nám slouží tzv. metadata, která v jednoduchosti popisují, kde co je. Je to informační struktura. Na disku musí být vytvořena určitá struktura pořádku, do které se potom budou ukládat data. Tato struktura se nazývá také filesystem.

Příklad metadat pro ext2 filesystem (takto je to na disku)

CylinderGroup 01

Příklad složitých metadat ext4 filesystému (popis inodu)

ext4 struktura

Operace s filesystémem

Založení filesystému na disku

Příkaz mkfs (make filesystem) vytváří na disku filesystem v druhém významu tohoto slova, formátuje disk tak, že vytvoří na disku metadata. Nedělá se low level format, který je uživatelsky nemožný, protože ho dělá výrobce točivého disku. [1] Příkaz mkfs může provádět pouze root, protože příkaz mkfs "hovoří" přímo s řadičem disku v jádru.

Vytvoření ext4 filesystému na 1. partition 1. disku
# mkfs -t ext4 /dev/sda1

Připojení (mount) filesytému

Připojení filesystému do adresářového stromu se provádí příkazem mount. Adresář, kam se daný filesytém připojuje se nazývá přípojný bod (mount point).

Připojení ext4 filesystému z druhého disku a jeho 1. partition do adresáře /mnt/zaloha
# mount -t ext4 /dev/sdb1 /mnt/zaloha

Odpojení (umount) filesystému

Pokud není filesystém v adresářovém stromu již potřeba, je možné ho odpojit. Filesystém není možné odpojit, pokud jsou na něm některými procesy otevřené soubory. Nejprve je nutné tyto soubory uzavřít.

Odpojení (umount) filesystému z /mnt/zaloha
umount /mnt/zaloha

Připojování a odpojování filesystému může provádět jenom uživatel root, v omezené míře u přenosných disků nebo USB klíčenek to může provádět i obyčejný uživatel.

Odpojit kořenový filesystém (ten, co je připojen do adresáře /) v běžícím systému nelze.

Seznam všech připojených filesystémů se nachází v souboru /etc/mtab.

Výpis /etc/mtab
rtr4 ~ # cat /etc/mtab
/dev/root / ext4 rw,noatime 0 0
devtmpfs /dev devtmpfs rw,nosuid,noexec,relatime,size=10240k,nr_inodes=491442,mode=755 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run tmpfs rw,nosuid,nodev,size=787104k,nr_inodes=819200,mode=755 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
cgroup_root /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755 0 0
openrc /sys/fs/cgroup/openrc cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/lib/rc/sh/cgroup-release-agent.sh,name=openrc 0 0
none /sys/fs/cgroup/unified cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate 0 0
cpuset /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cpu /sys/fs/cgroup/cpu cgroup rw,nosuid,nodev,noexec,relatime,cpu 0 0
cpuacct /sys/fs/cgroup/cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct 0 0
freezer /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
net_cls /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0

Kontrola filesystému

Příkaz fsck (filesystem check). Kontrolu filesystému nelze provádět na připojeném filesystému, filesystém musí být předtím odpojen.

Kontrola filesystému na 1. pratition 1. disku
# fsck /dev/sda1

Při startu systému Linux se provádí automatická kontrola a připojení všech filesystémů, které se nacházejí v souboru /etc/fstab

Příklad /etc/fstab
rtr4 ~ # cat /etc/fstab
# /etc/fstab: static file system information.
#
# See the manpage fstab(5) for more information.
#
# NOTE: The root filesystem should have a pass number of either 0 or 1.
#       All other filesystems should have a pass number of 0 or greater than 1.
#
# NOTE: Even though we list ext4 as the type here, it will work with ext2/ext3
#       filesystems.  This just tells the kernel to use the ext4 driver.
#
# NOTE: You can use full paths to devices like /dev/sda3, but it is often
#       more reliable to use filesystem labels or UUIDs. See your filesystem
#       documentation for details on setting a label. To obtain the UUID, use
#       the blkid(8) command.

# <fs>			<mountpoint>	<type>		<opts>		<dump> <pass>

#LABEL=boot		/boot		ext4		defaults	1 2
#UUID=58e72203-57d1-4497-81ad-97655bd56494		/		xfs		defaults		0 1
#LABEL=swap		none		swap		sw		0 0
#/dev/cdrom		/mnt/cdrom	auto		noauto,ro	0 0
/dev/sda1		/		ext4		noatime		0 1         (1)
/dev/sda2		none		swap		sw		0 0         (2)
1 Kořenový filesystém
2 Toto není filesystém jako takový, ale inicializace swapu

Boot systému

Slovo boot označuje zavedení operačního systému do paměti a jeho spuštění. Je to celkem dlouhý a složitý proces, protože operační systém musí inicializovat veškerý hardware, připojit filesystémy a spustit všechny potřebné programy.

  • Zapnutí vypínače

  • BIOS (Basic Input Output System) v ROM paměti (dnes flash)

  • historická metoda

    • MBR

    • secondary bootstrap

    • boot manager (grub)

    • kernel

  • moderní metoda

    • UEFI subsytém (prohledávání disků s FAT filesystémem a adresářem EFI\boot a spustitelným )

    • secure boot

    • kernel zaveden

  • kernel inicializuje hardware

  • přimountování root filesystému

  • spuštění /sbin/init (PID 1) (nebo systemd), který pokračuje v bootování

  • /etc/inittab

Zdroje a odkazy


1. SSD disky žádný low level format nepotřebují.