[gl-como] Aggiornare il kernel da remoto
Pietro Bertera
pietro@bertera.it
Mer 5 Lug 2006 21:57:02 CEST
Ciao,
dal 30 giugno Debian ha smesso di rilasciare aggiornamenti per woody:
devo aggiornare da remoto tutte le macchine woody in produzione.
Visto che la cosa mi sembrava interessante ho buttato giu' 2 righe su
come fare l'upgrade da remoto parandomi il didietro con grub.
Aggiornare lo userspace č abbastanza liscio se non si ha fatto casini
con i source list o roba strana.
L'upgrade del kernel da remoto č una questione un po' piu' delicata,
usare il fallback di grub mi ha risparmiato un po' di capelli bianchi ;)
Dove non ci sono particolari esigenze ho optato per il 2.6.16 di
Backport (1l 2.6.8 di sarge ha problemi con IPsec ed č vetusto).
0) Check vari:
fare tutti i check del caso: c'č la entry per /sys in fstab ?,
partizioni, boot loader, dischi e compagnia bella sono ok ?, ci sono
pacchetti che arrivano da repository non ufficali ? ... ?
1) Aggiornare il sources.list
editare /etc/sources.list e inserire i repository per sarge (questo č il
mirror Fastweb):
deb http://debian.fastweb.it/debian/ sarge main contrib non-free
deb http://security.debian.org/ sarge/updates main contrib non-free
2) Primo upgrade (solo userspace):
# apt-get update
# apt-get -u dist-upgrade
se nella lista compare il kernel interrompete l'upgrade e lasciate fuori
il pacchetto mettendo un pin sulla versione corrente (man
apt_preferences ) oppure facendo:
# apt-get install pacchetto1 pacchetto2 pacchetto3 ...
(tutti tranne il kernel)
scaricherą e configurerą i nuovi pacchetti, non dovrebbero esserci
particolari rogne.
Qui consiglio di fare un reboot per testare se č tutto ok.
2) configurare apt per usare Backports
Aggiungere a /etc/apt/sources.list
deb http://www.backports.org/debian/ sarge-backports main
Ora dobbiamo dare la prioritą solo ai pacchetti che ci interessano in
backport: editare /etc/apt/preferences secondo l'esempio
Package: *
Pin: release a=sarge-backports
Pin-Priority: 200
Package: linux-image-2.6.16-2-686
Pin: release a=sarge-backports
Pin-Priority: 999
Package: grub
Pin: release a=sarge-backports
Pin-Priority: 999
Package: initramfs-tools
Pin: release a=sarge-backports
Pin-Priority: 999
Package: openswan
Pin: release a=sarge-backports
Pin-Priority: 999
il primo gruppo di istruzioni serve a dare una prioritą bassa ai
pacchetti di backport (altrimenti ci tocca aggiornare tutto quello che
sta in backport)
Il secondo, il terzo e il quarto servono per aggiornare il kernel,
mentre openswan serviva a me, non č indispensabile.
4) aggiornare la baracca:
apt-get update && apt-get -u dist-upgrade && apt-get install grub
se initramfs-toos non viene aggiornato significa che non č installato,
quindi occorre installarlo:
apt-get install initramfs-tools
6) Ora il kernel
apt-get install linux-image-2.6.16-2-686
ad un certo punto chiederą se vogliamo interrompere l'operazione perchč
non garantisce che il prossimo reboot andrą a buon fine, noi
continuiamo.
Verificare che abbia creato l'initrd e tutto quanto:
# ls /boot/ | grep 2.6.16
System.map-2.6.16-2-686
config-2.6.16-2-686
initrd.img-2.6.16-2-686
vmlinuz-2.6.16-2-686
7) Configurare Grub:
editare /boot/grub/menu.lst secondo l'esempio (atattatelo secondo il
vostro caso):
default saved
timeout 10
fallback 1
color cyan/blue white/blue
serial --unit=0 --speed=9600
terminal --timeout=2 serial console
title Debian GNU/Linux, 2.6.16
root (hd0,1)
kernel /vmlinuz-2.6.16-2-686 root=/dev/hda6 ro console=ttyS0 console=tty0 panic=30
initrd /initrd.img-2.6.16-2-686
savedefault fallback
title Debian GNU/Linux, kernel 2.4.23-i686-freeswan-0.1
root (hd0,1)
kernel /vmlinuz-2.4.23-i686-freeswan-0.1 root=/dev/hda6 ro console=ttyS0
initrd /initrd.img-2.4.23-i686-freeswan-0.1
savedefault
la terza riga (fallback 1) e savedefault fallback fanno in modo che il
boot del kernel di default non va a buon fine al prossimo reboot verrą
caricato il kernel successivo come default, quindi se va male con il
2.6.16 verrą caricato il 2.4.23, l'opzione panic=30 significa che se va
in kernel panic si rebooterą dopo 30 secondi.
8) impostare il primo kernel come default (non dovrebbe essere
necessario ma...)
# grub-set-default 0
9) Buuum!
# reboot
10) Il dopo:
se č tutto ok rimuovere da /boot/grub/menu.lst "fallback 1" e sostituire
"savedefault fallback" con "savedefault" e lanciare "grub-set-default 0"
Se il nuovo kernel ha avuto qualche problema vi dovreste ritrovare con
il vecchio kernel, c'č da capire come mai non č andato bene il boot.
Ciao
Maggiori informazioni sulla lista
gl-como