ALIXで遊ぼう!  Vine5  

型番PC Engines ALIX.2C2(256MB / 2LAN / USB)(ちょっと古い)
CPUAMD Geode LX800 (500MHz)
LANVIA VT6105M 10/100 x 2(VIA Rhineドライバで動作可能)
Storageコンパクトフラッシュ(16GBを使ってます)

ALIXとは  

ALIXとはPC Engines社のシングルボードコンピュータで、日本ではヤマモトツールワークスが販売しています。ファンレス、ACアダプタ駆動が可能で省スペース&省電力な自宅サーバを構築することができます。パワーはありませんので半分趣味用です [huh]USBが1.1ってのがネックでしょう。
一世代前はWRAPという名前で販売されていました(現在廃盤)。 16GBのコンパクトフラッシュを使用するとしてだいたい2まんえんぐらいでx86互換のサーバを組むことが可能です。私はいつものようにVineをインストールして使っています。VGA出力がないためネットワーク環境が整うまではシリアルコンソールで作業を行うので多少の知識が必要です。
久しぶりにALIXの設定をいじったら結構苦労したので備忘録。

インストール  

Vine Linux 5.2のインストール  

シリアルコンソール上でUSBなどからインストール可能ですが、私はVirtualBox上に最小構成でルートイメージを作成し、ファイルをコピーしました。概要を示します。

  1. Vine Linux 5.2をVirtualBoxの仮想PCにインストール(とりあえず最小構成)
  2. 別の仮想PCから上記のディスクをマウントし、ルートディレクトリとブートディレクトリをtarで固める
  3. インストール先のコンパクトフラッシュに展開しGRUBをインストール

以上で構成は終了です。いくつか設定の変更が必要なので別のLinuxなどから設定ファイル等を修正します。

GRUBをコンソールで使用する設定  

GRUBの設定ファイルに記述を追加してシリアルコンソールに対応させます。
標準状態のgrub.confではGRUBメニューがシリアルコンソールに出力されないので、シリアルに出力されるように修正します。

/boot/grub/grub.conf
default=0
timeout=5
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1   <-- シリアルの設定
terminal --timeout=2 serial console                           <-- 2秒待ってシリアルにGRUBメニューを表示

title Vine Linux (Current kernel)
    root (hd0,0)
    kernel /vmlinuz ro root=LABEL=/ console=ttyS0,38400,8n1 reboot=bios \  <-- コンソールの設定
        resume=swap:/dev/hda2
    initrd /initrd.img
この修正でGRUBメニューがシリアルコンソールに表示されるはずです。

/etc/inittabの修正  

ログインプロンプトをシリアルコンソールに出力させるためにはinittabも修正します。/etc/inittabのttyの設定を修正します。
標準状態ではrc.dのスクリプトが流れた後、ログインプロンプトが出力されないため停止したようになってしまいます(実際は起動しているため、ネットワーク等の設定が適切ならSSHなどで接続可能です)。

/etc/inittabの最後の方のgettyの設定を変更します
44 # Run gettys in standard runlevels
45 co:2345:respawn:/sbin/agetty ttyS0 38400 vt100-nav  <-- 追加
46 #1:2345:respawn:/sbin/mingetty tty1                 <-- コメントアウト
47 #2:2345:respawn:/sbin/mingetty tty2
48 #3:2345:respawn:/sbin/mingetty tty3
49 #4:2345:respawn:/sbin/mingetty tty4
50 #5:2345:respawn:/sbin/mingetty tty5
51 #6:2345:respawn:/sbin/mingetty tty6

その他の落とし穴  

例えば仮想環境で作成したルートイメージをコピーした場合、以下のような落とし穴がありました。
おかしい場合(特にネットワークやハードウェア認識)は確認してみましょう。

このあたりをチェックする必要があるでしょう。

起動  

設定が完了したらシリアル接続(RS-232Cクロス接続)でつなぎ、起動します。いつものLinux起動画面が流れるはずです。ログインプロンプトが出ない場合はシングルユーザーモードで起動して確かめるのもいいでしょう。
とりあえずネットワークが使える状態まで持って行きましょう。

環境のブラッシュアップ  

ネットワークが使用可能な状態までたどり着いたら環境を最適化します。最低限必要なのは、

  1. カーネルの再構築
  2. initrdを修正して起動時にntpdateを実行するようにする

だと思います。

カーネルの再構築  

ここではkernel 2.6で最低限必要な設定をメモしておきます。

最低限これらのオプションを追加して再構築しましょう。Vineならmkkpkgを使うと楽ですね。

initrdの修正  

ALIXは内蔵電池を持たないので(構成によっては付いているのもあります)、電源を抜くたびに内蔵時計がリセットされて2000年1月1日に戻ってしまいます。そこで、initrdの中でntpdateを実行するを参考にしてinitrdを修正します。

完成?  

以上でとりあえずの環境が構築されたはずです。通常のPCのようにハードウェア構成の変更はほとんどないのでこの状態でバックアップをとっておけばすぐにこの環境に戻すことができます。