Next Previous Contents

2. アップグレードする前に

カーネルのアップグレードは難解なため、絶対に必要な時にのみ実施 するのがよいでしょう。それは普通は次のような理由がある場合です:

2.1 何が必要か調べる

注意: アップグレードする前に、/boot にカーネルを格納するための 十分な空き容量があることを確認してください! カーネルをアップグレードする通常の手順は、まずマシンに既にインス トールされているものを調べ、それとマシンが必要としているものとを 比較します。システムにインストールされているものは、rpm コマンドを使って調べることができます。アップグレードに失敗しない ように、 Red Hat から 最新の RPM ファイルを入手していることを確認する必要が あります。

Red Hat Linux 5.2, 6.x, 7.0 がインストールされているマシンでは、最初にどの バージョンのカーネル RPM がインストールされているか調べます。 そして、インストールされているバージョンを記録に取っておきます。


   $ rpm -q kernel kernel-headers kernel-ibcs kernel-pcmcia-cs kernel-source

   kernel-2.0.36-0.7
   kernel-headers-2.0.36-0.7
   kernel-ibcs-2.0.36-0.7
   kernel-pcmcia-cs-2.0.36-0.7
   kernel-source-2.0.36-0.7

   $ rpm -q mkinitrd SysVinit initscripts

   mkinitrd-1.8-3
   SysVinit-2.74-5
   initscripts-3.78-1

            

リリース 4.2 を使用しているマシンでは、リリース 5.x 系列で パッケージ名の変更が行われているため、問い合わせの書式を 若干修正します。


   $ rpm -q kernel kernel-headers kernel-source iBCS pcmcia-cs

   kernel-2.0.35-0
   kernel-headers-2.0.35-0
   kernel-modules-2.0.35-0
   kernel-source-2.0.35-0
   iBCS-2.0-8
   pcmcia-cs-2.9.12-0


   $ rpm -q mkinitrd SysVinit initscripts

   mkinitrd-1.7-1
   initscripts-2.96-1
   SysVinit-2.64-8

            

2.2 アップデートファイルを入手する

アップグレードの次の手順はシステムに合った最新のアップデートを 入手することです。私は通常 ftp://updates.redhat.com を使用しますが、混んでいる場合は、 ミラーサイト を利用した方がよいでしょう。

FTP サイトにある RPM ファイルのリストを、お使いのマシンにインス トールされている RPM ファイルのリストと比較します。FTP サイトに ある RPM ファイルの改版番号の方が大きければ、その RPM ファイルを ダウンロードします。対応するパッケージがリストになくても、それを 気にする必要はありません。

WEB ブラウザではいくつものファイルをダウンロードするには不向き なようなので、アップデートサイトに接続する時は FTP クライアント プログラムを使用することをお勧めしています。私は Linux では ncftp を使用しています。


  $ ncftp -L updates.redhat.com
  NcFTP 2.4.3 (March 19, 1998), by Mike Gleason.
  Tip: Use the "more" command to view a remote file with your pager.

  Trying to connect to ftp.redhat.com...
  ProFTPD 1.2.0pre1 Server (ProFTPD) [ftp.redhat.com]
  Anonymous access granted, restrictions apply.
  ncftp / > cd 5.2/en/os/i386
  ncftp ...5.2/en/os/i386 > ls kern* mkinit* iBCS* pcmcia* init* SysV*
    kernel-2.0.36-3.i386.rpm               kernel-pcmcia-cs-2.0.36-3.i386.rpm
    kernel-headers-2.0.36-3.i386.rpm       kernel-source-2.0.36-3.i386.rpm
    kernel-ibcs-2.0.36-3.i386.rpm
  ncftp ...5.2/en/os/i386 > mget kernel-*rpm  
            

ダウンロードがうまく行かない場合は、mget の代わりに get -C を使用するとよいでしょう。これで ncftp は完全なファイルが手に入るまでダウンロードを継続するように なります。

2.3 4.x, 5.x, 6.x ユーザの方への注意:

まだこれまでに FTP サイトを利用してお使いのシステムをアップ デートしたことがなければ、新しい RPM ファイルを検査、インス トールするのに rpm パッケージをアップグレードしな ければならないでしょう。

