Author Topic: Aggiornamento del Kernel  (Read 1912 times)

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Aggiornamento del Kernel
« on: January 09, 2011, 07:46:48 pm »
Una delle situazioni più comuni che si devono affrontare quando si amministra un sistema Linux è l’aggiornamento del Kernel, ad esempio perchè è stato trovato un bug di sicurezza nella versione attuale.
Di seguito descriveremo passo passo le operazioni da eseguire per aggiornare una delle nostre VPS, sia nel caso che si utilizzi una distribuzione basata su Debian che una sui pacchetti rpm, come ad esempio Centos.

Centos

Inanzitutto recuperiamo i dati relativi al Kernel attuale:

Code: [Select]
[root@vps-0072 ~]# uname -a
Linux vps-0072.flarevm.net 2.6.18-194.3.1.el5xen #1 SMP Thu May 13 13:49:53 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

Code: [Select]
[root@vps-0072 ~]# ls /boot/
System.map-2.6.18-164.el5xen      grub                              symvers-2.6.18-164.el5xen.gz      xen-syms-2.6.18-164.el5
System.map-2.6.18-194.3.1.el5xen  initrd-2.6.18-164.el5xen.img      symvers-2.6.18-194.3.1.el5xen.gz  xen-syms-2.6.18-194.3.1.el5
config-2.6.18-164.el5xen          initrd-2.6.18-194.3.1.el5xen.img  vmlinuz-2.6.18-164.el5xen         xen.gz-2.6.18-164.el5
config-2.6.18-194.3.1.el5xen      message                           vmlinuz-2.6.18-194.3.1.el5xen     xen.gz-2.6.18-194.3.1.el5

Come potete vedere al momento sulla VPS in esame è installato la versione del Kernel 2.6.18-194.3.1.el5xen e la relativa immagine è contenuta in /boot

Eseguiamo un update dei pacchetti:

Code: [Select]
[root@vps-0072 ~]# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirrors.prometeus.net
 * base: mirrors.prometeus.net
 * extras: mirrors.prometeus.net
 * updates: mirrors.prometeus.net
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package bzip2-libs.x86_64 0:1.0.3-6.el5_5 set to be updated
---> Package db4.x86_64 0:4.3.29-10.el5_5.2 set to be updated
---> Package device-mapper.x86_64 0:1.02.39-1.el5_5.2 set to be updated
---> Package device-mapper-event.x86_64 0:1.02.39-1.el5_5.2 set to be updated
---> Package device-mapper-multipath.x86_64 0:0.4.7-34.el5_5.6 set to be updated
---> Package e2fsprogs.x86_64 0:1.39-23.el5_5.1 set to be updated
---> Package e2fsprogs-libs.x86_64 0:1.39-23.el5_5.1 set to be updated
---> Package expat.x86_64 0:1.95.8-8.3.el5_5.3 set to be updated
---> Package glibc.x86_64 0:2.5-49.el5_5.7 set to be updated
---> Package glibc-common.x86_64 0:2.5-49.el5_5.7 set to be updated
---> Package initscripts.x86_64 0:8.45.30-3.el5.centos set to be updated
---> Package kernel-xen.x86_64 0:2.6.18-194.32.1.el5 set to be installed
---> Package kpartx.x86_64 0:0.4.7-34.el5_5.6 set to be updated
---> Package krb5-libs.x86_64 0:1.6.1-36.el5_5.6 set to be updated
---> Package libxml2.x86_64 0:2.6.26-2.1.2.8.el5_5.1 set to be updated
---> Package logrotate.x86_64 0:3.7.4-9.el5_5.2 set to be updated
---> Package lvm2.x86_64 0:2.02.56-8.el5_5.6 set to be updated
---> Package mkinitrd.x86_64 0:5.1.19.6-61.el5_5.2 set to be updated
---> Package module-init-tools.x86_64 0:3.3-0.pre3.1.60.el5_5.1 set to be updated
---> Package nash.x86_64 0:5.1.19.6-61.el5_5.2 set to be updated
---> Package nspr.x86_64 0:4.8.6-1.el5_5 set to be updated
---> Package nss.x86_64 0:3.12.8-1.el5.centos set to be updated
---> Package openldap.x86_64 0:2.3.43-12.el5_5.3 set to be updated
---> Package openssl.x86_64 0:0.9.8e-12.el5_5.7 set to be updated
---> Package pam.x86_64 0:0.99.6.2-6.el5_5.2 set to be updated
---> Package popt.x86_64 0:1.10.2.3-20.el5_5.1 set to be updated
---> Package python.x86_64 0:2.4.3-27.el5_5.3 set to be updated
---> Package rpm.x86_64 0:4.4.2.3-20.el5_5.1 set to be updated
---> Package rpm-libs.x86_64 0:4.4.2.3-20.el5_5.1 set to be updated
---> Package rpm-python.x86_64 0:4.4.2.3-20.el5_5.1 set to be updated
---> Package rsyslog.x86_64 0:3.22.1-3.el5_5.1 set to be updated
---> Package tzdata.x86_64 0:2010l-1.el5 set to be updated
---> Package udev.x86_64 0:095-14.21.el5_5.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                                 Arch                   Version                                  Repository               Size
=======================================================================================================================================
Installing:
 kernel-xen                              x86_64                 2.6.18-194.32.1.el5                      updates                  20 M
