aquadrops *

Technologies and Labs, Lifelog and more.

2008-11-01

yumだけでCentOS4 から CentOS5にアップデートする方法

遠く(広島)にハウジングしてあるCentOS4なサーバーを5にアップグレードしたいのですが、いちいち機材を送り返してもらうのも面倒なので、遠隔でできない事か、と思っていたのですが、

Yum Install CentOS-5 (Upgrade from CentOS 4.4 to CentOS 5)

という記事を見つけたので、これを元にやってみました。

まずは失敗してもいいように、手元のParallels上のCentOS4.6を5.2に変えてみます。

普段ほとんど起動していないので、CentOS4.6/kernel-2.6.9-55.0.9.plus.c4 なちょっと古い環境です。

流れとしてはこんな感じ。

  1. centos-release-5のインストール
  2. CentOS-Base.repoをリネーム
  3. kernelとnfs-utilsをリムーブ
  4. yumのキャッシュをクリア
  5. rpmをアップグレード
  6. reboot

実際の手順。

  1. centos-release-5のインストール
    rpmコマンドでインストールします。
> rpm -Uvh http://ftp.iij.ad.jp/pub/linux/centos/5.2/os/i386/CentOS/centos-release-5-2.el5.centos.i386.rpm http://ftp.iij.ad.jp/pub/linux/centos/5.2/os/i386/CentOS/centos-release-notes-5.2-2.i386.rpm

バージョンは随時上がっているので、もしNot Foundが返って来た場合は適宜入れ替えて下さい。</li> 

  * **CentOS-Base.repoをリネーム**  
    centos-release-5をインストールすると、CentOS-Base.repo.rpmnewが生成されているので、入れ替えます。

    > cd /etc/yum.repos.d/

    > mv CentOS-Base.repo CentOS-Base.repo.CentOS4

    > mv CentOS-Base.repo.rpmnew CentOS-Base.repo

  * **kernelとnfs-utilsをリムーブ**  
    自分の環境ではupgradeした時にconfrictを起こしていたので、それぞれ rpm -e します。

    マルチCPU環境ではkernel-smpも消しましょう。

    前述のURLの方の環境ではhalも削除していましたが、僕の環境では削除しなくても大丈夫でした。</p> 
    rpm -qa|grep kernelして出て来たkernelは全て削除します。
    
    > rpm -e &#8211;nodeps &#8211;justdb kernel-2.6.9-55.0.9.plus.c4 kernel-2.6.9-42.0.8.plus.c4 kernel-2.6.9-55.0.2.EL kernel-2.6.9-55.0.12.plus.c4 kernel-2.6.9-42.0.3.EL kernel-2.6.9-42.0.8.EL kernel-2.6.9-55.0.2.plus.c4 kernel-2.6.9-55.0.6.plus.c4 kernel-2.6.9-67.0.20.plus.c4 kernel-2.6.9-67.0.7.plus.c4 kernel-2.6.9-42.0.3.plus.c4 kernel-2.6.9-42.0.10.plus.c4 kernel-2.6.9-55.EL kernel-2.6.9-55.plus.c4 kernel-2.6.9-42.EL

    > rpm -e &#8211;nodeps &#8211;justdb nfs-utils

  * **yum のキャッシュをクリア**

    > yum clean all

  * **rpmをアップグレード**

    > yum upgrade
    
    環境にもよりますが30分程度掛かります。</li> 
    
      * **reboot**  
        rebootの前に /etc/grub.conf を確認しておきます。2008/11/02時点での最新カーネルは 2.6-18-92.1.13.el5 です。

        > title CentOS (2.6.18-92.1.13.el5)

        > root (hd0,0)

        > kernel /vmlinuz-2.6.18-92.1.13.el5 ro root=/dev/VolGroup00/LogVol00

        > initrd /initrd-2.6.18-92.1.13.el5.img
        
        ↑これが最初に来ていて、default=0だったら大丈夫。
        
        これでrebootしてみます。
        
        [<img class="alignnone size-medium wp-image-728" title="e38394e382afe38381e383a3-2" src="/images/uploads/2008/11/e38394e382afe38381e383a3-2-300x232.png" alt="" width="300" height="232" srcset="/images/uploads/2008/11/e38394e382afe38381e383a3-2-300x232.png 300w, /images/uploads/2008/11/e38394e382afe38381e383a3-2.png 682w" sizes="(max-width: 300px) 100vw, 300px" />][2]
        
        無事、CentOS5が起動しましたね。</li> </ol> 
        
        OS自体は起動しましたが、パッケージによっては大きくバージョンアップしているものがありますので、設定を修正する必要がある場合もあります。。
        
        その辺りはまた追々。