Předtím, než začnete používat jakékoli úložné zařízení připojené k vašemu počítači s Linuxem, je nutné na něm vytvořit souborový systém. Tento článek vás provede procesem tvorby různých typů souborových systémů pomocí příkazu mkfs a dalších souvisejících nástrojů. Ukážeme si, jak na to.
mkfs: Nástroj pro tvorbu souborových systémů
Příkaz mkfs
slouží k vytváření souborových systémů. V jiných operačních systémech se tento proces označuje jako formátování. Ať už se to nazývá jakkoli, jde o proces přípravy diskového oddílu k ukládání dat. Oddíl potřebuje nejen místo pro samotné soubory, ale také mechanismus pro správu jejich názvů, umístění a metadat, jako jsou časová razítka vytvoření a úprav, velikost souboru atd. Jakmile mkfs
vytvoří nezbytnou strukturu pro manipulaci a ukládání těchto metadat, můžete začít do oddílu přidávat soubory.
Syntaxe příkazu je poměrně jednoduchá. Stačí mkfs
sdělit, na kterém diskovém oddílu má vytvořit souborový systém a jaký typ souborového systému chcete použít. Zdánlivě jednoduché, ale pod kapotou to vypadá trochu jinak. Ve většině linuxových distribucí je příkaz mkfs
již delší dobu obal pro příkaz mke2fs
. To znamená, že mkfs
ve skutečnosti volá mke2fs
a předává mu vámi zadané parametry. mke2fs
tedy odvádí veškerou práci, ale slávu si za to nese mkfs
.
Syntaxe příkazu mkfs
byla aktualizována a starý formát je považován za zastaralý. Obě varianty však stále fungují, my se ale v tomto textu zaměříme na moderní formu.
Výběr vhodného souborového systému
Moderní způsob použití příkazu mkfs
spočívá v zadání „mkfs.
“ a následného názvu souborového systému, který chcete vytvořit.
Chcete-li zjistit, jaké souborové systémy je možné pomocí mkfs
vytvořit, zadejte „mkfs.
“ a dvakrát stiskněte klávesu Tab. (Mezi mkfs
a tečkou není mezera).
V terminálu se následně zobrazí seznam dostupných souborových systémů. Zobrazený snímek obrazovky pochází z Ubuntu 18.04 LTS. Jiné distribuce mohou nabízet více nebo méně možností. Nyní si je stručně popíšeme, ještě před tím se ale krátce zmíníme o žurnálování.
Žurnálování je klíčový koncept v souborových systémech. Systém zaznamenává veškeré neprovedené zápisy do speciálního žurnálu. Při každém zápisu dat na disk se aktualizuje jak samotný soubor, tak i žurnál. To umožňuje souborovému systému obnovit poškozené nebo neúplně zapsané soubory v případě katastrofické události, jako je výpadek proudu. Starší souborové systémy žurnálování nepodporují. Ty zapisují na disk méně často, protože nemusí aktualizovat žurnál. Díky tomu mohou fungovat rychleji, jsou ale náchylnější k poškození dat v případě přerušení zápisu.
Ext2: Prvním souborovým systémem pro Linux byl MINIX. Později byl nahrazen Ext, prvním souborovým systémem speciálně navrženým pro Linux. Ext2 byl jeho nástupcem. Ext2 nepodporuje žurnálování.
Ext3: Jednalo se o nástupce Ext2 a lze ho chápat jako Ext2 obohacený o žurnálování, které chrání data před poškozením v důsledku selhání systému nebo náhlého výpadku napájení.
Ext4: Ext4 je aktuálně standardním souborovým systémem pro linuxové distribuce. Je prověřený, spolehlivý a důvěryhodný. Má vlastnosti, které snižují fragmentaci souborů a umožňuje práci s většími disky, oddíly a soubory než Ext3.
BFS: Boot File System se používá výhradně pro manipulaci se soubory v zaváděcím oddílu. Běžně se tento souborový systém nevytváří ručně, proces instalace Linuxu se o to postará.
FAT: File Allocation Table byl navržen pro diskety konsorciem velkých hráčů počítačového průmyslu v roce 1977. Jediný důvod pro použití tohoto souborového systému bez žurnálu je kompatibilita s operačními systémy, které nejsou Linux.
NTFS: New Technology File System je žurnálovací souborový systém společnosti Microsoft, představený spolu s Windows NT. Byl nástupcem FAT. Opět platí, že jediný důvod pro použití tohoto souborového systému je kompatibilita s jinými operačními systémy než Linux.
MINIX: Systém MINIX byl původně vytvořen Andrewem S. Tanenbaumem jako výukový nástroj, je to “mini-Unix” operační systém. Současně je zaměřen na poskytování samoopravujícího a chybám odolného operačního systému. Systém souborů MINIX byl navržen jako zjednodušená verze systému souborů Unix. Možná jej oceníte při vývoji aplikací pro platformu MINIX na linuxovém počítači, nebo v případě potřeby kompatibility s počítačem s MINIXem. Jinak pro jeho použití v Linuxu není moc důvodů, ale máte ho k dispozici.
VFAT: Virtual File Allocation Table byl představen s Windows 95 a odstranil omezení délky názvů souborů na 8 znaků. Nově bylo možné používat názvy souborů o délce až 255 znaků. Opět, hlavním důvodem pro použití tohoto souborového systému je kompatibilita s jinými operačními systémy než Linux.
CRAMFS: Compressed ROM File System je souborový systém určený pro vestavěné systémy a speciální použití pouze pro čtení. Běžně se používá při spouštění Linuxu, kdy se nejdříve načte malý dočasný systém souborů, který umožňuje spuštění inicializačních procesů a přípravu pro připojení „skutečného“ spouštěcího systému.
MSDOS: Souborový systém Microsoft Disk Operating System, který byl poprvé vydán v roce 1981. Je to základní souborový systém, jaký si jen lze představit. Jeho první verze dokonce neměly ani adresáře. Jedná se o významný milník v historii výpočetní techniky, ale kromě kompatibility se staršími systémy, není dnes mnoho důvodů ho používat.
Bezpečný způsob experimentování se souborovými systémy
Vytváření souborového systému na diskovém oddílu je destruktivní operací, která zničí veškerá data na něm uložená. Pokud máte k dispozici náhradní pevný disk nebo dokonce celý počítač, je to ideální způsob, jak experimentovat s tvorbou a používáním různých souborových systémů. Ne každý má ale k dispozici náhradní hardware.
Naštěstí je možné vytvořit obrazový soubor a v něm vytvářet souborové systémy. Jakmile takový obrazový soubor připojíme, můžeme ho používat, jako by se jednalo o klasický diskový oddíl. Díky tomu můžeme bezpečně experimentovat se souborovými systémy, aniž bychom riskovali poškození dat na skutečném disku. K vytvoření obrazového souboru použijeme příkaz dd
.
Obrazový soubor se vytváří tak, že se do něj uloží zdrojová data. Příkazu dd
musíme sdělit, odkud má zdrojová data čerpat. K tomu použijeme volbu if
(input file) a jako zdroj dat použijeme /dev/zero, což je proud nulových bajtů.
Volba of
(output file) umožňuje zadat název souboru s obrazem. V našem případě ho pojmenujeme „wdzwdz.img
„.
Velikost obrazového souboru je určena velikostí a počtem bloků, které do něj přidáme. Pomocí volby bs
(block size) nastavíme velikost bloku na 1 MB a volbou count
zadáme počet bloků, tedy 250. Výsledkem bude obrazový soubor o velikosti 250 MB. Pokud si chcete vytvořit větší soubor, upravte počet bloků dle vaší potřeby a volné kapacity na disku.
dd if=/dev/zero of=~/wdzwdz.img bs=1M count=250
Po spuštění příkazu se soubor vytvoří a dd
ohlásí, že bylo vytvořeno 250 bloků, jak jsme požadovali.
Náš nově vytvořený obrazový soubor můžeme ověřit pomocí příkazu ls
:
ls -hl
Jak je vidět, soubor má 250 MB, jak bylo požadováno.
Vytvoření souborového systému
Nyní si vybereme souborový systém, který budeme používat. Vrátíme se v čase a použijeme Ext2, což je nejstarší verze Ext, kterou aktuální implementace mkfs
dokáže vytvořit. Jedná se o nežurnálovací souborový systém, proto do něj neukládejte žádná důležitá data bez zálohy na jiném místě. Pro vytvoření souborového systému použijeme variantu mkfs.ext2
příkazu mkfs
a jako cíl nastavíme náš obrazový soubor.
mkfs.ext2 ~/wdzwdz.img
Po spuštění se souborový systém vytvoří a zobrazí se informace o něm.
Jak je vidět z označeného textu, při tvorbě se zapojil i příkaz mke2fs
.
Nyní tedy máme kontejner pro souborový systém (obrazový soubor), který v tomto scénáři představuje pevný disk. Uvnitř tohoto kontejneru jsme vytvořili souborový systém. Nyní ho musíme připojit, abychom ho mohli používat.
Protože se jedná o dočasné nastavení, vytvoříme přípojný bod v /mnt
s názvem „geek
„. Po skončení experimentů ho odstraníme.
sudo mkdir /mnt/geek
Nyní můžeme připojit náš obrazový soubor.
sudo mount ~/wdzwdz.img /mnt/geek
Pro přístup k připojenému souborovému systému musíme změnit vlastnictví přípojného bodu.
sudo chown dave:users /mnt/geek/
Nyní bychom měli být schopni používat náš nový souborový systém. Přesuneme se do něj a zkopírujeme do něj několik souborů.
cd /mnt/geek
cp ~/Documents/Code/*.? .
Příkaz zkopíruje všechny soubory s jednopísmennou příponou z adresáře ~/Documents/Code
do našeho nového souborového systému. Zkontrolujeme, zda se soubory zkopírovaly.
ls
Soubory se zkopírovaly, což znamená, že náš souborový systém byl úspěšně vytvořen, připojen a používán. Nebo si to alespoň myslíme. Pojďme to ověřit. Z našeho domovského adresáře odpojíme souborový systém. Důležité je si pamatovat, že v příkazu umount je jen jedno „n“.
sudo umount /mnt/geek
Pokud se nyní vrátíme do /mnt/geek
a zkontrolujeme soubory, neměli bychom žádné najít, protože soubory jsou uloženy v našem obrazovém souboru, který je aktuálně odpojený.
cd /mnt/geek
ls
Další zkoumání
Nyní, když máme proces zvládnutý, vyzkoušení jiného souborového systému by nemělo být složité. Tentokrát použijeme souborový systém MINIX. V našem domovském adresáři můžeme vytvořit nový souborový systém uvnitř existujícího obrazového souboru.
Pozor! Pokud máte v aktuálním souborovém systému uvnitř obrazového souboru nějaká důležitá data, nejdříve si je zkopírujte po připojení obrazového souboru, než vytvoříte nový souborový systém.
mkfs.minix ~/wdzwdz.image
Bez jakéhokoli potvrzení se nový souborový systém vytvoří přes starý. Náš obrazový soubor můžeme připojit stejně jako předtím:
sudo mount ~/wdzwdz.img /mnt/geek
Přesuneme se do nového souborového systému v /mnt/geek
a zkusíme v něm vytvořit soubor.
touch geek.txt
ls -ahl geek.txt
Vidíme, že nový souborový systém byl vytvořen, připojen a je funkční. Tak jednoduché a rychlé to je.
Odstranění přípojného bodu
Po dokončení experimentů můžeme odstranit přípojný bod „geek
„. K tomu použijeme příkaz rmdir:
cd /mnt
sudo rmdir geek
Žonglování s ohněm
S Linuxem se, stejně jako s většinou věcí, nejlépe učí praxí. Některé příkazy jsou ale potencionálně destruktivní. Jak si je tedy bezpečně vyzkoušet a přitom neohrozit svůj systém a data?
Nyní znáte jednoduchou metodu, jak si bezpečně vyzkoušet vytváření souborových systémů pomocí mkfs
, aniž byste museli riskovat poškození vašeho stávajícího systému.