GRUB a hibernace

14.03.2007, 21:17
Poslední změna: 15.03.2007, 10:31
Tagy: Linux

Možná se vám to taky někdy stalo – máte nainstalováno více jader, uspíte systém na disk a po zapnutí počítače omylem nabootujete jiné jádro… To může vést k nepříjemnostem a to hlavně ztrátě dat. Abychom tomu předešli, můžeme si vytvořit alternativní menu.lst s nulovým timeoutem a správně nastavenou defaultní položkou. Potom nám Grub vůbec neukáže menu a přímo nabootuje správné jádro.

V souboru /etc/hibernate/common.conf jsou připraveny následující řádky – pouze je odkomentujeme (platí pro Debian):

### grub
ChangeGrubMenu yes
GrubMenuFile /boot/grub/menu.lst
AlternateGrubMenuFile /boot/grub/menu-suspended.lst
BackupGrubMenuFile /var/backups/grub.conf.hibernate

Soubor /boot/grub/menu-suspended.lst by zatím neměl existovat, ale vytvářet ho ručně by nebylo vhodné – připravíme si na to skriptík.

#!/bin/sh
DEF=$(egrep ^kernel /boot/grub/menu.lst | \
egrep -n `uname -r` | egrep -v single | cut -d: -f1)
DEF=$(($DEF-1))

sed -r -e "s/^(timeout\t+)[0-9]+/\10/" \
/boot/grub/menu.lst | \
sed -r -e "s/^(default\t+)[0-9]+/\1$DEF/" \
> /boot/grub/menu-suspended.lst

Tento skript přečte z menu.lst seznam jader, najde právě běžící jádro, jeho pořadové číslo a nastaví jej jako default. Dále nastaví timeout na 0 (nečekat na uživatele a hned bootovat default jádro). Výsledný soubor zapíše do menu-suspended.lst. Skript si uložíme například do /root/bin/gen-menu-suspended a tomuto souboru nastavíme execute flag (chmod +x).

Spuštěním lze skript otestovat.

Automatické spuštění během procesu hibernace zajistíme následujícím řádkem v common.conf:

### misclaunch
OnSuspend 19 /root/bin/gen-menu-suspended

Příkazem hibernate otestujeme…

Komentáře

Žádné komentáře
Přidat komentář
Odpovídáte na komentář .
Vaše stránka. Nepovinné.
**tučné** //skloňené// ''kód''
* seznam pol. 1
* seznam pol. 2
  * vnořený seznam
# číslovaný seznam
{{{
předformátovaný text
}}}
[[http://devl.cz link]]