特集
» 2005年08月31日 15時30分 公開

Hack!Hack!Hack! Giga LANDISKをDebian化 (3/4)

[吉村圭太郎,ITmedia]

シリアルコンソールの取り付けと起動の様子

 HDDが取り外された状態のGiga LANDISKですが、基盤をよく見ると、HDDが収まっていたところのちょうどギリギリの位置にシリアル接続用のスルーホールが確認できると思います。そこに専用ケーブルであるSERIAL-KITを接続することで、シリアルコンソールを利用できます。空きピンが上(ケースの縁)に向くように接続してください。

基盤アップ。赤い○の中がスルーホールの位置
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.

注目のテーマ