Veilige remote kernel updaten

Pagina: 1
Acties:

  • BarthezZ
  • Registratie: Juli 2004
  • Niet online

BarthezZ

anti voetbal en slechte djs!

Topicstarter
Ik heb een colo bak met Debian Sarge (3.1) deze draait kernel 2.4.27-2-386

Nu wil ik deze een 2.6.XX-686 kernel gaan geven, aangezien ik wat programma's nodig heb die alleen binary worden uitgegeven. Deze programma's zijn optimized voor i686. De cpu (model name: Intel(R) Celeron(R) CPU 2.00GHz, stepping: 7) zou als het goed is een i686 kernel moeten kunnen draaien. Ten eerste, hoe kan ik dat verifieren?

Het installeren van een kernel zal zonder problemen gaan via apt. Maar, omdat ik niet volledig zeker ben of het goed gaat vraag ik mij af hoe ik een of andere fall-back kan doen voor het geval het fout gaat. Ik vermoed/verwacht problemen te krijgen in o.a. IPtables aangezien ik een nogal strakke firewall heb.
Bij de server heb ik toegang tot een Masterswitch. Ik heb dus de mogelijkheid de server te rebooten als het toch fout gaat. Maar, hoe kan ik ervoor zorgen dat na het rebooten hij niet de nieuwe kernel pakt, maar weer terug de oude. Want als het 1x fout gaat zal het vast een 2e keer ook niet goed gaan.

Nu heb ik zitten zoeken en ben geen duidelijke documentatie vanuit grub oid. tegen gekomen. Wel heeft iemand op het evil irc verteld dat er een mogelijkheid zou moeten zijn om bij de eerste boot Kernel 1 te pakken, en bij de volgende Kernel 2 (dus indien het fout gaat, kan die na een reboot vanaf de masterswitch terug de oude kernel pakken.) Maar, na wat zoeken ben ik totaal geen documentatie tegen gekomen om dit te bereiken.


In het kort, ik probeer na een reboot een test kernel gestart te krijgen, en indien het fout gaat via de masterswitch de server weer te rebooten en de stable kernel te gebruiken.

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Hangt van je bootloader af, met lilo kun je met de -R optie de commandline voor de volgende boot (once only) instellen.
Ik neem aan dat grub ook wel zoiets kent...

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • Osiris
  • Registratie: Januari 2000
  • Niet online
BarthezZ schreef op donderdag 16 augustus 2007 @ 23:55:
Ik heb een colo bak met Debian Sarge (3.1) deze draait kernel 2.4.27-2-386

Nu wil ik deze een 2.6.XX-686 kernel gaan geven, aangezien ik wat programma's nodig heb die alleen binary worden uitgegeven. Deze programma's zijn optimized voor i686. De cpu (model name: Intel(R) Celeron(R) CPU 2.00GHz, stepping: 7) zou als het goed is een i686 kernel moeten kunnen draaien. Ten eerste, hoe kan ik dat verifieren?
Nu weet ik niet of Debian zo'n mooie /etc/make.conf.sample heeft, maar in de Gentoo-versie van mij staat:

# i386                  Original Intel's i386.
# i486                  Intel's i486. (No scheduling implemented.)
# i586, pentium Intel Pentium with no MMX support.
# pentium-mmx   Intel PentiumMMX based on Pentium core with MMX.
# i686, pentiumpro      Intel PentiumPro.
# === >=gcc-3.2
# k6                    AMD K6 with MMX.
# k6-2, k6-3    AMD K6 with MMX and 3dNOW!.
# pentium2              Intel Pentium2 based on PentiumPro with MMX.
# pentium3              Intel Pentium3 based on PentiumPro with MMX and SSE.
# pentium4              Intel Pentium4 with MMX, SSE and SSE2.
# athlon, athlon-tbird  AMD Athlon with MMX, 3dNOW!, enhanced 3dNOW!
#                               and SSE prefetch.
# athlon-4, athlon-xp, athlon-mp        AMD Athlon with MMX, 3dNOW!, enhanced
#                               3dNOW! and full SSE.


Neem aan dat je Celeron wel nieuwer is dan een Pentium Pro, nietwaar? Verder heeft Google er ook wel een antwoord op.
BarthezZ schreef:
Het installeren van een kernel zal zonder problemen gaan via apt. Maar, omdat ik niet volledig zeker ben of het goed gaat vraag ik mij af hoe ik een of andere fall-back kan doen voor het geval het fout gaat. Ik vermoed/verwacht problemen te krijgen in o.a. IPtables aangezien ik een nogal strakke firewall heb.
Bij de server heb ik toegang tot een Masterswitch. Ik heb dus de mogelijkheid de server te rebooten als het toch fout gaat. Maar, hoe kan ik ervoor zorgen dat na het rebooten hij niet de nieuwe kernel pakt, maar weer terug de oude. Want als het 1x fout gaat zal het vast een 2e keer ook niet goed gaan.