Updating:
 bzip2-libs                              x86_64                 1.0.3-6.el5_5                            updates                  35 k
 db4                                     x86_64                 4.3.29-10.el5_5.2                        updates                 899 k
 device-mapper                           x86_64                 1.02.39-1.el5_5.2                        updates                 758 k
 device-mapper-event                     x86_64                 1.02.39-1.el5_5.2                        updates                  21 k
 device-mapper-multipath                 x86_64                 0.4.7-34.el5_5.6                         updates                 3.0 M
 e2fsprogs                               x86_64                 1.39-23.el5_5.1                          updates                 995 k
 e2fsprogs-libs                          x86_64                 1.39-23.el5_5.1                          updates                 118 k
 expat                                   x86_64                 1.95.8-8.3.el5_5.3                       updates                  76 k
 glibc                                   x86_64                 2.5-49.el5_5.7                           updates                 4.8 M
 glibc-common                            x86_64                 2.5-49.el5_5.7                           updates                  16 M
 initscripts                             x86_64                 8.45.30-3.el5.centos                     updates                 1.6 M
 kpartx                                  x86_64                 0.4.7-34.el5_5.6                         updates                 434 k
 krb5-libs                               x86_64                 1.6.1-36.el5_5.6                         updates                 675 k
 libxml2                                 x86_64                 2.6.26-2.1.2.8.el5_5.1                   updates                 807 k
 logrotate                               x86_64                 3.7.4-9.el5_5.2                          updates                  41 k
 lvm2                                    x86_64                 2.02.56-8.el5_5.6                        updates                 2.7 M
 mkinitrd                                x86_64                 5.1.19.6-61.el5_5.2                      updates                 454 k
 module-init-tools                       x86_64                 3.3-0.pre3.1.60.el5_5.1                  updates                 443 k
 nash                                    x86_64                 5.1.19.6-61.el5_5.2                      updates                 1.1 M
 nspr                                    x86_64                 4.8.6-1.el5_5                            updates                 119 k
 nss                                     x86_64                 3.12.8-1.el5.centos                      updates                 1.1 M
 openldap                                x86_64                 2.3.43-12.el5_5.3                        updates                 303 k
 openssl                                 x86_64                 0.9.8e-12.el5_5.7                        updates                 1.4 M
 pam                                     x86_64                 0.99.6.2-6.el5_5.2                       updates                 978 k
 popt                                    x86_64                 1.10.2.3-20.el5_5.1                      updates                  77 k
 python                                  x86_64                 2.4.3-27.el5_5.3                         updates                 6.0 M
 rpm                                     x86_64                 4.4.2.3-20.el5_5.1                       updates                 1.2 M
 rpm-libs                                x86_64                 4.4.2.3-20.el5_5.1                       updates                 923 k
 rpm-python                              x86_64                 4.4.2.3-20.el5_5.1                       updates                  63 k
 rsyslog                                 x86_64                 3.22.1-3.el5_5.1                         updates                 380 k
 tzdata                                  x86_64                 2010l-1.el5                              updates                 796 k
 udev                                    x86_64                 095-14.21.el5_5.1                        updates                 2.4 M

