LILO

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání

čili LInux LOader

Relativně bezpečná vzdálená výměna jádra

Pokud instalujeme na stroj nové jádro a nejsme si 100% jisti, že s ním bezpečně nabootuje, lze využít následující trik:

Předpokládáme, ža po instalaci nového jádra máme v /etc/lilo.conf např. toto:

prompt
timeout=100
boot=/dev/hda

default=stare

image=/boot/vmlinuz
  label=stare

image=/boot/vmlinuz-new
 label=nove

(všimněme si, že defaultní je pořád volba "stare")

Pomocí

lilo -R nove

řekneme lilu, aby při příštím rebootu (a pouze při něm) nabootovalo s jádrem "nove".

reboot

Pokud nám po rebootu stroj ožije a můžeme se na něj vzdáleně dostat, je vše ok, jádro je použitelné a v lilo.conf přepíšeme default na "nove" a pomocí

lilo

trvale uložíme.

Pokud stroj nenabootoval korektně a máme nainstalovaný hw watchdog, tak nám watchdog stroj za daný čas sám vyresetuje a stroj nabootuje s původním jádrem.

Pokud stroj nenabootoval korektně a watchdog nemáme, nezbývá než někoho poslat, aby stroj vyresetoval (výhoda zde spočívá v tom, že osoba nemusí být schopná opravit volbu loaderu nebo něco podobného). Ovšem lze nastavit, aby se stroj sám rebootoval v případě kernel panic - pomocí kernelovského parametru např. panic=10 (ovšem může dojít i k jiným problémům než kernel panic, ale i ty lze relativně slušně vykrýt - viz dále).

Pokud stroj nabootoval a spustil se i proces "krmení watchdoga" (pokud máme watchdog) a přesto se na stroj nemůžeme vzdáleně dostat, máme smůlu ;-), došlo k té horší variantě, že nám např. nechodí modul pro síťovou kartu, přes kterou se snažíme připojit a pod. Opět nezbývá, než poslat ke stroji někoho, kdo jej vyresetuje. Ovšem i pro tento stav existuje řešení: před rebootem naplánujeme v co možná "nejprvnějším" init scriptu reboot např. za 5 minut od nabootování (sleep 300; reboot) - je pak na nás, abychom tento čekající proces zabili v případě, že se nám podaří na stroj vzdáleně dostat (v opačném případě proces zajistí reboot s původním jádrem).

Pozn.: Totéž by měl umět grub, pomocí příkazu (pozor, volba "once" zavedena až od jisté verze grubu):

grub> savedefault --default=nove --once

Viz také HOWTO Remote Kernel Upgrade - Gentoo Linux Wiki