Kategória: Linux všeobecne

Zmenené: 15. máj 2010

Rozdelenie domáceho disku

Keď som začínal s Linuxom mal som jeden problém s inštaláciou, a to rozdelenie disku. Netušil som čo je to adresárová štruktúra a nevedel som koľko miesta je pre jednotlivé partície treba. A v príručkách a rôznych „zasvätených” článkoch na internete som sa vždy dočítal len „podľa svojej potreby”. Aká je teda tá potreba?

Vlastne dodnes neviem, koľko to miesta vlastne potrebujem. Aj preto som sa rozhodol napísať tento článok, kde zhrniem moje skúsenosti s obsadením partícií v rôznych inštaláciách.

Počet partícií

Pri inštalácii Debianu ponúka sprievodca na výber niekoľko predvolených možností. Tu sa chcem zastaviť pri poznámke, že riešenie „všetko na jednej partícii“ je pre začiatočníkov. Považujem túto poznámku za nevhodnú, respektíve za prežitok nedesktopovej éry Linuxu. Samozrejme, mať celú inštaláciu servera na jednej partícii je nevhodné. Zaplnenie jednej partície ľahko zablokuje niektoré služby servera (ak nie server celý).

Ale mať domáci Debian na jednej partícii - prečo nie? Ja viem, z rovnakého dôvodu, nenažratý (alebo nepozorný) používateľ dokáže zapratať disk aj doma. Ale týmto spôsobom sa vyhnete problému, s ktorým som sa ja potýkal nie raz. Jedna partícia plná na prasknutie a druhá zaplnená na tri percentá. Myslím si, že ani najskúsenejší používateľ nedokáže vedieť dopredu, koľko miesta nakoniec zaberú používané programy.

Riešenie, ktoré sa pre bežného domáceho používateľa (User Domesticus) ponúka, je použitie samostatnej partície /home. To síce zaistí, že zaplnenie domovských priečinkov nezablokuje systém, ale nerieši problém s vhodným rozdelením disku. Odpoveď na otázku koľko pre ten systém vlastne treba sa pokúsim nájsť neskôr.

Riešenie so samostatnými partíciami pre /usr, /var, /home atď, je podľa mňa vhodné pre tých, ktorí vedia čo v systéme budú mať. Nároky takého webového servera sú v podstate jednoznačné (samozrejme nemám na mysli webové stránky, databázy a podobne). Takže toto riešenie je naozaj vhodné pre skúsenejších používateľov.

Hierarchický systém súborov

Hierarchia adresárov v Linuxe je relatívne pevná a nazýva sa “ hierarchický systém súborov“. Píšem relatívne, pretože už som sa stretol aj s programmi, ktoré je ignorujú, možno z nevedomosti. Nepôjdem do detailov, ale krátko zhrniem určenie jednotlivých adresárov, ktoré majú jeden spoločný začiatok - jeden koreň - označovaný /. V tom je rozdiel oproti Windows, kde má koreň každá disková partícia (C:, D:, …). Štandardný hierarchický systém súborov Linuxu vyzerá takto:

  • /bin – obsahuje základné príkazy a nástroje, potrebné pri zavádzaní systému a dostupné aj bežných používateľov,
  • /boot – obsahuje obrazy jadier, mapy systému, počiatočné RAM disky, zavádzač apod.
  • /dev – obsahuje súbory zariadení (špeciálne súbory),
  • /etc – obsahuje konfiguračné súbory systému i jednotlivých aplikácií,
  • /home – obsahuje domovské adresáre bežných používateľov,
  • /lib – obsahuje základné zdieľané knižnice a moduly jadra,
  • /media – prípojný bod pre média (disketa, CD, DVD, USB, …),
  • /mnt – ďalší (alebo skôr pôvodný) prípojný bod, určený pre pripojenie súborových systémov,
  • /opt – obsahuje programy určené pre väčší počet rôznych distribúcií a aj aplikácie pridané k systému (často binárne), ktoré nie sú súčasťou distribúcie,
  • /proc – virtuálany súborový systém jadra, obsahuje informácie o nastavení a stave systému,
  • /root – domovský adresár superužívateľa,
  • /sbin – systémové nástroje, používané pri zavádzaní či konfigurácii systému, na rozdiel od nástrojov v /bin, nie sú určené pre používanie obyčajnými používateľmi,
  • /sys – virtuálany súborový systém, obsahuje informácie o nastavení a stave systému,
  • /tmp – adresár pre dočasné súbory,
  • /usr – obsahuje nainštalované programy, knižnice a súvisiace dáta,
  • /var – obsahuje rôzne dáta celosystémového charakteru protokoly (logy), poštové správy, databázy, súbory tlačových úloh, súbory zámkov, stiahnuté balíčky programov atď.

Využitie miesta na disku

Aby ste získali predstavu koľko miesta taký linux zaberá, pripravil som prehľadnú tabuľku obsadenosti súborového systému (zabraných dát) po inštalácii Debianu. Údaje v tabuľke ukazujú Debian bez grafického rozhrania, čerstvú inštaláciu s Xfce, Gnome i KDE. V poslednom stĺpci je využitie s mixom rôznych programov:

súb. sys bez X Xfce Gnome KDE Mix
/usr 226 MB 1,2 GB 1,7 GB   5,1 GB
/var 183 MB 398 MB 334 MB   271 MB
ostatné < 90 MB < 90 MB < 90 MB   140 MB

