CentOS5.1を低スペックPCにインストールする方法
はじめに/目的
この記事は無償で公開していますが、ご意見・ご感想・ご指摘などは大歓迎です!
以下のように、古くて低スペックなPCへLinux(CentOS5.1)を導入する事にしました。
(結果的にはブートローダについて学習できましたが・・・・)
- CPU:Cyrix MediaGX(120MHz)
- RAM:64MB(Max64MB)
- I/F:VGA, K/B, Mouse, LAN(1), RS232C(1), Parallel(1), LineIN/OUT, Mic
- 拡張スロット:ISA(1)
これは弊社設立時に稼働していたインターネットサーバで、これ1台でDNS, Web, SMTP, POP, etc. が動作していました。その後、ブロードバンド環境移行時にお役ご免となっていたものです。今となってはファイルサーバくらいになるかもしれません。今回は社内用のDNSサーバとして稼働させようかなと考え、生還の可能性が出てきた訳ですが果たして・・・・。
問題
早速だけど、次のような問題が発生してしまいました。
- CD/DVDブートが出来ない
- ATAは1つでスレーブ側に接続出来ます(マスタはHDD)が、マザーボードがCDブートに対応していないので×
- フロッピー接続が出来ない
- ネットワークブートが出来ない
- 最初はPXEによるネットワークブートも考えましたが、これまた非対応なので×
- 接続方法がない(マザーボードにコネクタが無く、USB端子ももちろんない)ので×
以上のようにこのPCは拡張性がほとんど無く、通常考えられる方法ではインストール出来ないのでちょっと変わった方法?で導入を試みました。
HDDにインストール専用パーティションを作成し、HDD起動にてインストーラを起動する方法です。
最近のノートPCのリカバリ領域みたいな考え方ですね。
インストール準備
細かい説明&入手先は省きますが、必要な物は以下のもののみです。
- インストールターゲットのPC
- ※以下、動作PCと記述
- インストールHDD構築用のLinuxPC(今回はCentOS5.1を使用)
- ※以下、構築PCと記述
- CentOS5.1のインストール用イメージ(CentOS-5.1-i386-bin-DVD.iso)
簡単な手順は以下の通りです。
- 構築PCに動作PCのHDDを取り付け
- 構築PCで動作PCのHDDを作成
- 動作PCにHDDを取り付け
では、順を追って解説します。
1.構築PCに動作PCのHDDを取り付け
- これは特に問題無いと思いますが、HDDのジャンパー設定(マスタ/スレーブ)を確認しましょう。今回の場合はスレーブ設定で接続です。
2.構築PCで動作PCのHDDを作成
- 構築PCでLinuxを起動すると、接続したHDDデバイスを認識しているはずです。
早速パーティションを作成します。
まずは現状のパーティション割り当てを確認しましょう。
# fdisk /dev/hdb
(省略)
今回は、割り当てサイズを4GByte(15GByteのHDD)としました。
# fdisk -l /dev/hdb
Disk /dev/hdb: 15.0 GB, 15020457984 bytes
255 heads, 63 sectors/track, 1826 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/hdb1 1 499 4008186 83 Linux
パーティションが出来たら、次はフォーマットです。
# mkfs -t ext2 /dev/hdb1
これでデータを書き込む準備が整いました。
次はブートローダ(GRUB)のインストールです。
まずは先ほど作成した /dev/hdb1 をマウントします。
# mount /dev/hdb1 /mnt
次にGRUBのインストールです。
# grub-install --root-directory=/mnt /dev/hdb
これでGRUBのインストールは出来ました。
インストール後は、 /mnt/boot/grub/ というディレクトリが作成されます。
ここに設定ファイル(grub.conf)を置く事により、起動時のメニューを表示する事が出来ます。
今回作成したのは、
# grub.conf
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 5.1 Installer
root (hd0,0)
kernel /boot/vmlinuz ro root=/dev/hda1
initrd /boot/initrd.img
です。
次にインストールメディアをコピーします。
(今回は社内サーバよりネットワークコピーしました)
# scp ****@***.***.***.***:/データディレクトリ/CentOS-5.1-i386-bin-DVD.iso /mnt/boot
DVDイメージがコピーできたら、
コピーしたDVDの中にあるブート用のカーネルとinitrdイメージを取り出します。
# mount -t iso9660 -o loop /mnt/CentOS-5.1-i386-bin-DVD.iso /media
# cp /media/isolinux/vmlinuz /mnt/boot
# cp /media/isolinux/initrd.img /mnt/boot
以上で構築PCの作業は完了です。
3.動作PCにHDDを取り付け
構築PCから動作PCへのHDD付け替えも、マスタ/スレーブの設定のみ注意すれば問題無いはずです。
インストール作業
動作PCにて立ち上げるとブートのカウントダウンが出てきます。
そのままにしても起動しますが、enter にて選択画面が出てきます。
この後、インストール画面が出てくればOKです。
通常のインストール作業と同じですが、"Installation Media" のところで "Hard Drive" を選びましょう。
それとインストール場所の選択(パーティションの割り当てetc.)は少しだけ注意が必要です。
間違ってもインストールデータが格納してある領域を消してはいけません。
(試した事はないのでどうなるかは・・・・)
これにてインストール作業は完了です。
参考情報
実は今回、インストールは失敗に終わってしまいました。原因は単純で、メモリ搭載量が足りなかったようです。
調べてみたところ、最低でも128MByteは必要との事です。
http://www.centos.org/product.html
状況としては、ブート時 "initrd.img" を読み込んだところで再起動がかかってしまいました。
64MBで起動可能なLinuxすればいいのでしょうけど、それはまた別の機会で・・・・。
と言う事で、今回は別のPCで動作確認を行ないました。
- CPU:Pentium3(800MHz)
- RAM:256MByte
インストール時間は、およそ25分間。
インストール内容は、デフォルトから "GNOME" を削除してます。
(選択できるオプションは全て解除)
HDDのスペックですが、2000年くらいのモデルで廉価版だったと記憶していますが詳細は確認していません。
また、ネットワークブートが出来なくてもブートさえ出来れば、FTPなどでインストール出来ますね。
今回イメージファイルをコピーしたのは、スタンドアロンな環境でもインストール出来るのでやってみました。
それに再インストールも簡単ですので。
インストール後、ちょっと工夫すればいつでもインストーラが起動できるようになります。利用価値は?だけど。
ちなみに現在のgrub.confはこんな感じです。
(HDD2台構成で2台目の最初の領域がインストールメディア領域)
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.1.21.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.1.21.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-53.1.21.el5.img
(省略)
title CentOS (2.6.18-53.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-53.el5.img
title CentOS (install mode)
root (hd1,0)
kernel /boot/vmlinuz ro root=/dev/hdc1
initrd /boot/initrd.img
まとめ
参考情報にも書きましたが、残念ながら今回はDNSサーバを稼働させるところまではたどり着きませんでした。
ただ、思わぬところでGRUBのインストールが学習できたので良しとしたいと思います。
機会があれば、64MBのメモリで動くようにチャレンジしたいものですね。