Nu heb ik zitten zoeken en ben geen duidelijke documentatie vanuit grub oid. tegen gekomen. Wel heeft iemand op het evil irc verteld dat er een mogelijkheid zou moeten zijn om bij de eerste boot Kernel 1 te pakken, en bij de volgende Kernel 2 (dus indien het fout gaat, kan die na een reboot vanaf de masterswitch terug de oude kernel pakken.) Maar, na wat zoeken ben ik totaal geen documentatie tegen gekomen om dit te bereiken.


In het kort, ik probeer na een reboot een test kernel gestart te krijgen, en indien het fout gaat via de masterswitch de server weer te rebooten en de stable kernel te gebruiken.
En wederom Gentoo to the rescue: HOWTO Remote Kernel Upgrade (Die is down, maar daarvoor hebben we Google cache: HOWTO Remote Kernel Upgrade (Google cache)
Komt er op neer dat je je GRUB één kans geeft de nieuwe kernel te proberen en daarna doet ie de fallback.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 31-01 13:34

LauPro

Prof Mierenneuke®

Je kon dacht ik ook vanuit een draaiend OS een andere kernel starten, die overschrijft dan het geheugen etc. Als het mis gaat dan kan je hem rebooten en boot hij met de auto kernel. Maar die fallback van GRUB is ook wel aardig, al hoewel je dat niet beschermd tegen kernelpanics?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Osiris
  • Registratie: Januari 2000
  • Niet online
LauPro schreef op vrijdag 17 augustus 2007 @ 00:07:
Je kon dacht ik ook vanuit een draaiend OS een andere kernel starten, die overschrijft dan het geheugen etc. Als het mis gaat dan kan je hem rebooten en boot hij met de auto kernel. Maar die fallback van GRUB is ook wel aardig, al hoewel je dat niet beschermd tegen kernelpanics?
Jawel, want ook als je kernel wél werkt én je reboot weer zónder GRUB terug aan te passen, dan zal hij weer booten met de oude.

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
LauPro schreef op vrijdag 17 augustus 2007 @ 00:07:
Je kon dacht ik ook vanuit een draaiend OS een andere kernel starten, die overschrijft dan het geheugen etc. Als het mis gaat dan kan je hem rebooten en boot hij met de auto kernel. Maar die fallback van GRUB is ook wel aardig, al hoewel je dat niet beschermd tegen kernelpanics?
Hier wordt ook bij een reboot de oude kernel weer gestart (zowel met de grub als de lilo methode, voor zover ik die grub wiki even snel doorgelezen heb.
offtopic:
wat is lilo toch heerlijk simpel btw

Hangs en kernel panics zijn altijd een risico, daarom is het instellen van zo'n fallback niet 100% foolproof.

Gelukkig heeft TS beschikking over een remote powerswitch ;)

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13:45

deadinspace

The what goes where now?

BarthezZ schreef op donderdag 16 augustus 2007 @ 23:55:
Ik heb een colo bak met Debian Sarge (3.1) deze draait kernel 2.4.27-2-386

Nu wil ik deze een 2.6.XX-686 kernel gaan geven...
Merk op dat de recentste 2.6 kernel in Sarge 2.6.8 is. Als je toch gaat upgraden dan is het misschien verstandig om te kijken of je niet helemaal naar Etch kan upgraden.
aangezien ik wat programma's nodig heb die alleen binary worden uitgegeven. Deze programma's zijn optimized voor i686.
Ik zie het verband niet met een kernel upgrade. Hebben die programma's 2.6 nodig?

Voor het -i686 hoef je het niet te doen; i686 optimized programma's draaien prima onder een -386 kernel. Mocht je het willen doen voor de snelheid, dan is het misschien handiger om op een handig moment het hele systeem te upgraden, niet alleen de kernel. Bovendien wil je in dat geval waarschijnlijk ook libc6-i686.
De cpu (model name: Intel(R) Celeron(R) CPU 2.00GHz, stepping: 7) zou als het goed is een i686 kernel moeten kunnen draaien. Ten eerste, hoe kan ik dat verifieren?
Door naar het package te kijken. Op een Sarge bak:
$ apt-cache show kernel-image-2.6.8-3-686
Package: kernel-image-2.6.8-3-686
Priority: optional
Section: base
Installed-Size: 44180
Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
Architecture: i386
Source: kernel-image-2.6.8-i386
Version: 2.6.8-16sarge6
Provides: kernel-image, kernel-image-2.6
Depends: initrd-tools (>= 0.1.63), coreutils | fileutils (>= 4.0), module-init-tools (>= 0.9.13)
Suggests: lilo (>= 19.1) | grub, fdutils, kernel-doc-2.6.8 | kernel-source-2.6.8
Conflicts: hotplug (<< 0.0.20040105-1)
Filename: pool/main/k/kernel-image-2.6.8-i386/kernel-image-2.6.8-3-686_2.6.8-16sarge6_i386.deb
Size: 15550508
MD5sum: 2ccf7a2cfcb0b1629a8502bc9ea894bb
SHA1: cf0ddcb9d568fc9bcb4e0517870c1f9df81cc9f1
SHA256: c95cc44879406c0f2eaecad5159a0805d8ad4ad0267159b8f44ca632ef14bdea
Description: Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4.
 This package contains the Linux kernel image for version 2.6.8 on
 Pentium Pro/Celeron/Pentium II/Pentium III/Pentium 4,
 the corresponding System.map file, and the modules built by the packager.
 It also contains scripts that try to ensure that the system is not left in
 a unbootable state after an update.
 .
 If you wish to update a bootdisk, or to use a bootloader to make
 installing and using the image easier, we suggest you install the latest
 fdutils (for formatting a floppy to be used as boot disk), and LILO, for a
 powerful bootloader. Of course, both these are optional.
 .
 Kernel image packages are generally produced using kernel-package,
 and it is suggested that you install that package if you wish to
 create a custom kernel from the sources.

Welke informatie je hieruit nodig hebt is een oefening voor de lezer :P
Nu heb ik zitten zoeken en ben geen duidelijke documentatie vanuit grub oid. tegen gekomen.

Wel heeft iemand op het evil irc verteld dat er een mogelijkheid zou moeten zijn om bij de eerste boot Kernel 1 te pakken, en bij de volgende Kernel 2 (dus indien het fout gaat, kan die na een reboot vanaf de masterswitch terug de oude kernel pakken.) Maar, na wat zoeken ben ik totaal geen documentatie tegen gekomen om dit te bereiken.
Er staat toch echt wel het een en ander over in de GRUB manual.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 31-01 13:34

LauPro

Prof Mierenneuke®

@Osiris: ja, dus eigenlijk direct de nieuwe kernel booten, en bij een fail de server hardwarematig rebooten.

@hierboven: sommige packages (iptools, vpn bijv.) zijn gecompileerd tegen de kernelheaders. Als je dus naar 2.6 gaat is er kans dat er wat breekt.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Hij heeft hem ondertussen allang gereboot naar z'n nieuwe kernel, maar is vergeten dat hier te melden :P

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 31-01 13:34

LauPro

Prof Mierenneuke®

Maakt toch niet zoveel uit? Ook voor de search is deze info handig ;) .

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

