HDDが取り外された状態のGiga LANDISKですが、基盤をよく見ると、HDDが収まっていたところのちょうどギリギリの位置にシリアル接続用のスルーホールが確認できると思います。そこに専用ケーブルであるSERIAL-KITを接続することで、シリアルコンソールを利用できます。空きピンが上(ケースの縁)に向くように接続してください。
接続後、シリアルコンソール画面を表示するには、UTF-8に対応したシリアルターミナルクライアント(WindowsではPoderosaなど)を起動します。クライアントソフトによって項目などの名称に違いはあると思いますが、クライアントの設定は以下のようにしてください(以下はPoderosaの例です)。
ポート(P) | SERIAL-KITを接続したシリアルポート |
---|---|
ボーレート(B) | 115200 |
データ(D) | 8ビット |
パリティ(A) | なし |
ストップビット(S) | 1ビット |
シリアルコンソールの接続が完了したら、電源を入れてみましょう。下記のようにRedBoot(本機で使用されているRed Hatの組み込み用ブートローダ)のメッセージに続いてkernelのメッセージが出てくるはずです。参考までに、bootシーケンスについてはオンマウスでどのような処理を行っているかが確認できるようにしています。RedBootの処理が終わると、メモリ上のkernelに処理が渡ります(厳密に言うと、この一連の処理でkernelの先頭部のgzip展開エンジンが圧縮済みカーネルを解凍、再配置を行います。本来のLinuxカーネルが起動するのはその後です)。
+ RedBoot(tm) bootstrap and debug environment [ROM] Red Hat certified release, version 1.90 - built 10:53:11, Mar 18 2005 Platform: IQ80321 (XScale) Copyright (C) 2000, 2001, 2002, Red Hat, Inc. RAM: 0x00000000-0x08000000, 0x00010ba8-0x07ff4000 available == Executing boot script in 1.000 seconds - enter ^C to abort RedBoot> load hda1:/initrd -r -v -b 0x00800000 -m disk - Raw file loaded 0x00800000-0x009ae9c1, assumed entry at 0x00800000 RedBoot> load hda1:/zImage -r -v -b 0x00012000 -m disk | Raw file loaded 0x00012000-0x00199143, assumed entry at 0x00012000 RedBoot> exec -c "root=/dev/hda2 initrd=0xa0800000,8M rw console=ttyS0,115200 mem=128M@0xa0000000" Using base address 0x00012000 and length 0x00187144 ...... done, booting the kernel. Linux version 2.6.10-iop1 (xscale@HDLG) (gcc version 3.4.2) #2 Wed Jun 8 09:34:48 JST 2005 : :
さて、今回は既存のシステム上からdebootstrapというインストーラを用いてデータ領域のパーティションに仮インストールを行い、動作確認がとれ次第本体のOS部分を差し替える形で構築します。一見ややこしい方法だと思われるかもしれませんが、通常のCDブートに近いインストーラを使うにはインストーラの改造が必要なのと、一発勝負になってしまうのを避けるためです。debootstrapについては、こちらから最新のパッケージを取得してください。執筆時点ではdebootstrap_0.3.1.4_all.debが最新ですので、これをベースに進行します。
まず、既存のシステムはパッケージ管理周りのファイルが削除されているため、debパッケージをインストールできません。そのため、以下のようにしてインストーラを直接展開します。
# cd /mnt/hda5
# wget http://ftp.debian.org/debian/pool/main/d/ \
debootstrap/debootstrap_0.3.1.4_all.deb
# ar -x debootstrap_0.3.1.4_all.deb data.tar.gz
# tar xzf data.tar.gz
debootstarpを用い、本来ならデータ用のパーティションとして使われている領域にOSのベース部分をインストールします。
# unset LANG LANGUAGE
# DEBOOTSTRAP_DIR=/mnt/hda5/usr/lib/debootstrap/ ./usr/sbin/debootstrap --arch arm sarge /mnt/hda6 http://ftp.jp.debian.org/debian
なお、上記インストーラではカーネルとそのモジュールがインストールされず、また当然ながらSargeのカーネルは適合しません。そのため、次のようにしてデフォルトで入っているカーネルモジュールをコピーする必要があります。
# tar Ccf / - lib/modules/* | tar Cxvf /mnt/hda6 -
このほか、デバイスファイル群も多々不足しているため、こちらもデフォルトで使われているものをそのままコピーしておきます。
# tar Ccf / - dev | tar Cxf /mnt/hda6 -
また、タイムゾーンの設定も行っておきます。
# cp /etc/timezone /etc/adjtime /mnt/hda6/etc/
# cp /etc/default/rcS /mnt/hda6/etc/default/
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /mnt/hda6/etc/localtime
パスワードの保存状態がデフォルトではshadowを使用しない形のため、セキュリティを高めるためにコンバートします。
# chroot /mnt/hda6 pwconv
次に、fstabの設定を仮に行います。とりあえずは/boot、/、/procだけがあればいいので最低限に絞ったファイルを作成します。
# cat > /etc/fstab << EOF
/dev/hda1 /boot ext3 defaults 0 0
/dev/hda6 / ext3 defaults 0 0
proc /proc proc defaults 0 0
EOF
以上で仮インストールは完了です。ここまでくればあと一息です。
Copyright © ITmedia, Inc. All Rights Reserved.