Transaction Summary
=======================================================================================================================================
Install       1 Package(s)
Upgrade      32 Package(s)

Total download size: 71 M
Is this ok [y/N]:

Come possiamo vedere è disponibile una nuova versione del Kernel: 2.6.18-194.32.1.el5     
                 
Permiamo y e procediamo con l’aggiornamento.

Una volta terminato ricontrolliamo il contenuto della cartella /boot:

Code: [Select]
[root@vps-0072 ~]# ls /boot/
System.map-2.6.18-164.el5xen       grub                               symvers-2.6.18-194.3.1.el5xen.gz   xen-syms-2.6.18-194.3.1.el5
System.map-2.6.18-194.3.1.el5xen   initrd-2.6.18-164.el5xen.img       symvers-2.6.18-194.32.1.el5xen.gz  xen-syms-2.6.18-194.32.1.el5
System.map-2.6.18-194.32.1.el5xen  initrd-2.6.18-194.3.1.el5xen.img   vmlinuz-2.6.18-164.el5xen          xen.gz-2.6.18-164.el5
config-2.6.18-164.el5xen           initrd-2.6.18-194.32.1.el5xen.img  vmlinuz-2.6.18-194.3.1.el5xen      xen.gz-2.6.18-194.3.1.el5
config-2.6.18-194.3.1.el5xen       message                            vmlinuz-2.6.18-194.32.1.el5xen     xen.gz-2.6.18-194.32.1.el5
config-2.6.18-194.32.1.el5xen      symvers-2.6.18-164.el5xen.gz       xen-syms-2.6.18-164.el5

Come potete notare, al suo interno sono stati installati i file relative al nuovo Kernel.

Ora l’ultimo passo: aggiorniamo il boot loader.

Code: [Select]
nano /boot/grub/menu.lst
Il contenuto dovrebbe essere simile al seguente:
default=0
timeout=5
title xen-domU
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-194.3.1.el5xen ro root=/dev/xvda2
        initrd /boot/initrd-2.6.18-194.3.1.el5xen.img

Modifichiamolo immettendo il percorso dell’immagine del nuovo Kernel:

Code: [Select]
default=0
timeout=5
title xen-domU
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-194.32.1.el5xen ro root=/dev/xvda2
        initrd /boot/initrd-2.6.18-194.32.1.el5xen.img

Salviamo.

Fate molta attenzione quando modificate questo file, in quanto, in caso di errore, la VPS potrebbe non essere più riavviabile e dovrete qui utilizzare la funzione rescue del nostro pannello per montare i dischi e correggere.

Infine riavviamo:

Code: [Select]
reboot
Debian

Controlliamo la versione del Kernel installata:

Code: [Select]
vps-0072:~# uname -a
Linux vps-0072.flarevm.net 2.6.26-2-xen-amd64 #1 SMP Thu Aug 20 00:36:34 UTC 2009 x86_64 GNU/Linux

Code: [Select]
vps-0072:~# ls /boot/
System.map-2.6.26-2-xen-amd64  grub                           initrd.img-2.6.26-2-xen-amd64.bak
config-2.6.26-2-xen-amd64      initrd.img-2.6.26-2-xen-amd64  vmlinuz-2.6.26-2-xen-amd64

Aggiorniamo il sistema:

Code: [Select]
vps-0072:~# apt-get update && apt-get upgrade
Hit http://ftp.it.debian.org lenny Release.gpg
Hit http://ftp.it.debian.org lenny Release
Ign http://ftp.it.debian.org lenny/main Packages/DiffIndex
Ign http://ftp.it.debian.org lenny/contrib Packages/DiffIndex
Ign http://ftp.it.debian.org lenny/non-free Packages/DiffIndex
Ign http://ftp.it.debian.org lenny/main Sources/DiffIndex
Ign http://ftp.it.debian.org lenny/contrib Sources/DiffIndex
Ign http://ftp.it.debian.org lenny/non-free Sources/DiffIndex
Hit http://ftp.it.debian.org lenny/main Packages
Hit http://ftp.it.debian.org lenny/contrib Packages
Hit http://ftp.it.debian.org lenny/non-free Packages
Hit http://ftp.it.debian.org lenny/main Sources
Hit http://ftp.it.debian.org lenny/contrib Sources
Hit http://ftp.it.debian.org lenny/non-free Sources
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  apt apt-utils base-files cpio debian-archive-keyring dhcp3-client dhcp3-common dpkg gzip iputils-ping libbz2-1.0 libc6
  libgnutls26 libkrb53 libnewt0.52 libssl0.9.8 libxext6 linux-image-2.6.26-2-xen-amd64 linux-modules-2.6.26-2-xen-amd64 login
  nano passwd tar tzdata wget whiptail
