Kirjoittaja Aihe: Swap-osio käyttöön dynaamisesti  (Luettu 2899 kertaa)

juyli

  • Vieras
Swap-osio käyttöön dynaamisesti
« : 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:
Koodia: [Valitse]
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.
« Viimeksi muokattu: 10.05.11 - klo:22.26 kirjoittanut juyli »

_Pete_

  • Käyttäjä
  • Viestejä: 1845
  • Fufufuuffuuu
    • Profiili
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #1 : 11.05.11 - klo:08.35 »
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...


ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #2 : 11.05.11 - klo:09.28 »
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:

Koodia: [Valitse]
sudo swapon -U `blkid | grep -i swap | cut -d' ' -f2 | tr -d UUID=[] | sed s/\"//g`
Ruma mutta toimii... :)
« Viimeksi muokattu: 11.05.11 - klo:10.42 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

juyli

  • Vieras
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #3 : 12.05.11 - klo:18.11 »
Lainaus käyttäjältä: ajaaskel link=topic=39002.msg302691
Koodia: [Valitse]
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.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #4 : 12.05.11 - klo:21.52 »
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 ?
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

juyli

  • Vieras
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #5 : 12.05.11 - klo:23.14 »
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.
« Viimeksi muokattu: 12.05.11 - klo:23.29 kirjoittanut juyli »

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #6 : 13.05.11 - klo:08.36 »
No tässäpä sitten pieni lisäviritys jolla se ei herjaa useammasta swap-osiosta vaan ottaa käyttöön listalta sen ensimmäisen:


Koodia: [Valitse]
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:

 
Koodia: [Valitse]
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ä.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

juyli

  • Vieras
Vs: Swap-osio käyttöön dynaamisesti
« Vastaus #7 : 17.05.11 - klo:19.14 »
Koodia: [Valitse]
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...