Rozdelenie 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 "zasvetených" článkoch na internete som sa vždy dočítal len "podľa Vašej 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 samotsatnej 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 jendoznač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á anazý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.

 bez XXfce GnomeKDE Mix
/usr 226 MB 1,2 GB1,7 GB  1,3 GB5,1 GB
/var183 MB 398 MB334 MB  337 MB271 MB
 ostatné< 90 MB< 90 MB < 90 MB  270 MB140 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... Inštalácia s KDE je na architektúre amd64, ostatné boli merané na i386.

Č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 doporučujem 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é poštové správy (emaily), doručované poštovým serverom, ukladajú sa tu 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. /boot partícia 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 ext3, hoci nie je najvýkonnejší. Používal som aj ReiserFS, ale dráždila ma kontrola žurnálu pri štarte, tak som ho opustil. 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