26 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0MB of archives.
After this operation, 2559kB disk space will be freed.
Do you want to continue [Y/n]?

Premiamo y.

Aggiorniamo quindi il bootloader come descritto sopra per CentOS e riavviamo:

Code: [Select]
reboot
« Last Edit: April 10, 2011, 04:25:19 pm by Whitenoise »

brumbrum

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Aggiornamento del Kernel
« Reply #1 on: January 11, 2011, 09:16:02 pm »
La guida è ottima e chiara ma non sono riuscito a completare l'operazione. Sulla mia vps è presente il kernel 2.6.24-28-xen, che credo di aver capito non sia l'ultimo. Ho seguito il procedimento per Debian ma nella cartella del boot non vedo i nuovi file. Come faccio a sapere se questo succede perchè non ci sono aggiornamenti?

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Re: Aggiornamento del Kernel
« Reply #2 on: January 11, 2011, 09:40:27 pm »
Nel caso di Debian i file del kernel dovrebbero essere stati sovrascritti con lo stesso nome. Per favore dai questo comando e posta qua il risultato:

Code: [Select]
ls -al /boot

brumbrum

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Aggiornamento del Kernel
« Reply #3 on: January 11, 2011, 10:16:14 pm »
Code: [Select]
ls -al /boot
total 16664
drwxr-xr-x  3 root root    4096 Nov 30 05:20 .
drwxr-xr-x 21 root root    4096 Nov 18 18:59 ..
-rw-r--r--  1 root root  885190 Nov 24 14:15 System.map-2.6.24-28-xen
-rw-r--r--  1 root root   85236 Nov 24 14:15 config-2.6.24-28-xen
drwxr-xr-x  2 root root    4096 Nov 30 05:20 grub
-rw-r--r--  1 root root 7149469 Nov 30 05:20 initrd.img-2.6.24-28-xen
-rw-r--r--  1 root root 7149704 Nov 18 19:02 initrd.img-2.6.24-28-xen.bak
-rw-r--r--  1 root root 1735287 Nov 24 14:15 vmlinuz-2.6.24-28-xen
root@vps-0075:~#

Eccolo!

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Re: Aggiornamento del Kernel
« Reply #4 on: January 12, 2011, 12:46:47 pm »
Che cosa ti da il comando uname -a ?

E questo comando invece?

apt-cache search kernel-image

brumbrum

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Aggiornamento del Kernel
« Reply #5 on: January 13, 2011, 05:03:17 pm »
Ecco le risposte ai comandi:

Code: [Select]
root@vps-0075:~# uname -a
Linux vps-0075.flarevm.net 2.6.24-28-xen #1 SMP Wed Nov 24 11:59:14 UTC 2010 i686 GNU/Linux

Code: [Select]
kernel-package - A utility for building Linux kernel related Debian packages.
comedi-source - Comedi kernel module source

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Re: Aggiornamento del Kernel
« Reply #6 on: January 13, 2011, 05:17:28 pm »
non mi pare sia stato aggiornato.

prova a dare apt-cache search kernel image

dovresti ottenere una lista dei kernel disponibili.

dovrebbe essercene uno del tipo linux-image-2.6-xen-amd64

installalo.

Una volta installato dovresti trovare in /boot i nuovi file o comunque vedrai che i vecchi sono stati sovrascritti.

brumbrum

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Aggiornamento del Kernel
« Reply #7 on: January 26, 2011, 07:29:47 pm »
Chiedo venia per la lunga assenza. Riprendiamo il discorso. Ho installato direttamente il kernel di mio interesse e ad un certo punto mi è stato chiesto cosa fare con il menu.lst che era stato cambiato. Ho scelto di non fare nulla e di modificare manualmente il file. Cosa che ho fatto causando, ovviamente (!!!), il blocco della VPS!

