Ste spokojní s rozdelením vášho disku? Nepotrebujete nejakú partíciu zväčšiť, alebo naopak zmenšiť? Skopírovať dáta na nový či väčší disk? Uvažujete o kúpe programu na tento účel? Možno sa ešte predtým rozhodnete vyskúšať tie, ktoré sú opísané v tomto článku.
Najprv však jedno upozornenie: autor článku nezodpovedá za akúkoľvek škodu spôsobenú používaním programov, resp. postupov v ňom zverejnených. Využívate ich na vlastnú zodpovednosť.
Výber programu
Aj napriek dôkladne premyslenému rozdeleniu disku počas inštalácie OS sa môžu zmeniť naše požiadavky naň a náhle môžeme stáť pred problémom: preinštalovať, alebo sa oddiely dajú upraviť bez straty dát? Rád by som písal o programe, ktorý bol 101% náhradou za Partition Magic. Žiaľ, hoci GNU Parted je najhorúcejší kandidát (je síce postavený na úplne iných základoch a v niektorých veciach je lepší), on a jeho klony nie sú ešte úplne bezproblémové. Ale nie len ich vinou ... Partition logic vyzerá tiež pomerne nádejne. Ostatné, ktoré spomenieme, sú typické "linuxové"- jednoúčelové nástroje, doplňujúce to, s čím by tie spomenuté mohli mať problémy.
Partition logic
Je to relatívne nový program, vychádzajúci z operačného systému zvaného Visopsys (http://visopsys.org). Program sa dá stiahnuť ako iso obraz, ktorý treba vypáliť/skopírovať na CD/disketu a nabootovať počítač z neho. Jednoduchý program. Nedokáže však zatiaľ meniť veľkosť partícií. Vhodný môže byť pri kopírovaní dát na iný harddisk. Dokáže vytvárať, rušiť a formátovať oddiely. Inak ho však pravdepodobne využijete iba na jednoduchšiu manipuláciu s oddielmi. Nevie toho zatiaľ dosť: napr. nepracuje s SCSI diskami. Práca s ním je však jednoduchá a ak nemáte sériovú myšku (nie je podporovaná) tak iba klikáte :-) Partition logic má ambície stať sa free alternatívou Partion Magicu. Už aby to bolo :-) Potenciál na to má.
GNU Parted
Tento program je naopak stálou súčasťou linuxových distribúcií. Program je založený na knižnici libparted. Vychádza z neho veľa grafických klonov: qtparted
, gparted
atď. Ale čiastočne aj program, známy každému, kto kedy inštaloval Mandrake/Mandrivu- diskdrake
:-)
Čo dokáže GNU Parted
Vie naozaj veľa. Meniť veľkosť, vytvárať, rušiť, kopírovať či presúvať partície. Dokonca by mal byť možný aj návrat- oprava zrušenej partície. To som však radšej neskúšal :-) Na domovskej stránke nájdeme tabuľku programom podporovaných činností a filesystémov. A napokon treba spomenúť plnú podporu pre HW Raid a neúplnú pre LVM a softwérový RAID.
Problémy
Nič však nie je dokonalé a tak existujú (minimálne v starších verziách) aj problémy :-( Týkajú sa najmä (ako naschvál) práve dosť rozšírených FS- ext2/ext3. Ide o pomerne rozšírenú hlášku:
(parted) No Implementation: This ext2 filesystem has a rather strange layout! Please use dumpe2fs ...
Spôsobuje ju (väčšinou) zapnutá voľba sparse_superblock
pri vytváraní FS. Táto je však bohužiaľ väčšinou pri ich vytváraní zapnutá defaultne. Dá sa síce vypnúť aj v už vytvorenom FS (napríklad) príkazom:
tune2fs -s 0 /dev/hdaX
(zapneme ju rovnako, akurát 0 nahradíme 1). Ak však oddiel nie je prázdny a potom spustíme (resp. musíme spustiť) príkaz
e2fsck -y /dev/hdaX
kontrola disku skončí nekorektne (ak vôbec). Parted
s takýmto oddielom odmietne pracovať. Na prázdnom oddieli však kontrola pravdepodobne prebehne v poriadku. Ideálne by teda bolo vytvoriť na oddieli FS štýlom: mke2fs -O none ...
čím sa však bude reálne pred prvou inštaláciou OS zaoberať pravdepodobne málokto :-) Ako náhradu Parted v týchto prípadoch možno vyskúšať použitie programov typu: ext2resize
, alebo resize2fs
. Jedno z ďalších riešení, ktoré možno použiť je: najprv vytvoriť prázdny, dočasný oddiel, na ňom vytvoriť FS ext2/3 (bez sparse_superblock
) a skopírovať naň dáta niektorým zo štandartných nástrojov, resp. príkazov OS. Samozrejme, spôsobov, ako tento bug obísť je viac. Ak to bude pre vás aktuálne, nájdete ich v rôznych konferenciách a fórach.
V závislosti od oddielov, ktoré chceme meniť (ako uvidíme ďalej), je potrebné uvažovať o alternatívnom spustení GNU Parted: z diskety, alebo najvýhodnejšie (uvidíme prečo) z live- distribúcie. Tieto distribúcie sa označujú aj ako "rescue", záchranné. Osobne mám dobré 2 ročné skúsenosti s LNX-BBC. Obsahuje dostatok nástrojov na záchranu aj prerozdelenie diskov. Použiť môžete aj populárny Knoppix, jeho QtParted
a GNU Parted
však neobsahuje knižnice na prácu so všetkými možnými filesystémami. Na distrowatch.cz ich nájdete určite cez desiatku a ľahko si tam vyberiete nejakú vám vyhovujúcu.
Prečo Parted niekedy treba spustiť z CD alebo diskety? Pretože s ním nemôžeme pracovať s namountovanými (pripojenými) oddielmi. Ak máme na disku viac distribúcií, môžeme pracovať v tých, ktorým oddiely meniť nebudeme. Live- distribúcie sú výhodné aj vtedy, ak chceme zálohovať dáta. Ďalší dôvod spomenieme neskôr. Začneme tým najdôležitejším: zálohovaním.
Záloha dát
Prvým, nikdy nie dostatočne zdôrazneným krokom, je odzálohovanie si dát z disku. Bez dôkladnej zálohy riskujete ich stratu! Zmazanie, zrušenie (rm), resp. vytvorenie FS (formátovanie) oddielu znamená, že na tejto partícii prídeme o všetky dáta! Na tvorbu zálohy môžete použiť veľké množstvo programov, od tar
-u, cez dar
, alebo partimage
. Pri ich výbere sa rozhodujte podľa osobných preferencií a skúseností (namiesto dar
použijeme napr. kdar
). Použiť môžeme i program partimage
, rovnako často prítomný na záchranných CD.
Taktika
Teraz je vhodné naplánovať si rozdelenie disku. Najlepšie je presne určiť plánované rozdelenie disku (v MB) a zvoliť si spôsob zmien: presun, kopírovanie/zmazanie, resize atď. Môžeme si stanoviť aj alternatívny postup, kvôli obídeniu prípadných problémov.
Inštalácia parted
Toto by mala byť bezproblémová záležitosť. Postupujeme štandardne ako pri iných programoch. Snáď bude potrebné doplniť niektoré knižnice na prácu s FS, ktoré nemáme nainštalované (a máme ich zapnuté v jadre). Na to vás však GNU Parted upozorní. Ak ho chceme použiť z diskety, treba si stiahnuť 2 súbory z adresy ftp://ftp.gnu.org/gnu/parted/bootdisk/: partboot-x.x.x.img
a partroot-x.x.x.gz
Prvý skopírujeme na naformátovanú disketu (ext2) príkazom dd:
dd if=partboot.img of=/dev/fd0 bs=1440k
druhý tiež na rovnako naformátovanú disketu. Stačí cp: cp partroot-x.x.x.gz /dev/floppy
.
Potom si už iba v BIOSe/ lile nastavíme bootovanie z diskety, reštartujeme počítač a po výzve boot: napíšeme rama
, čím skopírujeme program aj s mini systémom do operačnej pamäte počítača. Po výzve vložíme druhú disketu a po jej načítaní môžeme spustiť program.
Parted
Najprv sa presvedčíme, či nemáme namountované oddiely, s ktorými budeme pracovať (v konzole cat /etc/mtab
). Aj tak by Parted odmietol pracovať :-) Parted spustíme v interaktívnom režime príkazom parted
a ako parameter mu dáme harddisk, ktorý chceme upravovať: /dev/hda
, /dev/hdb
... (Príkazy môžeme vykonávať aj v jednoduchom móde: parted /dev/hda print
) Príkaz print
nám ukáže, ako máme disk rozdelený. Tieto údaje budeme neskôr potrebovať, takže nezaškodí si ich zobraziť po každej zmene:
Rozdelenie harddisku tu máme ako na dlani. Minor
je číslo partície (oddielu), Start
a End
ukazuje polohu začiatku a konca partície (v MB), Type je typ (primárna, logická, extendend), nasleduje typ FS. Skontrolujeme oddiel č.6 (čo je vlastne /dev/hda6
): príkazom check
a po výzve zadáme 6
(parted) check Partition number? 6
V prípade, že dostaneme hlásenie: No Implementation ...
, budeme musieť použiť alternatívne spôsoby práce (opísané v odstavci Problémy). Ak sa nezobrazí iná chyba (error), môžeme pokračovať. Význam, resp. riešenie chýb nájdeme v bug-liste GNU Parted. Skvelo napísaný manuál na adrese: http://www.gnu.org/software/parted/manual/html_mono/parted.html nám poskytne dostatok informácií ako začať (v angličtine).
Možno však bude dobré, ak si pripomenieme niekoľko základných vecí:
- je samozrejmé, že pracujeme ako root
- pri niektorých FS (napr. ext2/3) môžeme meniť veľkosť oddielu iba smerom "doprava"; začiatok partície musí ostať nezmenený (napríklad oddiel 8 nemôžeme zväčšiť na pozíciu menšiu ako 33957 MB; ale doprava, ak je tam voľné miesto, môžeme)
- pri kopírovaní by mala byť cieľová partícia rovnako veľká, alebo väčšia ako zdrojová
- pri kopírovaní sa zmaže obsah cieľovej partície
- pozor na uvádzané polohy oddielov, nesmú sa prekrývať (Ak jeden končí na 33405,1, druhý musí začať na 33405,2)
- po každej akcii je vhodné sa presvedčiť o jej výsledku príkazom print, aby sme prípadne mohli obnoviť dáta príkazom rescue
- prácu v interaktívnom režime ukončíme príkazom
quit
Niekoľko príkladov:
cp /dev/hda 2 3 #skopíruje oddiel 2 do 3 rm 5 # zmaže partíciu 5 # Na uvoľnenom mieste vytvoríme partíciu aj s filesystémom: mkpartfs logical ext2 8001,154 33204,660 #vytvoril sa logický oddiel ext2 so začiatkom na uvedených polohách disku resize 5 8001,154 33100 # zmenší oddiel sprava na hodnotu 33100
Ešte si spomenieme číslovanie oddielov. Ak vytvárame nový oddiel, dostane najnižšie možné poradové číslo (v prvom príklade by to bola 11, teda /dev/hda11). Ak oddiel zrušíme, všetky poradové čísla vyššie ako bolo to jeho sa o jedno zmenšia. Teda: rm 6
spôsobí, že partícia 7 bude premenovaná na 6, 8 bude 7 atď. Teraz sa ukazuje ďalšia podstatná výhoda použitia Live- CD. Po skončení práce s Parted totiž môžeme ihneď pohodlne upraviť potrebné súbory.
QTParted
"Klikania chtivých" užívateľov, ktorým sa uvedený spôsob práce zdá "nepohodlný", môžem odporúčať napríklad qtparted. Robí v podstate to isté, ibaže pomocou klikania. I keď program vychádza z GNU Parted, včlenením ďalších programov dosiahol pomerne zaujímavé výsledky. Od verzie 0.1.6 program vie napr. meniť veľkosť NTFS oddielu (to Parted sám nevie). Zoznam podporovaných filesystémov a akcií nájdeme opäť na domovskej stránke projektu: http://qtparted.sourceforge.net.
Na záver si ukážeme jednoduché aplikovanie GNU Parted v praxi. Máme harddisk /dev/hda s Win* a Linuxom (je vykonštruovaný pre lepšie znázornenie príkazov):
(parted) print Disk geometry for /dev/hda: 0.000-76000,001 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0,031 8000,000 primary fat32 boot 2 8000,001 76000,000 extended 5 8000,002 33200,000 logical fat32 6 33200,001 37000,000 logical ext2 7 37000,001 37600,000 logical linux-swap 8 34000,001 76000,000 logical ext2
Predpokladám, že veľa nových používateľov Linuxu to má rozdelené podobne (1 = C, 5 = D, 6 = / (root), 7 = swap, 8 = /home); aj ja som mal :-) Budeme chcieť zmenšiť oddiel ("D" vo win*) /dev/hda5 o 10 GB, ktoré potom pridáme partícii / (root).
(parted) resize 5 8000,002 23200,000 # zmenšenie FAT oddielu o 10GB (parted) print # skontrolujeme správnosť (parted) mkpartfs logical ext2 23200,001 33200,000 # na voľnom mieste vytvoríme logickú partíciu s ext2 FS, bude mať číslo 9, teda /dev/hda9 s veľkosťou cca 10GB. (parted) print # kontrola (parted) cp 6 9 # skopírujeme /dev/hda6 na /dev/hda9 # ak sa nás týkajú problémy, skopírujeme dáta inak- partimage, resp. zlatý mc :-) (parted) rm 6 # práve sme zrušili / oddiel, ak niečo nevyšlo, vyťahujeme inštalačné CD ;-) ale predtým ešte vyskúšame # príkaz:(parted) rescue 33200,001 37000,000 (parted) print # skontrolujeme, zapíšeme si čísla partícií (parted) resize 8 23200,001 37000,000 # napokon zväčšíme novovytvorený /dev/hda8 až po swap a opäť skontrolujeme (parted) quit # a je to!
Takto jednoducho sa s ním pracuje :-) Teraz si otvoríme /etc/lilo.conf a /etc/fstab
a opravíme /dev/hda6
za /dev/hda8
, to isté v súbore /etc/fstab
, tam upravíme aj zvyšné partície. V Grube to urobíme podobne (hd0,5 -> hd0,7). Lilo ešte musíme reštartovať príkazom /sbin/lilo
. Ak je všetko v poriadku, skončili sme (tentoraz ;).
Prípadné problémy s "prestavbou" rôznych filesystémov môžeme vyriešiť aj špecializovanými utilitkami. fatresize
, ntfsresize
, ext2resize alebo resize2fs
ktoré sú na to priam ako stvorené. Ak sa to aj tak nepodarí, môžete začať "sporiť na Partition Magic" :-) Pochybujem však, že sa to nepodarí opísanými prostriedkami. Chce to iba dobrú zálohu, opatrnosť, prečítať si tutoriál, dobrý plán a v neposlednom rade GNU Parted, resp. nejaký iný *parted :-)
Pre pridávanie komentárov sa musíte prihlásiť.