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.
11.8.2005 06:00 | Marian Ščerbák | přečteno 17884×
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ť.
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.
Je to relatívne nový program, vychádzajúci z operačného systému zvaného Visopsys. 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 sní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á.
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
:-)
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.
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 opomerne 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.
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.
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.
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.
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í:
quit
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.
"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 :-)