Ora provo ad avviare la console di ripristino....forse era meglio far si che il file menu.lst venisse modificato in automatico?

brumbrum

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Aggiornamento del Kernel
« Reply #8 on: January 26, 2011, 08:42:17 pm »
Tra l'altro non riesco a far funzionare il ripristino...ho ricevuto le email con le nuove password ma non riesco a connettermi. Suggerimenti?

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Re: Aggiornamento del Kernel
« Reply #9 on: January 27, 2011, 02:46:04 pm »
Ciao,

abbiamo risolto il problema con il rescue mode.

brumbrum

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Aggiornamento del Kernel
« Reply #10 on: January 27, 2011, 06:35:01 pm »
Problema risolto e kernel aggiornato con successo.

Grazie

scuottolinx

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Aggiornamento del Kernel
« Reply #11 on: April 12, 2011, 09:35:01 pm »
io invece ho ancora il problema....

questi sono i miei uname

Code: [Select]
Linux vps-0022.flarevm.net 2.6.32-5-amd64 #1 SMP Mon Mar 7 21:35:22 UTC 2011 x86_64 GNU/Linux

ma il problema principale è:

Code: [Select]
warning: grub-probe can't find drive for /dev/xvda2.
grub-probe: error: cannot find a GRUB drive for /dev/xvda2.  Check your device.map.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.32-5-amd64.postinst line 799, <STDIN> line 2.
dpkg: error processing linux-image-2.6.32-5-amd64 (--configure):
 subprocess installed post-installation script returned error exit status 2
configured to not write apport reports
                                      Errors were encountered while processing:
 linux-image-2.6.32-5-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Re: Aggiornamento del Kernel
« Reply #12 on: April 13, 2011, 12:17:02 am »
ciao,

esegui la seguente procedura. Ho provato e funziona.

1. esegui il seguente comando:

Code: [Select]
mknod /dev/xvda b 202 0
2. apri il file /boot/grub/device.map

e sostituisci:

Code: [Select]
(hd0) /dev/sda
con

Code: [Select]
(hd0) /dev/xvda
3. apri il file /usr/sbin/update-grub

cerca:

Code: [Select]
find_device ()
{
        if ! test -e ${device_map} ; then
                echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null
        fi
        grub-probe --device-map=${device_map} -t device $1 2> /dev/null
}

e cambialo in:

Code: [Select]
find_device ()
{
        if ! test -e ${device_map} ; then
                echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null
        fi
        #grub-probe --device-map=${device_map} -t device $1 2> /dev/null

        echo /dev/xvda
}

4. esegui:

Code: [Select]
update-grub 0
5. apri il file /boot/grub/menu.lst

e assicurati che all'inizio ci sia qualcosa tipo:


Code: [Select]
default=0
timeout=5
title Debian Squeeze
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-5-amd64 ro root=/dev/xvda2 console=hvc0
        initrd /boot/initrd.img-2.6.32-5-amd64

e' molto importante la parte

Code: [Select]
root=/dev/xvda2
deve essere esattamente cosi' altrimenti la vps non si riavviera'.

6. esegui infine:

Code: [Select]
apt-get upgrade
Credits:

http://www.sysadmintalk.net/forums/Thread-PyGrub-grub-probe-can-t-find-drive-for-dev-xvda1-error-Debian-Squeeze
« Last Edit: April 13, 2011, 12:21:46 am by Whitenoise »

scuottolinx

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Aggiornamento del Kernel
« Reply #13 on: April 13, 2011, 08:10:58 am »
Grandissimo,

i punti che hanno sistemato il tutto sono il 2 ed il 3 che però non si è capito come siano saltati.

Ottima guida passo passo.

Serissimo! Congratulazioni, servizio eccellente

Whitenoise

  • Administrator
  • Full Member
  • *****
  • Posts: 149
    • View Profile
Re: Aggiornamento del Kernel
« Reply #14 on: April 13, 2011, 08:34:50 am »
ciao, grazie.

il problema e' che grub non si rende conto che si trova in un ambiente xen e quindi non riesce a mappare correttamente i dischi. sto vedendo se c'e' una soluzione che eviti di dove fare queste modifiche manualmente.