rpm のアップグレードの方法は非常に簡単です。インス トールされている RPM のバージョンを調べます。これと FTP サイトにあるアップデートのバージョン番号を比較します。FTP サイトにある方が新しいバージョンの場合は、それをダウンロード してパッケージをアップグレードする必要があります。手短に言うと:


              $ rpm -q rpm rpm-devel
              rpm-2.5.5-5.2
              rpm-devel-2.5.5-5.2
              $ ncftp -L updates.redhat.com
              > cd 5.2/en/os/i386
              > get rpm*
              > quit
              $ rpm -Uvh rpm*rpm

            

バージョンがかけ離れている場合(2.3 から 2.5 にアップグレード する場合など)は、アップグレードした後に以下の手順を実行する ことをお勧めします。

              $ rpm --rebuilddb
            

この最後の手順により、バージョン間のデータベース構造の違い (あるいは一部のデータベースが壊れてしまった状況)から生じる問題が 解決されます。この書き換え作業は RPM の根本的な部分を処理している ため、しばらく時間がかかります。

バージョン 6.x のマシンのRPMを最新のものにアップデートするのはやや難しいでしょう。 それを行う場合は、 Using Red Hat Network with Red Hat Linux 6.2. を参照して下さい。

2.4 RPM ファイルの検査

RPM パッケージをダウンロードする際に最も困ることは途中で ファイルが壊れてしまうことです。カーネルをアップグレード する場合には、マシンが起動しなくなる可能性もあるため、 困る程度の話では済みません。

システム管理者の負担を軽くするため、RPM には自分自身の完全性を 検査するための仕組みが用意されています。7.0 より前のシステムでは、この時に、 -K --nopgp オプションを使用します。私のリリース 5.2 の システムでパッケージをダウンロードした時には RPM から次のような 応答が返って来ました。


   $ rpm -K --nopgp *rpm
   kernel-2.0.36-1.i386.rpm: size md5 OK
   kernel-headers-2.0.36-1.i386.rpm: size md5 OK
   kernel-ibcs-2.0.36-1.i386.rpm: size md5 OK
   kernel-pcmcia-cs-2.0.36-1.i386.rpm: size md5 OK
   kernel-source-2.0.36-1.i386.rpm: size md5 OK


Red Hat Linux 7.0 以降のシステムの場合は、GPG への変更に伴い、 コマンドのオプションが若干異なります。以下のコマンドを実行して下さい。:


   $ rpm -K --nogpg *rpm


RPM のバージョンの異なるパッケージが混在することを考慮して、 Red Hat Linux 7.0では、両方のオプションの使用が可能です。

全ての rpm パッケージから正しい md5sum を得ることができたら、 先に進むことができます。正しくない場合は再度ダウンロードが 必要です。私の経験では、何度も失敗する場合には、違うミラーで ダウンロードしてみるとよいでしょう。なぜなら、ダウンロードして いたサイトへのネットワーク接続のトラブルや途中の経路に介在する キャッシュに壊れたコピーが入っているために問題が生じているかも しれないからです。

2.5 緊急ブートフロッピーの作成

インストール前の最後の手順は緊急ブートフロッピーの作成です。 (まだ作成していない場合に必要です。) リリース 5.x および 6.0 マシンでは簡単で、 mkbootdisk コマンドを実行するだけです。

まず現在使用しているカーネルが何かを調べます。 /etc/lilo.conf ファイルを見て、どのイメージを使ってブート しているかを調べます。私が例に使用している 5.2 マシンでは、 このファイルに次のような行が書いてあります。


  $ cat /etc/lilo.conf 
  boot=/dev/hda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  image=/boot/vmlinuz-2.0.36-0.7
        label=linux
        root=/dev/hda9
        initrd=/boot/initrd-2.0.36-0.7.img
        read-only
  other=/dev/hda1
        label=dos
        table=/dev/hda

            

これを見ると、どのイメージからブートしたかが分かります。 標準インストールでは、linux というラベルが付けられて います。上記の例では /boot/vmlinuz-2.0.36-0.7 カーネル を使用して起動したことが分かります。それではフォーマット済みの 1.44 MB フロッピーをシステムにセットします。root でログイン していることを確認してください。


  # whoami
  root
  # mkbootdisk --device /dev/fd0 2.0.36-0.7
  Insert a disk in /dev/fd0. Any information on the disk will be lost.
  Press <Enter> to continue or ^C to abort: 

            

上記のガイドラインに従って、アップグレード時のトラブルに備える ための、動作することを確認しているカーネルの入ったブートフロッピー を作ることができます。このフロッピーを使ってシステムを再起動して みて、正しく動作することを確認することをお勧めします。


Next Previous Contents