Uspání linuxové distribuce Debian Lenny

Jelikož i já nejprve musel malinko hledat how-to, rozhodl jsem se zde popsat jednu z dvou předpřipravených cest, jak donutit Vašeho tučňáka uspat a zase probudit k životu a ušetřit tak drahocenný čas jinak věnovaný startu systému.

Proč ?

Je mnoho důvodů, proč systém raději vypínat a zapínat a  není mono těch proč systém uspat a následně obnovit. Prvním důvodem pro je rychlost. Proto než sem se rozhodl nastavit si systém tak, aby uměl režim spánku, zvážil sem všechna pro a proti. Pokud máte pocit že nejsou žádná proti tak mě můžete oponovat v komentářích, zde jsou ta má.

  • I když je to Linux, který vydrží provoz v kuse několik měsíců bez restartu, případně i několik let (servery), používáme na něm aplikace, které takový provoz už nezvládají, a prostě je třeba jej někdy vypnout, například Firefox.
  • Vypnutí a zapnutí systému aktivuje různé užitečné procesy, např. kontrolu disku, kterou je vhodné čas od času pustit, přeci jen nepředpokládám, že Vaše data Vám jsou lhostejná.
  • Při uspání a obnovení systému se musí vyřešit mnoho problémů, a to ne jen softwarových, ale i hardwarových. Situace s obnovením provozu některých zařízení sice není tak černá, ale v některých případech není vůbec růžová.
  • Uspávání systému se často vyvolává automaticky stiskem některých úžasných kláves, které způsobují šílenství uživatele, a je třeba se minimálně zamyslet, zda tyto klávesy pokud rovnou nevydloubat z klávesnice, tak alespoň odpárovat od akce uspání.
Výhody pak v vidím  tyto.
  • Start může být výrazně urychlen, tím spíš, pokud start systému spouští i různé, ne zcela desktopové procesy, které ovšem vy využíváte (web a sql server).
  • V případě častého cestování pro Vás může být velmi přínosné, že počítač velmi rychle uvedete do klidu, tím spíš, že ho rychle obnovíte do stavu rozdělané a samozřejmě uložené práce.
  • Honba za uptimem je hrozně skličující :D

Samotná hibernace

Uspat (hibernovat) systém je možné do RAM nebo na pevný disk a v Debianu Lenny jsou k dispozici dva nástroje, které  toto umí. Prvním je balíček hibernate, který ale potřebuje podporu technologie tuxonice v jádře. Tato technologie se chlubí velmi kvalitním způsobem zamrznutí systému. Rozumějte tím, že minimalizuje problémy s hardwarem a softwarem. Vyžaduje však kompilaci jádra a s tím je spojeno i nutkání jádro více tunit.


Druhý balíček se jmenuje uswsusp. Obsahuje binárky s2ram a s2disk, které pokud je spustíte provedou uspání s dotyčným cílem. S tímto balíčkem sem pracoval i v jiných distribucích a na různých hardwarech a i když evidentně není tak šikovný v rozsahu podpory hardwaru, funguje. Když už jsme té "úpravy" systému, je dobré použít nástroj splashy, který místo nic moc textového výpisu operací (start, uspání, obnovení a ukončení systému) zobrazí nějaký hezký obrázek s progress barem. Splashy samozřejmě není k hibernaci nutný, je jen estetickým doplňkem.


Splashy ale vyžaduje aktivní framebuffer, čehož je možné dosáhnout i úpravou konfiguračního souboru bootloadera v případě lila /etc/lilo.conf v případě grubu /boot/grub/menu.lst (na Lennym to je grub.cfg, ale je lepší upravit scripty, které tento soubor generují). Text který se přidává do konfiguračního souboru může být např. tento vga=791 splash v závislosti na hardwaru a přidává se jako další parametr startu jádra.

/boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro vga=791 splash

Podrobnosti zde rozebírat nebudu, laskavý čtenář si najde informace v jiném článku na internetu, který se věnuje této problematice detailněji.


Pokud vše máme nainstalované a po restartu systému vidíme místo hromady textových řádků hezký obrázek s indikátorem průběhu startu, můžeme vyzkoušet i uspání. systému. Jako uživatel root spustíme příkaz s2ram resp. s2disk. Počítač by se měl uspat. Pokud probouzíme systém z disku, bootloader nejprve normálně začne zavádět jádro, místo běžného startu ale v určitou dobu dojde k probouzení. Místo zdlouhavého startování služeb a spouštění aplikací se tak za malou chvíli dostane systém do původního stavu před uspáním.


Je vhodné poznamenat že k uspávání na disk je potřeba diskový oddíl swap, na který se uloží většinou komprimovaný obsah paměti. Z tohoto oddílu se také uspaný systém probouzí. V době uspání, není vhodné s uživatelskými daty nijak manipulovat, je možné že by došlo k jejich poškození. Data, nejet ty, se kterými systém pracoval by měli zůstat netknuté do dalšího probuzení systému.


Je pravděpodobné, že budete chtít systém uspávat jako obyčejný uživatel, je pak nutné upravit nejlépe konfiguraci programu sudo, tak, aby na to měl obyčejný uživatel právo i bez zadávání hesla. Do konfiguračního souboru (vyvolaného příkazem visudo) by měl přibýt podobně vypadající následující řádek.

ondra ALL=NOPASSWD: /usr/sbin/s2disk

Po uložení pak bude moci uživatel ondra uspat systém zadáním příkazu sudo /usr/sbin/s2disk. Na notebooku je pak šikovné tento příkaz spárovat s klávesou XF86Sleep. O tom jak tuto "multimediální" klávesu  zprovoznit se můžete dočíst v mém blogpostu OSD volume na Xfce. V případě že se chystáte zprovoznit uspávání na disk na klasickém stolním počítači, nebo pokud používáte externí klávesnici,varuji předem: O klávesu "suspend" zavadíte poměrně snadno i několikrát denně. Právě proto někteří uživatelé sahají po tak drastických metodách, jakou je vydloubávání oné klávesy šroubovákem. Naštěstí uživatelé Linuxu si mohou toto přenastavit a klávesu vůbec nepoužít.

Author:

Discussion

Your comment:

© 2019 Ondřej Tůma McBig. Ondřej Tůma | Based on: Morias | Twitter: mcbig_cz | RSS: articles, twitter