Olenkin juuri tällä viikolla kirjoitellut aiheesta jonkinnäköistä seikkailukertomusta/ohjetta.
(Pidän itse tuota suspend_to_ram toiminnallisuutta turhana, joku muu voi kirjoittaa sitä puoltavan tekstin)
Hibernaten ylistys - Hibernaten monet kasvot. Vol:1
Termi: Hibernate
Synonyymit: Suspend to disk (s2disk)
Suomeksi: Lepotila
Määritelmä: Kun kone laitetaan lepotilaan, koko muistin sisältö kopioidaan kiintolevylle ja kone sammuu. Sammuu oikeasti, se ei käytä enää virtaa, kiintolevy ei pyöri, näppäimistö ei reagoi yms.
Kun kone herää lepotilasta (resume), muistiin ladataan kiintolevyltä täsmälleen sama tila, joka oli nukkumaan käydessä.
Hibernaten ajatellaan turhan usein liittyvän vain kannettaviin tietokoneisiin, mutta se on aivan yhtä käytännöllinen pöytäkoneessa. Kone sammuu ja käynnistyy nopeammin. Lisäksi ohjelmat, jotka kuitenkin käynnistäisit heti, ovat valmiiksi käynnissä.
Feistyssä on jotain valmiiksi rakennettua hibernatea.
Käynnistyy komennolla hibernate. Conffi-tiedostot löytyy kansiosta /etc/hibernate
esim common.conf on aika hyvä.
Pystyy ajamaan skriptejä suspendin ja resumen yhteydessä.
Mutta ei toimi kaikilla koneilla ja saattaa jättää PCMCIA-kortteja herättämättä.
common.confiin voi laittaa esimerkiksi:
OnSuspend 20 echo "Good night!"
#resumessa pienempi tapahtuu viimeisena
#esimerkki koneessa yksi pcmcia-korttipaikka, jossa wlan-kortti, joka ei herää itsestään
#komento cardctl löytyy paketista pcmcia-cs
OnResume 21 cardctl eject
OnResume 20 cardctl insert
OnResume 19 dhclient
Vaihtoehtoinen tapa
Näin toimii Feistyssä (edgyyn on sama paketti, joten eiköhän toimi):
sudo apt-get install uswsusp
Aja komento sudo s2disk ja kone nukahtaa. Muistin sisältö kopioidaan swappi-osiolle (pakattuna), salaus on myös mahdollista. Kone sammuu.
Paina virtanappia. Kone käynnistyy ja huomaa että swapissa on tallessa palautustilanne (resume-image) ja kone herää tilaan jossa se oli aiemmin. (Pieniä poikkeuksia: kello on kuitenkin oikeassa ajassa)
Herääminen kannattaa tarkastaa kunnolla. PCMCIA-kortit ovat saattaneet hukkua yms. Jos nettiyhteys ei toimi heräämisen jälkeen, syy voi olla kuitenkin laitteessa joka antaa IP-osoitteen (sillä on joku ajastin ja se on todennut, että tämä kone on poistunut).
Nukahtamisen automatisoinnista:
tiedoston /etc/acpi/shutdown.btn (saattaa olla myös nimellä /etc/acpi/powerbtn.sh)
Viimeisellä rivillä ajetaan oletuksena komento shutdown, sen voi korvata komennolla s2disk.
Nyt kun painaa virtanappia, niin tapahtuu tuo s2disk.
Jos jollakulla (muullakin kuin minulla) on vielä iqu-vanha kone, jossa on AT-virtalähde, eli sellainen, jossa virtanappi ihan oikeasti katkaisee virrantulon, eikä vain anna kehotusta koneen sammumiseksi.
anna komento
sudo chmod u+s /sbin/s2disk
Tällä komennolla annetaan kaikille oikeudet ajaa s2diskiä superuserina.
(Tämä voi tietysti olla huono juttu, jos kone on esim serveri käytössä. Mutta kuka on kiinnostunut serverikoneen hibernatesta?)
Nyt voit tehdä jonkin pikanappulan tai valikkoon tai mitä nyt tykkäät, osoittamaan tuohon s2disk.
Muutama varoituksen sana:
Hibernate voi olla vaaraksi. Yleensä se ei riko itsestään mitään. MUTTA jos käytät sitä väärin, niin se voi rikkoakin.
A) mount
Koneella on muistissaan paljonkin tietoa kiintolevyn tilasta.
Kuvitellaan tilanne jossa koneella on ubuntu ja windows, jotka käyttävät yhteistä data-osiota. Kun ubuntu pistetään nukkumaan, tilanne joka 'jäädytetään' sisältää jokseenkin sattumanvaraisia hajatietoja mitä data-osiolla on. Käynnistät Windowsin ja muokkailet tiedostoja data-osiolla (joko itse tai jokin käyttöjärjestelmän prosessi). Sammutat windowsin. Herätät ubuntun. Teet pienen muutoksen data-osion tiedostoon. Ubuntulla on vanhentunut tieto tiedoston sijainnista tai koosta. Levyn kirjoitus menee väärään paikkaan ja koko data-osio on rikki.
Kuinka puolustaudut:
Aina ennen kun laitat koneen nukkumaan, niin aja umount data-osioille.
Kun kone herää, aja mount data-osioille.
Muuta
uswsusp:ista on jo olemassa uudempikin versio, mutta sitä ei ole vielä paketoitu ubuntuun
Tuon kääntäminen itse ei ole muuta kääntämistä vaikeampi homma, mutta sen asentaminen onkin sitten kinkkisempää, koska resume pitää asentaa initrd-imagelle käsin. (tästä Vol2:ssa lisää)
Eli nyt kaikki joukolla itkemään, että pitää paketoida uusi versio.
Siinä tulee esim. mahdollisuus tallentaa resume-image swappitiedostoon, swappi-osion sijasta.