Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: juyli - 10.05.11 - klo:22.13
-
Live-CD:t osaavat varsin mallikkaasti hyödyntää kiintolevyillä olevan/olevat swap-osiot. Asennetut järjestelmät eivät toki tarvitsisi ko. omainaisuutta, kun asian voi hoitaa ongelmitta /etc/fstab -tiedoston määrein.
Mutta, mutta... kovin monimutkaista skriptiä ei tarvinne rakentaa löytämään esim. blkid:n perustella swap -osioita: blkid | grep swap
mutta kuinka tuon laitteen tai UUID:n perusteella saisi automaattisesti liitetyksi järjestelmään vaikkapa komennolla swapon UUID tai swapon /dev/osio esim. /etc/rc.local:ssa?
--
Taisinpa ratkaista ongelman ilman erityisiä skriptejä: swapon -a ottaa käyttöön swap-osiot. Ja koska /etc/rc.local ajetaan root-oikeuksin, ei erityiset sudo-komennot perää pääkäyttäjän kirjautumista tai salasanaa.
Mutta yhä ko. skripti olisi ihan hyödyllinen, jos syytä tai toisesta ei halua määritellä swap-osioita /etc/fstab -tiedostossa.
-
Mutta yhä ko. skripti olisi ihan hyödyllinen, jos syytä tai toisesta ei halua määritellä swap-osioita /etc/fstab -tiedostossa.
Scriptin tekemisen voi alottaa vaikka tästä:
fdisk -l | grep -i swap | cut -d' ' -f1
Tuo listaa swap osioiksi määritellyt partitiot...
-
Suomenkielisessä tuo fdisk tulostaa "sivutus" eikä swap...ehkä näin:
sudo blkid | grep -i swap | cut -d' ' -f1 | tr -d :[] :) ?
(testatessa "sudo" eteen..)
Edit: Tai sitten swapin UUID esiin:
sudo blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g
Ja koko rytäkkä tuon avulla:
sudo swapon -U `blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g`
Ruma mutta toimii... :)
-
sudo swapon -U `blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g`
Ruma mutta toimii... :)
Ei tässä olla kauneuspisteitä jakelemassa ;) Skripti toimi testissä ihan ok. - tietyin edellytyksin.
Enempää vielä paneutumatta ko. asiaan, tuntui olevan ongelmia, jos syystä tai toisesta koneella on useampia swap-osioita (älä kysy, miksi swap-osioita olisi enemmän kuin yksi.).
Vähän lisäinfoa aiheesta: kyseessä on USB-tikulle asennettu Linux-jakelu (tag:sta arvattavissa, mistä jakelusta on kyse). Ko. tikku toimii useiden koneiden kanssa, joissa swap-osio tai osiot ovat kulloinkin millä milläkin osioilla kulloinkin. Vaikka kullakin koneella muistia on vähintäänkin kohtuullisesti, on aina swap-osiot tehty - jos ei muuta niin virransäästöominaisuuksia hyödyntämään.
-
Jos swap-osioita on kaksi niin tuo testi palauttaa molempien UUID: n mutta swap menee päälle ensimmäisen osuman mukaan ja tuosta toisesta osumasta tulee virheviesti. Tuon voisi virittää hieman nätimmäksi mutta olisiko toivomusta miten toimitaan kun swap-osioita on enemmän kuin yksi, mitä niistä käytetään vai riittääkö tuo "ensimmäinen osuma" -toiminta ?
-
Jos swap-osioita on kaksi niin tuo testi palauttaa molempien UUID: n mutta swap menee päälle ensimmäisen osuman mukaan ja tuosta toisesta osumasta tulee virheviesti. Tuon voisi virittää hieman nätimmäksi mutta olisiko toivomusta miten toimitaan kun swap-osioita on enemmän kuin yksi, mitä niistä käytetään vai riittääkö tuo "ensimmäinen osuma" -toiminta ?
Jeps. Miksi swap-osioita oli yhtä ennemmän - alunperin muistia on ollut vähemmän (2Gt), ja pienemmällä riskillä jatkettu järjestelmään asennetulla lisä-swap -osiolla koneeseen lisätylle kiintolevylle (1Tt+ 2Gt lisämuistia) ;) (Ns. laiskan miehen malli ;) )
Jo tuo ensimmäisen swap-osion "dynaaminen" lisääminen riittää, kun useamman swap-osion käyttö ei tietenkään ole yleensä kovin perusteltua.
-
No tässäpä sitten pieni lisäviritys jolla se ei herjaa useammasta swap-osiosta vaan ottaa käyttöön listalta sen ensimmäisen:
sudo swapon -U `blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g | head -n1`
Jos listalta halutaan kuitenkin se viimeinen swap-osio niin siitä tulee tämän näköinen:
sudo swapon -U `blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g | tail -n1`
Edelleen tuo antaa "Laite tai resurssi varattu." -virheen jos swap on jo päällä.
-
sudo swapon -U `blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g | head -n1`
Edelleen tuo antaa "Laite tai resurssi varattu." -virheen jos swap on jo päällä.
Kiitos, tuo toimi ihan hienosti. Ehkä jo virheilmoituksen säätäminen /dev/null:iin riittäisi turhia häiritsemästä?
Pitääpä taas jonakin kauniina päivänä kokeille, hyödyntävätkö jotkut Live-CD -jakelut (kuten Ubuntun Desktop-asennuslevy) automaattisesti useamman swap-osion - palataan asiaan...