Eli ongelma olisi seuraavanlainen: SUSE 10.1 asennus teki juuriosiosta (hda6) liian pienen ja nyt parin ohjelman asennuksen jälkeen järjestelmä herjaa jatkuvasti loppuvasta levytilasta. Olisiko siis jotenkin mahdollista laajentaa tuota hda6:tta ottamalla tilaa suuresta hda1:stä? Hda1 on tyhjä. Entä onnistuisiko tilan vapauttaminen hda6:sta siirtämällä jokin sen osa erilliseksi hda1:stä lohkaistuksi osiokseen (hda8)...kuten tuo /home on osiona hda7. Suurimmat kansiot juuressa: /opt 466Mt /proc 255Mt /sys 280Mt /usr 2,1Gt ...jos vaikka tämän saisi omaksi 4Gt osiokseen /var 210Mt
Ei osiointiin ole mitenkään välttämättöntä koskea. Riittää, kun jokin osio liitetään järjestelmään sopivaan kohtaan hakemistopuuta. Näinollen on helppoa siirtää hakemisto toiselle osiolle. Lisämausteena on vielä linkitys jo osioidulle osiolle (man ln). Eli pahimmillasi voit helposti siirtää koko nykyisen / (eli /dev/hda1) osiolle, jolla on tilaa, ja jättää vaikka tuon /usr hakemiston ko. osiolle (/dev/hda6). /etc/fstab on vastaus rukouksiisi.
Mitenkähän tässä käytännössä pitäisi edetä... 1) Luon yastilla uuden hda8-osion tuosta hda1:stä (loppuun hda1:n koitan myöhemmin ubuntua) 2) Siirrän /usr kansion sisällön tuonne hda8:lle... [bold]Mutta miten?[/bold] Täytyykö jollain live-linuxilla säätää vai voiko tämä suse jotenkin itse hoitaa tekstitilassa tuon siirron? 3) Muokkaan fstab:ia ja tallennan (mikä on muuten tekstitilassa susen editori?) 4) Boottaan koneen
1) juuri noin, luo uusi osio (oletetaan että se osio on se sinun mainitsema hda8) MUTTA älä muokkaa FSTABIA lataamaan sitä automaattisesti. 2+3) kokeile editorina vaikka picoa. ao. komennot toimii "linuxin tekstitilassa" (komentokehoitessa, shellissä, terminaalissa, konsolissa.. rakkaalla lapsella on monta nimeä - tee luodulle (ellei yast tee sitä siinä vaiheessa kun osiota luot) hda8 -osiolle tietdostojärjestelmä: komento on mkfs.reiserfs /dev/hda8 - mounttaa se uusi luotu /dev/hda8 johonkin hakemistoon, esim /mnt/hda8. komento on mount -t reiserfs /dev/hda8 /mnt/hda8. Jos tuolla /mnt hakemistossa ei ole tuota tyhjää hda8 -hakemista niin osaat varmaan luoda semmoisen. - siirrä /usr hakemiston sisältö uudelle asemalle, siten että se /usr -hakemisto jää tyhjänä sinne alkuperäiseen paikkaan: mv -R /usr/* /mnt/hda8 - tarkista että /mnt/hda8n alla on kaikki hakemistot mitä oli /usr- hakemistossa. Sitten umounttia tuolle hda8:lle, umount /mnt/hda8 - muokkaa fstabbia käsin ja katso että /dev/hda8iin viittaava rivi /dev/hda8 /usr reiserfs defaults X X, katso nuo kahden X:n arvot tuosta /dev/hda6 -osion kohdasta..
Osiotaulun mukaan /dev/hda2 on jatkettu osio. Sille on jo määritelty rajat. Lohkot 2997-3736. Loogisen osion tekeminen tuohon jatkettuun osioon ei mielestäni onnistu, koska koko tila (jatkettu osio) on jo käytössä. Itse siirtäisin koko järjestelmän /mnt/hda1:lle. Poistaisin nykyiset /dev/hda6 ja /dev/hda7 -osiot, ja loisin tilalle yhden n. 5,5 Gt osion (/dev/hda6), jolla voisi hyvin testata muita Linux-jakeluja kuten tuo Ubuntu. Hyödyllistä luettavaa sal-faq ylipäätään, mutta aiheeseen liittyen: http://sal-faq.sourceforge.net/html/sal-faq.html#partition-kopiointi
mikä estää poistamasta tuota hda1:stä ja luomalla siitä syntyneestä osioimattomasta tilasta uusi osio, olkoon se sitten primaryä tai extentediä? Jos sinne tekee toisen "extented" osion, niin siinä tapauksessa osio jolle kamat pitäisi siirtää taitaa tulla /dev/hda9:ksi..
Itsekin aloin tuota osioiden määrää vähän epäilemään... Kovollahan ei muistaakseni saanut olla yhteensä kuin 4 osioita, ellei käytetä jatko-osiointia. Tässä tapauksessa varsinaisia osioita taitaa olla 2(?), eli voisin lohkaista tuosta hda1:stä uuden osion (10gt) ubuntulle ja jättää loput susen uudeksi juuriosioksi. Vaikuttaisi jokseenkin selvältä ainakin teoriassa mutta käytännöstä ei sitten olekaan mitään hajua. Onnistuuko tuo koko juuriosion siirtäminen siis ihan tällä susella boottaamalla vain jotenkin 'tekstitilaan' (ei X:ää käyntiin)? Ja muokata pitäisi tällä picolla siis /etc/fstab: /dev/hda[bold]1[/bold] / reiserfs acl,user_xattr 1 1 ja /boot/grub/menu.lst: ... title SUSE Linux 10.1 root (hd0,5) kernel /boot/vmlinuz root=/dev/hda[bold]1[/bold] vga=0x31a resume=/dev/hda5 splash=silent showopts initrd /boot/initrd ... ...eikä mitään muuta? [bold]Päivitystä:[/bold] ...eli hda1:stä lohkaistu uusi osio tosiaan meni hda3:ksi, eikä kiilannut hda2:ksi hda2:n paikalle.
Kyllä pitäisi onnistua, kannattaa varmuuden vuoksi tosin kopioida ensin ja poistaa vasta sitten kun varmistuu että kaikki toimii. Varmista myös että kaikkien kansioiden käyttöoikeudet säilyvät. Itse mokasin joitakin kuukausia sitten tehdessä saman operaation kun vaihdoin root osion reiseristä xfs:ään, kopioin ja unohdin käyttöoikeudet, meni aika pitkä tovi että sain tilanteen korjattua. "cp -a" on turvallinen komento.
Kyllä mutta ota huomioon että se kopioi kaikki tiedostot, eli suositeltavaa että et ole mountannu mitään muita osioita mihinkään, muuten niidenkin sisältö tulee kopioitua. Vaihtoehtoisesti voit kopioida kansio kerrallaan ja hypätä /home ja /mnt yli, sen jälkeen manuaalisesti luoda kansiorakenne niiltä osin mitä uupuu. Voit myös koittaa jotain gentoon stage4 scriptejä, ne on lähinnä tarkoitettu varmuuskopion ottamiseen ja sen takia luovat tar paketin, mutta voit sen aina sitten purkaa. Voi nopeuttaa prosessia jonkin verran mutta jos ei tieto taitoa löydy niin on ehkä turvallisinta tehdä kaikki itse. ( http://gentoo-wiki.com/HOWTO_Custom_Stage4 )
Mitenkäs tuon grubin muuten saa löytämään tuon oman menu.lst:nsä kopioinnin jälkeen tuolta hda1:ltä hda6:n sijaan? Vai onko tuo hda6:lla /boot/grub kansiossa oleva menu.lst vain joku kopio MBR:ssä olevasta, sinnehän grub käsittääkseni on asennettu? Ilmeisesti ei riitä, että muokkaan vain tuota menu.lst:iä, vaan asetukset pitää myös jotenkin saada voimaan... edit: ilmeisesti tuota root (hd0,5) riviäkin tuossa menu.lst:ssä pitäisi jotenkin muokata osoittamaan hda1:een => (hd0,0)? (http://www.troubleshooters.com/linux/grub/grub.htm#_What_You_Absolutely_Need_to_Know )
Eikö tosiaan löydy ketään joka tietäisi tämän grubin toiminnasta? edit: Koitin kopiointia susen vikasieto-tilassa ja /sys kansion kohdalla tuli vastaan seuraavat virheet: http://koti.mbnet.fi/co2/errors.txt ...eli eipä taida olla mahdollista järjestelmän kopioida itseään toiselle osiolle?
En kyllä ole tuon grubin kohdalla varma miten se hoituu, itselläni on /boot erillisellä osiolla niin ei ole sen suhteen koskaan joutunut säätämään. /sys ja /proc kansioita ei voi kopioida, kerneli luo dynaamisesti niiden sisällön buutin yhteydessä, voit vapaasti jättää ne kopioimatta ja vaan tehdä tyhjät /sys ja /proc kansiot uuteen roottiin.
Yleensä levyt osioidaan niin, että on vain yksi primaari ja loput osiot jatketulle osiolle. Vain siinä tapauksessa, jos halutaan asentaa esim. freeBSD XP:n rinnalle tarvitaan 2 kpl primaarilevyjä. Itse siirtäisin vain /usr hakemiston toiseen paikkaan. Koko juuri hakemiston siirto tuottaa hankaluuksia. Se pitäisi tehdä LiveCD linukalla. Osa tiedostoista on kuitenkin käyttiksen puolesta lukittuja ja eivät kopioidu. Esim. /dev /proc ym. Komennolla cp -a / /jokudir saa varmasti sotkua aikaiseksi käynnissä olevassa systeemissä. Eli cp -a /usr /uusilevy mieluiten LiveCD:llä. Muokataan fstab jolloin /usr liitetään bootissa oikein ja poistetaan vanha /usr. Tai sitten tehdään vain symbolinen linkki. Ja juuri oikeuksien takia cp -a. Jos oikeudet menee sotkemaan, niin ei niitä takaisin saa helposti
Taitaa tuo Sakarias:in ehdotus olla tässä tapauksessa järkevin. Tulee kyllä hieman sekava järjestelmä, mutta tulkoon. Riittäisikö pelkkä symbolinen linkki tosiaan ajamaan saman asian kuin varsinainen fstab:in avulla mounttaaminen? Komento ilmeisesti olisi jotenkin ln /mnt/hda1/usr /usr?
Kyllä symbolinen linkkikin piisaa. Mutta musta ei tässä tapauksessa ole järkevää. Itselläni on esimerkiksi gentoon portage eri levyllä symbolisen linkin takana. Ja monet laitenimet ovat symbolisia linkkejä ja noita voi tehdä itsekin. Esim. /dev/cdrom /dev/usbtikku /dev/dvdwriter. Itselläni on /var ja tuo mainittu portage eri levyllä, koska ohjelmien asennus vie Gentoossa yllättävän paljon tilaa välillä. Näin ei pääse /-levy täyttymään. Jos levy tulee täyteen voi systeemi jäädä pahasti jumiin. Ei se fstab tiedoston rukkaamminen niin vaikeaa ole. Sitten kun /home tulee täyteen voi sitäkin jakaa eri levyille. Pari DVD-levyä täyttää jo kummasti kovalevyä. Vihjeeksi: tmpwatch cronnissa oikein säädettynä auttaa myös kivasti levyn täyttymiseltä. Ja ei noita primaarilevyjä.... yksi piisaa. Pääsee helpommalla. Tästä levyn osioinnista voisi kyllä tehdä jo ohjeen. Niin monesti sitä päivitellään. XP kun yleensä asennetaan yhdelle koko levyn täyttävälle osiolle. Linukan kanssa menetellään yleensä toisin ja siihen on ihan hyvät perusteet. Itse en taas ymmärrä miksi XP:ssä käyttäjien datat ja käyttiksen binaarit pitää olla sekasin samalla levyllä.
Varmaankin sen takia että winukassa osiot ei sulaudu tiedostojärjestelmään yhtä huomaamattomasti kuin linuxissa. Itse osioinnissa suosin pelkkien primääri osioiden käyttöä, harvoin tulee tarvetta yli 4 osiolle. Mutta jokainen taplaa tavallaan =). [(off topic) gentoossa voi muuten portagen siirtää PORTDIR muuttujan avulla kokonaan muualle, ei tarvitse linkkien kanssa pelailla.]
Kokeilin kopioinnin jälkeen softlinkitystä komennolla [bold]ln -s /mnt/hda1/usr usr[/bold] ja järjestelmä näyttäisi toimivan ihan kuten pitääkin, mutta kun koitin asettaa tuota /usr:ia mounttautumaan fstabin kautta ei homma onnistunutkaan: Lisäsin fstabiin: /mnt/hda1/usr /usr reiserfs acl,user_xattr 1 2 loin juureen kansion "usr" ja komensin [bold]mount /mnt/hda1/usr[/bold] jolloinhan mount tarkistaa mounttauspisteen (tässä tapauksessa /usr) fstabista. Itse mounttaus ei kuitenkaan onnistunut vaan mount valittaa jotain että /mnt/hda1/usr ei ole kelvollinen block device. Koitin muuttaa myös noita fstabin acl,user_xattr ja 1 2 arvoja defaults ja 0 0 -muotoihin, mutta ei vaikutusta. Mitenkähän tuota fstabia nyt sitten pitäisi muokata? edit: Tällainenkin löytyi googlella...
niinpä /mnt/hda1/ ja sen alla olevat hakemistot ovat nimenomaan hakemistoja.. ei mitään erikoisia laitteita, eli "block devices" laitteet itsessään on /dev -hakemistossa. rivi pitäisi varmaan olla /dev/hda1 /usr reiserfs acl,user_xattr 1 2
/dev/hda1 /usr reiserfs acl,user_xattr 1 2 Tällöinhän usr-kansioksi liitettäisiin tuo koko hda1, missä siis on paljon muutakin kuin pelkkä usr-kansio. Tuo vanha /usr-kansio nimenomaan kopioidiin /hda1/usr -kansioksi, eikä aseman juureen. Taitaa tuo softlinkitys olla ainut toimiva vaihtoehto tässä tapauksessa...