4. Diskové oddíly
Podkapitoly: 4.1 Btrfs; 4.2 LVM; 4.3 Softwarový RAID;
1. Úvod
Tato kapitola se zabývá dělením pevného disku na oddíly, jejich formátováním (zejména souborové systémy ext4, btrfs, FAT32 a NTFS), údržbou a připojováním (ručním i automatickým). Zabývá se také prací s ramdisky a odkládacím prostorem.
Tato verze kapitoly pokrývá jen částečně: dělení pevného disku na oddíly.
Tato verze kapitoly nepokrývá: připojovaní souborových systémů obyčejnými uživateli; šifrování a nastavování kvót; další typy systému souborů (např. ZFS); síťové souborové systémy; vypalování DVD; práci s ISO obrazy CD a DVD; práci se systémem souborů SquashFS.
2. Definice
2/1 Obecné definice
- Virtuální souborový systém (VFS) je způsob, jakým Linux nahlíží na strukturu adresářů. Při startu počítače obsahuje jen prázdný kořenový adresář „/“, na který jádro „připojí“ (viz níže) kořenový adresář kořenového systému souborů.
- Systém souborů je vymezená část adresářové struktury zpřístupněná jednotným způsobem (např. na jednom oddílu pevného disku). Každý systém souborů má svůj kořenový adresář, který může být „připojen“ (viz níže) na některý z existujících adresářů VFS. Systémy souborů mohou být fyzické (uložené fyzicky na nějakém paměťovém médiu), virtuální (generované za běhu jádrem operačního systému), vzdálené (připojované přes síť) nebo vnořené (uložené v souboru – to bývá např. SquashFS). Konkrétní způsob fyzické organizace systému souborů na úložném médiu nazývá typ systému souborů, to je např. ext4 nebo NTFS.
- Připojení systému souborů znamená, že jádro vezme existující adresář ve VFS a „překryje“ ho kořenovým adresářem připojovaného systému souborů (včetně jeho vlastnictví, příznaků a přístupových práv). Podstrom původního adresáře tímto z VFS odpadne a místo něj se stane součástí VFS celá adresářová struktura nově připojeného systému souborů. Opačným úkonem je odpojení, při němž z VFS odpadne adresářová struktura připojeného systému souborů a dojde k opětovnému zapojení podstromu původního adresáře do VFS. Zvláštním (ale komplikovaným a méně častým) případem je připojení jiného než kořenového adresáře systému souborů.
- Přípojný bod (anglicky „mount point“) je adresář VFS, kam je připojený systém souborů.
- Odkládací oddíl je úložný prostor sloužící k odkládání paměťových stránek, popř. k hibernaci. V linuxu se s ním zachází podobně jako se souborovým systémem, proto je předmětem této kapitoly.
2/2 Identifikátory souborových systémů
K identifikaci konkrétního systému souborů se používá několik druhů identifikátorů:
- UUID je identifikátor přidělovaný souborovému systému při formátování (tzn. dalším formátováním se změní, ale naopak překopírování po bajtech ho neohrozí); ne všechny souborové systémy mají nějakou formu UUID, ale ext4, btrfs, FAT32 a NTFS ano.
- PARTUUID je identifikátor oddílu na disku, je-li dělen metodou GPT (na discích dělených starší metodou MBR se emuluje, u logických oddílů LVM není dostupný vůbec).
- Jmenovka je textový identifikátor souborového systému přidělovaný uživatelem, zpravidla při formátování.
- Poslední možností je cesta k zařízení v /dev, např. „/dev/sda1“. Tato možnost je preferována u logických oddílů LVM; u oddílů na discích se nedoporučuje, protože cesta k zařízení se může snadno změnit.
2/3 Co a kam připojit
V následujících zaklínadlech platí:
co-připojit může být:
- UUID souborového systému ve tvaru „UUID=61bbd562-0694-4561-a8e2-4ccfd004a660“.
- PARTUUID ve tvaru „PARTUUID=0337a362-e7b3-4c50-a81d-9a5d45755e75“.
- Jmenovka ve tvaru LABEL="Jmenovka".
- Cesta diskového oddílu či zařízení (např. „/dev/sda1“).
- U některých typů souborových systémů je to jiný řetězec (např. „tmpfs“, „none“ apod.)
- Existuje ještě tvar pro síťový souborový systém, viz manuálovou stránku „man 5 fstab“.
kam-připojit je zpravidla cesta nastávajícího přípojného bodu (v /etc/fstab musí být absolutní, v příkazu „mount“ stačí i relativní), výjimka platí pro odkládací prostor, kde se uvádí „none“.
typ-soub-sys je identifikátor typu souborového systému (např. ext4, btrfs, vfat, ntfs, tmpfs apod.) Lze použít i „auto“; systém se pak typ pokusí detekovat automaticky.
volby-připojení je seznam čárkami oddělených voleb nebo klíčové slovo „defaults“, které má význam „rw,suid,dev,exec,auto,nouser,async“.
3. Zaklínadla
3/1 Položky v /etc/fstab
3/2 Připojení a odpojení systému souborů
3/3 Již připojené systémy souborů (vypsat/zjistit údaje)
3/4 Oddíly a zařízení (vypsat/zjistit údaje)
3/5 Formátování
3/6 Odkládací oddíly a soubory
3/7 Jmenovka (nastavit)
3/8 Degrafmentace, kontrola, TRIM apod.
3/9 Ostatní
4. Zaklínadla: Dělení disku
4/1 Dělení disku interaktivně
4/2 Skript pro sfdisk: tabulka GPT
4/3 Skript pro sfdisk: tabulka MBR
Poznámka: pro vytvoření oddílů v rozšířeném oddílu musíte nejprve vytvořit rozšířený oddíl do konce disku; další oddíly pak budou vytvářeny uvnitř tohoto rozšířeného oddílu.
4/4 Skript pro sfdisk: Ostatní
5. Nejdůležitější volby připojení
5/1 Pro všechny typy systému souborů
◉ rw ○ ro | Připojit pro čtení i zápis/jen pro čtení. |
◉ dev ○ nodev | Povolit/zakázat speciální zařízení na připojeném systému souborů. (Doporučuji vždy „nodev“.) |
◉ exec ○ noexec | Povolit/zakázat spouštění souborů z připojeného systému souborů. |
◉ suid ○ nosuid | Povolit/zakázat respektování příznaků „u+s“ a „g+s“. V případě „nosuid“ tyto příznaky půjde měnit a číst, ale nebudou mít žádný vliv. |
☐ sync | Zakáže používání systémové mezipaměti. Všechny operace budou prováděny přímo se zařízením. |
○ lazytime ◉ nolazytime | lazytime: Časové známky u souborů se nebudou zapisovat na disk, dokud to nebude nutné; budou se aktualizovat pouze v paměti, což umožní výrazně snížit počet zápisů na disk. Příkaz „sync“ a některé další situace způsobí zapsání všech provedených změn časových známek na disk. |
◉ relatime ○ strictatime ○ noatime | Časovou známku přístupu při čtení (access time) aktualizovat: jen pokud soubor či adresář od poslední změny nebyl čten/pokaždé/nikdy. |
☐ nodiratime | U adresářů časovou známku přístupu pro čtení (access time) neaktualizovat nikdy. |
☐ nofail | Jen se pokusit o připojení; případné selhání tiše ignorovat. |
☐ noauto | Nepřipojovat automaticky při startu systému (resp. příkazem „mount -a“). |
☐ X-mount.mkdir | Pokud přípojný bod neexistuje, vytvoří ho s přístupovými právy „u=rwx,go=rx“. (Poznámka: připojený adresář tato práva zpravidla přepíše.) Podle manuálové stránky je tato volba dovolena pouze superuživateli. |
5/2 Zobrazení ve správcích souborů (pro všechny typy)
Poznámka: funkčnost těchto voleb ve správcích souborů může být různá; mám vyzkoušeno, že Thunar je respektuje; v ostatních správcích raději nejprve vyzkoušejte, zda tam budou fungovat, než se na ně spolehnete.
○ x-gvfs-show ○ x-gvfs-hide | Systém souborů se má/nemá zobrazovat ve správcích souborů jako jednotka. Pozor: volby „nofail“ a „noauto“ uvedené před touto volbou nemusejí správně fungovat, proto je uvádějte až za ní. |
☐ x-gvfs-name=zakódované%20jméno | Nastaví název, pod kterým se bude zobrazovat ve správcích souborů. Může obsahovat i ne-ASCII znaky; naopak ASCII znaky kromě obyčejných písmen a číslic musejí být zakódovany do hexadecimální formy sestávající z procenta a dvou hexadecimálních číslic; nejužitečnější jsou „%20“ (mezera) a „%2C“ (čárka). |
☐ x-gvfs-icon=id-ikony | Nastaví ikonu, s jakou se bude zobrazovat ve správcích souborů; zkuste např. „folder-download“. |
5/3 Pro ext4, ext3 a ext2
○ errors=remount-ro ○ errors=panic ○ errors=continue | V případě kritické chyby: připojí systém jen pro čtení/zhroutí se/pokračuje. (Nezkoušel/a jsem.) |
☐ init_itable=0 | Nastaví maximální prioritu inicializaci souborového systému. Výhodné při inicializaci souborových systémů na otočných pevných discích, kdy by normální pomalá inicializace delší dobu snižovala výkon disku. (Zkoušeno jen na ext4.) |
◉ user_xattr ○ nouser_xattr | Povolí/zakáže uživatelské rozšířené atributy. (ext3/ext4) V případě nouser_xattr budou uživatelské rozšířené atributy stávajících souborů a adresářů zachovány, ale nepůjdou číst ani zapisovat. |
◉ acl ○ noacl | Povolí/zakáže rozšířená přístupová práva. (Zatím jsem nezkoušel/a.) |
○ discard ○ nodiscard | Zapne/vypne automatické označování prázdného prostoru na SSD discích (operace TRIM). |
5/4 Pro „vfat“ (FAT32, FAT16, FAT12)
☐ uid=UID | Nastaví vlastníka všech položek. |
☐ gid=GID | Nastaví skupinu všech položek. |
○ umask=mód ○ dmask=mód,fmask=mód | Nastaví přístupová práva všech adresářových položek/všech adresářů a souborů. |
☐ quiet | Pokusy o změnu vlastníka, skupiny či přístupových práv nevyvolají chybu. |
○ fat=12 ○ fat=16 ○ fat=32 | Vynutí konkrétní verzi FAT (obvykle není potřeba, autodetekce pozná typ správně). |
5/5 Pro „ntfs“ (NTFS)
☐ uid=UID | Nastaví vlastníka všech položek. |
☐ gid=GID | Nastaví skupinu všech položek. |
○ umask=mód | Nastaví přístupová práva všech adresářových položek. |
5/6 Pro „tmpfs“ (ramdisk)
☐ size=velikost | Nastaví kapacitu „ramdisku“; typicky se používá s příponami „M“ pro mebibajty a „G“ pro gibibajty (např. „size=4G“). |
☐ uid=UID | Nastaví počátečního vlastníka kořenového adresáře. |
☐ gid=GID | Nastaví počáteční skupinu kořenového adresáře. |
○ umask=mód | Nastaví počítační přístupová práva a příznaky kořenového adresáře. |
6. Instalace na Ubuntu
Všechny použité nástroje jsou základními součástmi Ubuntu, kromě příkazu zerofree a nástroje GNOME Disky, které v případě potřeby musíte doinstalovat:
7. Tipy a zkušenosti
- Pomocí příkazu „mount --bind“ můžete jeden ramdisk připojit na několik různých míst VFS!
- Zadáte-li výměnnou jednotku (např. USB flash disk) v /etc/fstab a tato jednotka nebude dostupná při startu systému, zavádění selže a nabídne vám přechod do záchranného režimu. Proti tomu pomohou volby „nofail“ (v případě jakékoliv chyby se připojení systému souborů tiše přeskočí) a „noauto“ (systém se vůbec nepokusí o připojení, ale oddíl či jednotku půjde připojit zkrácenou syntaxí příkazu „mount“).
- Určitý konkrétní adresář může být použit jako přípojný bod vícenásobně, ale nedoporučuji to (nedává to příliš smysl). Také je možné připojením jiného souborového systému na adresář nadřazený přípojnému bodu překrýt přípojný bod i s jeho obsahem, ale rovněž to nedoporučuji.
8. Typy pro vytvoření oddílu pomocí sfdisku
- Oddíl linuxového souborového systému (např. ext4 nebo btrfs): „0FC63DAF-8483-4772-8E79-3D69D8477DE4“ (GPT), „83“ pro MBR.
- Odkládací oddíl: „0657FD6D-A4AB-43C4-84E5-0933C84B4F4F“ (GPT), „82“ (MBR).
- Oddíl FAT32: „EBD0A0A2-B9E5-4433-87C0-68B6B72699C7“ (GPT), „0C“ (MBR).
- Oddíl NTFS: „EBD0A0A2-B9E5-4433-87C0-68B6B72699C7“ (GPT), „07“ (MBR).
- Rozšířený oddíl MBR: „5“ (nezkoušeno).
- Oddíl EFI: „C12A7328-F81F-11D2-BA4B-00A0C93EC93B“ (GPT), „EF“ (MBR).
9. Další zdroje informací
Pokud hledáte nástroj pro dělení disku ze skriptu, zkuste sfdisk (anglicky).
- Wikipedie: Mount (computing) (anglicky)
10. Pomocné funkce a skripty
11. Zákulisí kapitoly
V této verzi kapitoly chybí:
- použití programu „sfdisk“
- ovládání programu „fdisk“
- šifrování oddílů
- připojování obyčejným uživatelem
Tato kapitola záměrně nepokrývá:
- nic