is het anders niet handig om in qemu oid de nieuwe kernel even te testen terwijl je systeem gewoon blijft draaien?

  • Osiris
  • Registratie: Januari 2000
  • Niet online
LauPro schreef op vrijdag 17 augustus 2007 @ 04:08:
Maakt toch niet zoveel uit? Ook voor de search is deze info handig ;) .
Heb je op zich gelijk in. Was echter vergeten te melden dat ie gewoon die Gentoo-HOWTO had gebruikt :P (Wat eigenlijk weer een ietswat uitgebreide, aangepaste HowTo van GRUB's eigen site is.)

  • BarthezZ
  • Registratie: Juli 2004
  • Niet online

BarthezZ

anti voetbal en slechte djs!

Topicstarter
[...]
Ik zie het verband niet met een kernel upgrade. Hebben die programma's 2.6 nodig?

Voor het -i686 hoef je het niet te doen; i686 optimized programma's draaien prima onder een -386 kernel. Mocht je het willen doen voor de snelheid, dan is het misschien handiger om op een handig moment het hele systeem te upgraden, niet alleen de kernel. Bovendien wil je in dat geval waarschijnlijk ook libc6-i686.

[...]
[/quote]

De programma's checkde of er een 2.6 i686 kernel draaide ja, en verder vind ik het vrij handig even wat ervaring op te doen hierover.

Het is inmiddels gelukt met wat hulp van Osiris en gentoo guides :)

Linux hostname 2.6.8-4-686 #1 Mon Apr 30 07:01:37 UTC 2007 i686 GNU/Linux
Pagina: 1