Upgrade the kernel from CentOS 5.1 to CentOS 5.2

It is supposed to be as easy as

yum -y upgrade

by right.. if everything goes fine.. you shall be able to boot the new kernel after reboot when all the process complete..

just want to share my experience.. I got 8box to upgrade.
all from 2.6.18-53.1.4.el5 .. (CentOS 5.1 )

going to .. 2.6.18-92.el5 (CentOS 5.2 )

the first one..  I was kinda too lazy.

wget the CentOS-5.2-DVD.iso

put & mount it on shared storage..

mkdir -p /opt/nismos/data/setup/c52
mount -o loop /opt/nismos/data/setup/iso/CentOS-5.2-DVD.iso /opt/nismos/data/setup/c52

edit the yum.repo  config to reflect

[nismosupgrade]
baseurl=file:///opt/nismos/data/setup/c52/updates/i386
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta

and  do

yum clean all
yum --disablerepo \* --enablerepo nismosupgrade upgrade -y

the moment pressing enter..

first-upgrade.png
[ad#postad]

While it start Transaction check.. bla..bla..

few second after..gone.. the keyboard got numlock & caplock blinking non-stop..

no response to ping .. bla..bla.. i think got kernel panic.

pull out power.. and restart the box..

now to get it real upgrade.. (i guess it cannot link to NFS or something)

cp /opt/nismos/data/iso/CentOS-5.2-DVD.iso /root

stop whatever cluster service remove the shared storage mounting..

umount /opt/nismos/data
mkdir -p /media/c52
mount -o loop/root/CentOS-5.2-DVD.iso /media/c52

edit the yum.repo to have this.


baseurl=file:///media/c52

then re-run


yum --disablerepo \* --enablerepo nismosupgrade upgrade -y

.. got 500+ packages to update & install .. bla..bla..

explain to the client representative.. it may took a bit some time to complete..

wait..and come back.. it stated Completed !

verify the /etc/grub.conf to boot the 5.2 kernel.

reboot and wait..

few minute later.. it is up and running..

verify the clustat .. check the NFS mount.. nfsstat.. seem fine..

yay!.. time to proceed with next box..

the app2 …

copy in the iso into local.. mount.. edit yum.
stopping cluster related service .. un-mount shared storage..
yum clean all
and repeat the yum upgrade..

somehow this one stuck at installing kernel..
kernel-stuck-mkinitrd.jpg
not moving..
top..
mk0100cpu.png
the perl got 100% cpu load.. (this machine got 8Gb memory )..

source : http://www.linuxquestions.org/questions/linux-kernel-70/yum-update-stopped-responding-during-kernel-update-install-now-server-load-is-high-693865/

wait for another half an hour.. still at the same stage..
ps xa ..
mkinit-2.png
saw the it was looping at mkinitrd ..
stupid-mkinitrd.png
.. hmm.. don’t know what to do .. press Ctrl+c (** my mistake, i think should’nt do this..)
stopping the upgrade..

and re-run..


yum --disablerepo \* --enablerepo nismosupgrade upgrade -y

got error.. unable to proceed.. yum got python script failed..
hahaha..

[root@app2 CentOS]# yum upgrade --disablerepo \* --enablerepo nismosupgrade
Loading "installonlyn" plugin
Loading "fastestmirror" plugin
Setting up Upgrade Process
Setting up repositories
Determining fastest mirrors
Reading repository metadata in from local files
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.main(sys.argv[1:])
File "/usr/share/yum-cli/yummain.py", line 94, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 381, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 353, in doCommand
return base.updatePkgs(extcmds)
File "/usr/share/yum-cli/cli.py", line 685, in updatePkgs
obsoleting_pkg = self.getPackageObject(obsoleting)
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 1473, in getPackageObject
pkgs = self.pkgSack.searchPkgTuple(pkgtup)
File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 66, in searchPkgTuple
return self.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)
File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 232, in searchNevra
return self._computeAggregateListResult("searchNevra", name, epoch, ver, rel, arch)
File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 369, in _computeAggregateListResult
sackResult = apply(method, args)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 574, in searchNevra
returnList.append(self.pc(rep,self.db2class(x)))
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 431, in db2class
y.checksum = {'pkgid': 'YES','type': db.checksum_type,
File "/usr/lib/python2.4/site-packages/sqlite/main.py", line 97, in __getattr__
raise AttributeError, key
AttributeError: CHECKSUM_VALUE

google the error msg.. it stated need to manually update the yum..

cd /media/c52/CentOS
rpm -Uvh yum-3.2.8-9.el5.centos.1.noarch.rpm yum-updatesd-0.9-2.el5.noarch.rpm

.. then able to re-run the yum upgrade..

but still stuck at the kernel..
kill the mkinitrd few time.. it proceed to install the rest of the installation package..

google for the mkinitrd problem.. saw somewhere ..
it stated the 5.2 mkinitrd got bug with REGRESSION thingy .. unable to compile the new initrd ..
source : http://bugs.centos.org/view.php?id=2914
https://bugzilla.redhat.com/show_bug.cgi?id=447841

download the patch.. patch the /sbin/mkinitrd
with


cd /sbin/
patch -P0 < /root/mkinitrd.CentOS-5.2.patch

and remove the unsuccessful new kernel

rpm -e kernel-2.6.18-92.el5PAE

and re-install it back..

rpm -Uvh /media/c52/CentOS/kernel-PAE-2.6.18-92.el5.i686.rpm

this time have to wait for the mkinitrd to finish.. but it did’nt show the 101% CPU load anymore..
and .. Completed.
verify the /etc/grub.conf

reboot the box..and verify.. seem fine.. proceed to the 3rd box.

hmm… now i guessing it was better to upgrade the kernel first and exclude the mkinitrd as it is making such problem.


yum --disablerepo \* --enablerepo nismosupgrade upgrade kernel -y
yum --disablerepo \* --enablerepo nismosupgrade upgrade kernel-PAE -y

success

yum --disablerepo \* --enablerepo nismosupgrade upgrade --exclude mkinitrd

reboot.. done. not much problem.. hmm…
then only upgrade the mkinitrd after the reboot.

the 4th …5th.. 6th… 7th
time’s up.. it is now at 1650H .. the client representative might have to leave the office in next 10minute..

called him.. explain that only left 1 server did’nt upgrade.. can check service status if it is fine.. bla..bla. he is signing out..
Hmm.. my colleague .. working in other project also leaving the server room, he said going back to office as the ATSB staff also want to go off..
dsc01441.JPG
now I am all alone..
with the last box to upgrade.. (db2)..

migrating all the db cluster process to the other node. (stopping all client cluster process first.. umount all client.. then only move the cluster)..
now got problem.. failed to umount NFS service properly ..it killed the db host ..! rebooting..
wait.. disable-enable the db services.. successfully restarted it..

Upgrading the last db.. while upgrade.. everything fine.. went smoothly until it stuck at kmod-gfs-PAE .. hmm.. after a while..
finished.. reboot.. while it going down.. it also fenced the other fellow once again…
this time with the NFS client still using it.. i thought it will suck big time..

then … the last host unable to boot.. got kernel panic. VFS thingy.. owhhh shit..
kernel-panic-vfs2.jpg
the other fellow can boot up.. but unable to start the db-service as it will ssh to the other fellow to mount it shared also …
tweak a bit .. prevent it ssh’d to others.. NFS partion not clean.. recommend to run e2fsck..
wooo hoo..
run a

e2fsck /dev/sda

735.0 Gb..

got some error.. prompt to fix.. bla..bla..
e2fsck.jpg
hmm.. no one calling yet.. almost 1900H.
e2fsck2.jpg
inode-orphaned.jpg
then completed the e2fsck .. successfully re-run the db-service with one node.. forgot to start the postgresql.. so the webserver did’nt functioning yet..
the other is fine.. a few minute later only realized.. then manually start the postgresql service.. making a note to fix it later.

now fixing the db1 kernel panic..
what to do..?
try boot to the old kernel.. also got same error. unable to find initrd
trying with manually key-ed in the initrd parameter.. still unsuccesful..
read something.. it said need to boot with rescue cd and re-run mkinitrd as the missing/corrupted initrd files..

source : http://help.lockergnome.com/linux/VFS-open-root-device-hda1-unknown-block-ftopict396006.html

where the heck to get CentOS-5.2-DVD at server room?.. did’nt bring any of the blank DVD at that moment..

hmm.. think again.. now I remember..
at the earlier time in the morning.. saNi asked if got CentOS-5.2-DVD..
i’d answer don’t have any DVD.. but got iso image .. can help to burn a CentOS-5.2-DVD.iso for him..
he provide the blank DVD and I did burned for him.. as he said installing to the new server.. at the back of my server ..did’nt bother much..

at this time .. 1900H.. he was out of office already.. went at the back of server room.. see if his machine and DVD still there..
luckily .. it was there.. the screen was requesting for removing the media DVD and reboot the machine to complete the installation..

hahaha.. I pull out the DVD.. did’nt reboot the machine though..

now going to linux rescue..
rescue-modedb2.jpg

chroot /mnt/sysimage

hmm.. how to re-run mkinitrd?

nevermind.. go re-install the kernel instead..

succeed.. and it asked to re-install the grub.. without further thinking.. answered yes..

exit..

system rebooting.. bla..bla..
now it is not kernel panic.. but

got just

GRUB

on the screen..
stuck-at-grub.jpg
owh shit..

going to rescue mode another round..

fdisk -l

re-run

grub-install --recheck /dev/cciss/c0d0p1

it spit the device.map something asked to verify and correct if it was wrong..
dsc01454.JPG
now . noticed got something funny …


hd(0,0) /dev/sda

booting to shared storage ???
changed to this..

# manually edited by .namran on 31st December 2008 .on new year eve..
(hd0) /dev/cciss/c0d0

and re-run grub-install

reboot..

yay… can boot with new kernel successfully ..

the time.. 1930H.. hmm.. going to fix db-service cluster.. why it does’nt start the postgresql.. and failed the dhcp.

and … stop , start db-service.. then realized..

whenever cluster service got more than one child script..

it did’nt properly killed the child first before killing the parent..
if only one it work just fine..

hmm.. tweaking it a bit.. to run whatever other service in just one child..
test… worked!!..

1945H.. got sms.. client complain unable to use webserver..

refreshing the webpage.. seem ok.. i think he was checking while i am doing the test with db-service or while I was fixing the db..

replied the sms to get him re-check..

almost 2000H… verify everything was ok.. nfsstat.. client service.. bla.. bla..

now got email also.. did’nt notice got email regarding this upgrade before.. replied to the email..

sending another sms out ..stating Job Done..leaving the server room within 5 minute.

wait.. 5 minute.. no reply .. no nothing.. so it is okay..

signing off from server room..

Happy new year 2009.!

Related Post

5 Responses

  1. ffrancesco says:

    It runs perfect on my Centos 5.3! thank you.

    Reply
  2. jd says:

    [root@localhost ~]# yum install obexftp gnome-bluetooth
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: http://ftp.cuhk.edu.hk
    * updates: http://ftp.cuhk.edu.hk
    * addons: http://ftp.cuhk.edu.hk
    * extras: http://ftp.cuhk.edu.hk
    Setting up Install Process
    Parsing package install arguments
    No package obexftp available.
    Resolving Dependencies
    –> Running transaction check
    —> Package gnome-bluetooth.i386 0:0.7.0-10.2.el5 set to be updated
    –> Processing Dependency: gnome-bluetooth-libs = 0.7.0-10.2.el5 for package: gnome-bluetooth
    –> Processing Dependency: libopenobex.so.1 for package: gnome-bluetooth
    –> Processing Dependency: libgnomebt.so.0 for package: gnome-bluetooth
    –> Processing Dependency: libbtctl.so.2 for package: gnome-bluetooth
    –> Running transaction check
    —> Package openobex.i386 0:1.3-3.1 set to be updated
    —> Package gnome-bluetooth-libs.i386 0:0.7.0-10.2.el5 set to be updated
    —> Package libbtctl.i386 0:0.6.0-9.2.el5 set to be updated
    –> Finished Dependency Resolution

    Dependencies Resolved

    ================================================================================
    Package Arch Version Repository Size
    ================================================================================
    Installing:
    gnome-bluetooth i386 0.7.0-10.2.el5 base 235 k
    Installing for dependencies:
    gnome-bluetooth-libs i386 0.7.0-10.2.el5 base 65 k
    libbtctl i386 0.6.0-9.2.el5 base 44 k
    openobex i386 1.3-3.1 base 21 k

    Transaction Summary
    ================================================================================
    Install 4 Package(s)
    Update 0 Package(s)
    Remove 0 Package(s)

    Total download size: 365 k
    Is this ok [y/N]: y
    Downloading Packages:
    (1/4): openobex-1.3-3.1.i386.rpm | 21 kB 00:00
    (2/4): libbtctl-0.6.0-9.2.el5.i386.rpm | 44 kB 00:01
    (3/4): gnome-bluetooth-libs-0.7.0-10.2.el5.i386.rpm | 65 kB 00:01
    (4/4): gnome-bluetooth-0.7.0-10.2.el5.i386.rpm | 235 kB 00:02
    ——————————————————————————–
    Total 26 kB/s | 365 kB 00:14
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing : openobex [1/4]
    Installing : libbtctl [2/4]
    Installing : gnome-bluetooth-libs [3/4]
    Installing : gnome-bluetooth [4/4]

    Installed: gnome-bluetooth.i386 0:0.7.0-10.2.el5
    Dependency Installed: gnome-bluetooth-libs.i386 0:0.7.0-10.2.el5 libbtctl.i386 0:0.6.0-9.2.el5 openobex.i386 0:1.3-3.1
    Complete!
    [root@localhost ~]# sdptool browse
    Inquiring …
    Browsing 00:1E:37:69:33:A7 …
    Browsing 00:24:7E:21:FF:BB …
    Browsing 00:1E:37:6E:BE:F3 …
    Service Name: Bluetooth Serial Port
    Service RecHandle: 0x10000
    Service Class ID List:
    “Serial Port” (0x1101)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 1
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Serial Port” (0x1101)
    Version: 0x0100

    Service Name: Network Access
    Service RecHandle: 0x10001
    Service Class ID List:
    “PAN Group Network” (0x1117)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 15
    “BNEP” (0x000f)
    Version: 0x0100
    SEQ8: 0 6 dd
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “PAN Group Network” (0x1117)
    Version: 0x0100

    Service Name: Network Access
    Service RecHandle: 0x10002
    Service Class ID List:
    “PAN User” (0x1115)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 15
    “BNEP” (0x000f)
    Version: 0x0100
    SEQ8: 0 6 dd
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “PAN User” (0x1115)
    Version: 0x0100

    Service Name: Dial-up Networking
    Service RecHandle: 0x10003
    Service Class ID List:
    “Dialup Networking” (0x1103)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 2
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Dialup Networking” (0x1103)
    Version: 0x0100

    Service Name: PIM Item Transfer
    Service RecHandle: 0x10004
    Service Class ID List:
    “OBEX Object Push” (0x1105)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 3
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “OBEX Object Push” (0x1105)
    Version: 0x0100

    Service Name: File Transfer
    Service RecHandle: 0x10005
    Service Class ID List:
    “OBEX File Transfer” (0x1106)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 4
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “OBEX File Transfer” (0x1106)
    Version: 0x0100

    Service Name: Fax
    Service RecHandle: 0x10006
    Service Class ID List:
    “Fax” (0x1111)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 5
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Fax” (0x1111)
    Version: 0x0100

    Service Name: PIM Synchronization
    Service RecHandle: 0x10007
    Service Class ID List:
    “IrMC Sync” (0x1104)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 6
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “IrMC Sync” (0x1104)
    Version: 0x0100

    Service Name: Sync Command Service
    Service RecHandle: 0x10008
    Service Class ID List:
    “IrMC Sync Command” (0x1107)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 6
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “IrMC Sync” (0x1104)
    Version: 0x0100

    Service Name: Headset
    Service RecHandle: 0x10009
    Service Class ID List:
    “Headset” (0x1108)
    “Generic Audio” (0x1203)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 7
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Headset” (0x1108)
    Version: 0x0100

    Service Name: Stereo Audio
    Service RecHandle: 0x1000a
    Service Class ID List:
    “Audio Sink” (0x110b)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 25
    “AVDTP” (0x0019)
    uint16: 0x100
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Advanced Audio” (0x110d)
    Version: 0x0100

    Service RecHandle: 0x1000b
    Service Class ID List:
    “AV Remote Target” (0x110c)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 23
    “AVCTP” (0x0017)
    uint16: 0x100
    Profile Descriptor List:
    “AV Remote” (0x110e)
    Version: 0x0100

    Service Name: Audio Source
    Service RecHandle: 0x1000c
    Service Class ID List:
    “Audio Source” (0x110a)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 25
    “AVDTP” (0x0019)
    uint16: 0x100
    Profile Descriptor List:
    “Advanced Audio” (0x110d)
    Version: 0x0100

    Service Name: Bluetooth Imaging
    Service RecHandle: 0x1000d
    Service Class ID List:
    “Imaging Responder” (0x111b)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 8
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Imaging” (0x111a)
    Version: 0x0100

    Service Name: Audio Gateway
    Service RecHandle: 0x1000e
    Service Class ID List:
    “Headset Audio Gateway” (0x1112)
    “Generic Audio” (0x1203)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 9
    Profile Descriptor List:
    “Headset” (0x1108)
    Version: 0x0100

    Service Name: Audio Gateway
    Service RecHandle: 0x1000f
    Service Class ID List:
    “Handfree Audio Gateway” (0x111f)
    “Generic Audio” (0x1203)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 10
    Profile Descriptor List:
    “Handsfree” (0x111e)
    Version: 0x0101

    Browsing 00:21:86:C2:4B:5A …
    Failed to connect to SDP server on 00:1E:37:69:1F:51: Host is down
    Browsing 00:24:7E:98:97:23 …

    ********************QUESTION*********************
    why it shows that no package obexftp available

    and after that what is that hanphone…????

    can u post it with few more screenshot of commands also…so that its get easyyyyyyyy
    waitingggggggggggggggggg….
    thanxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Reply
  3. jd says:

    obexfs command not found…
    how to resolve???
    yum installation not workingggggggg
    what to doooooooo???

    Reply
  4. crisstm says:

    Well.
    I install with succes all in centos 5.4 the latest version with latest update and when i type obex:// in my computer address :
    Nautilus cannot disply “obex:///”
    Please select another viewer and try again.
    ???

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *