TIP kexec
Uit Gentoo Linux Wiki
Kexec is een system call, die de huidige kernel stop en een nieuwe kernel opstart. Het is vergelijkbaar met een reboot. Niet alleen de linux kernel kan ermee gestart worden, maar ook een willekeurige andere.
Inhoud |
[bewerken] Waarom kexec
Kexec maakt het mogelijk, mits het werkt op uw platform en hardware, om heel snel opnieuw op te starten.
[bewerken] Installatie
[bewerken] Benodigdheden
- kexec-tools
- Een >=2.6.13 kernel met support voor kexec
Om te controleren of uw kernel geschikt, gebruikt u uname -r. Als uw kernel versie 2.6.13 of hoger is dan ondersteund uw kernel kexec. Anders dient u een nieuwere kernel source op te halen. Gebruikt u de 2.4 serie dan is het niet mogelijk om kexec te gebruiken.
[bewerken] Kernel Configuratie
Om kexec te kunnen gebruiken, moet u deze aan zetten in uw kernel. De volgende optie dient aan gevinkt te zijn:
| Linux Kernel Configuratie: >=kernel-sources-2.6.13 |
Processor type and features ---> [*] kexec system call (EXPERIMENTAL) |
Is deze optie niet aanwezig, dan kan het zijn dat u bent vergeten experimentele features aan te zetten:
| Linux Kernel Configuratie: >=kernel-sources-2.6.13 |
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers |
Sla de nieuwe configuratie op en compileer uw kernel.
[bewerken] Kexec-Tools
Om de kexec systemcall te gebruiken, heeft u een programma nodig, die de nieuwe kernel kan laden en de systemcall aanroept. In portage vindt u kexec-tools. Dit levert die functionaliteit. Om kexec-tools te installeren kunt u emerge gebruiken:
| Code: emerge kexec-tools |
|
emerge -av kexec-tools |
[bewerken] Configuratie
Nu dient u kexec tools nog te configureren. Dit kunt u doen in /etc/conf.d/kexec. Een voorbeeld configuratie:
| File: /etc/conf.d/kexec |
# Boot partitie BOOTPART="/boot" # Kernel naam. Dit is de bestandsnaam van de kernel in /boot KNAME="amd64-new" # Root partition (should be autodetected) ROOTPART="/dev/hda3" # Kernel parameters (should be autodetected) # Autodetecteert niet als boot partitie en # root partitie verschillen KPARAM="root=/dev/hda1" # Initrd #INITRD="/boot/fbsplash-emergence-1024x768" # Load kexec kernel image into memory during shutdown instead of bootup # (default: yes) LOAD_DURING_SHUTDOWN="yes" |
[bewerken] Toevoegen aan runlevel
Om te zorgen dat u bij een reboot kexec wordt gebruikt, dient u kexec toe te voegen aan uw default runlevel:
| Code: kexec toevoegen aan default |
|
rc-update add kexec default |
[bewerken] Reboot
[bewerken] Met kexec
Om via kexec te booten, moet u de kexec-tools gestart te hebben. Als u kexec aan uw default runlevel hebt toegevoegd dan zijn ze al gestart. Als u dit niet heeft gedaan of niet weet of ze gestart zijn kunt het volgende commando gebruiken om dit te controleren: /etc/init.d/kexec status. Is het niet opgestart? Voeg het dan toe aan uw default runlevel of gebruik /etc/init.d/kexec start als u het eenmalig wil testen.
| Code: reboot |
|
reboot |
Als het goed is, start u systeem nu opnieuw op via kexec.
[bewerken] Zonder kexec
Wilt u uw systeem gewoon opstarten dan gebruikt u /etc/init.d/kexec stop om kexec-tools te stoppen. Vervolgens kunt u reboot gebruiken om te rebooten.
[bewerken] Problemen
Kexec is een experimentele feature. Het kan daarom voorkomen, dat kexec niet of niet correct werkt op uw systeem. U kunt dan proberen om een nieuwere kernel versie te bemachtigen.
