GRUB a hibernace
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…