Informácie o veľkosti inštalácie s KDE nemám teraz k dispozícii. Veľkosť adresára /var je trochu zavádzajúca, pretože do toho vstupuje veľkosť chache s balíčkami, ktorú som niekde mal vymazanú, inde nie…

Čo z toho vyplýva? Jednoducho, že pre systém bohato stačí jedna 10 GB partícia. Ak však chcete mať systém rozdelený na viacerých partíciách, urobte si aspoň 10 GB len pre /usr, prípadne aj viac. 1 GB pre koreňový systém postačí, ale v tom prípade vrelo odporúčam vytvoriť aj samostatnú partíciu /var s veľkosťou okolo 2 GB. Ono to je s tou partíciou pre /var trochu zložitejšie.

V tomto adresári sú totiž predvolene ukladané aj poštové správy (emaily), doručované poštovým serverom, ukladajú sa tu aj databázy (MySQL určite) a predvolene aj webové stránky. V neposlednom rade všetky systémové aj nesystémové záznamy (logy), či vyrovnávacia pamäť squid a už spomínaná vyrovnávacia pamäť balíčkovacieho systému.

Asi Vás napadá otázka ako to mám ja? Takto:

Súborový systém       Veľk  Použ Dost  Pou% Namontovaný na
/dev/hda1             183M   20M  154M  12% /boot
/dev/hda5             2,0G  265M  1,7G  14% /
/dev/hda6             4,0G  475M  3,4G  13% /var
/dev/hda7              11G  4,2G  6,3G  40% /usr
/dev/hda8             5,5G  1,2G  4,1G  23% /usr/src
/dev/hda11            4,7G  3,6G  1,1G  78% /mnt/winfat
/dev/hda12             29G  6,0G   22G  22% /home
/dev/hda13            2,0G  136M  1,8G   7% /tmp

Ako sa mi vidíte, mám samostatné partície pre koreň, /boot, /var, /usr, /tmp aj /home. Ich veľkosť je číslo v prvom stĺpci, skutočná obsadenosť je v stĺpci druhom. Okrem toho mám ešte samostatnú partíciu pre /usr/src a jednu FAT32 partíciu, ako pozostatok Windows. Nie toto nie je návod, ako to má vyzerať. Toto rozdelenie vzniklo kedysi dávno a dnes by som to urobil inak. Samostatná partícia /boot je zbytočná, /tmp tiež. Aj by som ich zrušil, ale dalo by trochu práce potom znova rozchodiť systém, tak to nechávam tak ako to je.

Ako to zmeniť

Takže vytvoriť partície pri inštalácii by ste už možno vedeli, ale čo ak máte systém nainštalovaný a zisťujete, že sa niekde stala chyba a miesto niekde chýba a inde zvyšuje? Existuje na to riešenie, volá sa parted (a nie je jediné). Má však jednu chybu, nie je dobré meniť partície (najmä systémovú) za behu systému. Preto je výborným riešením LiveCD, napríklad SystemRescue, GParted alebo PartedMagic. Všetky tri ponúkajú grafické rozhranie pre parted, kde si môžete veľkosti partícií meniť podľa potreby.

Aký súborový systém

Tu je jasná len jedna voľba, určite nie ext2, pretože nemá žurnálovanie, čiže nie je odolný voči výpadkom napätia či náhlym reštartom. Na zváženie ostáva voľba ext3, ale skúsiť môžete aj výkonnejšie súborové systémy ako ReiserFS, JFS, či XFS. Ja používam ext4 a ReiserFS. Do budúcnosti zvažujem používanie iného systému, ale ešte v tom nemám jasno. Nejaké porovnania výkonov jednotlivých súborových systémov môžete nájsť v staršom, ale pekne graficky spracovanom článku, alebo v inom, menej pekne spracovanom článku.

Takže ešte používam aj XFS.

swap

Na základe otázky môjho študenta som sa rozhodol doplniť ešte túto časť o swap. Čo to je? No, swap je miesto na disku, ktoré slúži ako odkladacie miesto v prípade že veľkosť RAM počítača bežiacim programom nestačí. Taký swap je vlastne špeciálna partícia, hoci to môže byť aj súbor na disku. Použitie partície však ponúka základnú výhodu v rýchlejšej práci. Použitie súboru zase prináša väčšiu voľnosť v zmene jeho veľkosti…

Veľkosť tohoto odkladacieho miesta na disku je predmetom mnohých debát. Existuje skupina, ktorá tvrdí, že by to mal byť dvojnásobok veľkosti RAM. Iná skupina zase tvrdí, že pri dnešných veľkostiach RAM je swap zbytočný. Každopádne, ak chcete využívať možnosť uspávania počítača na disk, mali by ste vytvoriť swap partíciu s veľkosťou aspoň rovnakou ako je veľkosť RAM, pretože práve na túto partíciu sa jej obsah ukladá. Hoci ani to nie je podmienka, pretože málokedy máte plnú RAM…

Hoci mnohé inštalátory nedovolia Linux bez pripravenej partície swap ani nainštalovať, dokáže systém Linux bežať aj bez nej… A dokonca existujú techniky, ktoré umožňujú použiť ako swap časť pamäte RAM (komprimácia je to správne heslo)..