ksaitoの日記

日々試したことの覚え書き

玄箱のDebian 5.0化に成功

シリアルコンソールなしで新規の玄箱Debian 5.0 lennyをインストールできました。
lennyから、armelというアーキテクチャ玄箱PROがサポートされていました。
サポートするハードウェアの多さは、さすが、Debianです!
インストールには、2日間、実働8時間もかかってしまいました。
u-Bootの設定変更をして再起動したときに玄箱のu-Bootのネットワーク設定が192.168.11.150でデフォルトゲートウェイが192.168.11.1になってしまうため注意が必要です。(必ず、このアドレスとは限らないかもしれません。)
事前にu-Bootの設定変更でネットワークを指定するのだと思うのですが、やり方は分かりません。
今回は、我が家のルータの設定を、一時的に192.168.11.0に変更して玄箱がネットワークにアクセスできるようにして、インストールを完了したあとでネットワーク設定を変更して切り抜けました。

ハードディスクの装着と起動

この前購入した500GBのハードディスクを玄箱に装着します。
ネットワークと電源を接続して玄箱の電源を入れます。

日立GST Deskstar P7K500(500GB/SATA3G/7200rpm/16MB) HDP725050GLA360

日立GST Deskstar P7K500(500GB/SATA3G/7200rpm/16MB) HDP725050GLA360

ログイン

起動時は、玄箱の底に記載されているMACアドレスDHCPの固定アドレスに登録してIPアドレスを設定しました。
デフォルトのパスワードは、マニュアルに記載されていますが、kuroadminだったと思います。

$ telnet 11.11.11.11
Trying 11.11.11.11...
Connected to 11.11.11.11.
Escape character is '^]'.

KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
KUROBOX-PRO login: root
Password: 


BusyBox v1.1.1 (2007.04.06-12:02+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # 

玄箱の時間を合わせる

これは、昨日のブログの通りです。
busyboxのdateコマンドでなるべく正確な日付に合わせます。

パーティションの作成

Debianのネットワークブート用のカーネルをコピーする一時エリアとして先頭に10MBのブートパーティションを準備します。
まずは、fdiskコマンドで装着したハードディスクを確認します。

~ # fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda doesn't contain a valid partition table
~ #

fdiskコマンドで装着したハードディスクの先頭から10MBのプライマリパーティションを作成します。
パーティションは、必ずシリンダ番号1から+10Mで作成します。

~ # fdisk /dev/sda
... 中略 ...
Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1               1           2       16033+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
~ #

作成したパーティションext2でフォーマットしてマウントします。

~ # mke2fs /dev/sda1
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
4016 inodes, 16033 blocks
801 blocks (5.00%) reserved for the super user
First data block=1
2 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
        8193

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
~ # mount /dev/sda1 /mnt/disk1
~ # df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtd2                65536     15972     49564  24% /
/dev/ram1                 8192       152      8040   2% /mnt/ram
/dev/mtd3               192512      4620    187892   2% /mnt/mtd
/dev/sda1                15522        13     14708   0% /mnt/disk1
~ #

ネットワークブート用のカーネル一式をコピー

Debianのオフシャルのミラーサイトからネットワークブート用のカーネルとconfig-debianをコピーします。
wgetコマンドでconfig-debianとinitrd.buffalo、uImage.buffaloをダウンロードします。
busyboxでは、DNSが設定されていないのでサーバ名でアクセスするとエラーになります。

/mnt/disk1 # wget http://cdimage.debian.org/debian/dists/lenny/main/installer-armel/current/images/orion5x/netboot/buffalo/kuroboxpro/config-debian
wget: cdimage.debian.org: Unknown host
/mnt/disk1 #

他のマシンでcdimage.debian.orgにpingしてIPアドレスを確認し、IPアドレスを設定するとダウンロードできます。

/mnt/disk1 # wget http://130.239.18.137/debian/dists/lenny/main/installer-armel/current/images/orion5x/netboot/buffalo/kuroboxpro/config-debian
Connecting to 130.239.18.137[130.239.18.137]:80
config-debian        100% |*****************************|  1535       00:00 ETA
/mnt/disk1 # ls
config-debian  lost+found
/mnt/disk1 # file config-debian
file: Using regular magic file `/usr/share/magic'
file: couldn't find any magic files!
config-debian: ASCII English text
/mnt/disk1 # wget http://130.239.18.137/debian/dists/lenny/main/installer-armel/current/images/orion5x/netboot/buffalo/kuroboxpro/initrd.buffalo
Connecting to 130.239.18.137[130.239.18.137]:80
initrd.buffalo       100% |*****************************|  3835 KB    00:00 ETA
/mnt/disk1 # wget http://130.239.18.137/debian/dists/lenny/main/installer-armel/current/images/orion5x/netboot/buffalo/kuroboxpro/uImage.buffalo
Connecting to 130.239.18.137[130.239.18.137]:80
uImage.buffalo       100% |*****************************|  1351 KB    00:00 ETA
/mnt/disk1 #

u-Bootの設定変更

config-debianでu-Bootの設定を変更しますが、これ以降で失敗するとシリアルコンソールがないと後戻りできなくなります。
config-debianを実行すると次回起動時にu-Bootが/dev/sda1にコピーしたファイルをロードするようになります。

/mnt/disk1 # sh config-debian
Saving U-Boot environment to ubootenv.bak... done.
Changing U-Boot environment...
>nvram_set:bootcmd = ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); ext2load ide 0:1 $(default_initrd_addr) /$(initrd); setenv bootargs $(bootargs_base); bootm $(default_kernel_addr) $(default_initrd_addr)
done.
Please reboot your Kurobox Pro.

設定は、ubootenv.bakに保存されているので、このファイルはバックアップします。
中身を見てみるとIPアドレスが192.168.11.150でデフォルトゲートウェイが192.168.11.1に設定されています。
本来であれば、この時点でnvramコマンドを使って設定変更できるのかもしれませんが、nvramコマンドの使い方は、分かりません。
DHCPサーバがいれば、そちらを見るのではないかと思い込み、リブート後にアクセスできなくなりました(涙)
結局、我が家のルータを192.168.11.0のネットワークに一時的に設定してアクセスしました。

$ head ubootenv.bak 
1: [baudrate=115200]
2: [loads_echo=0]
3: [ipaddr=192.168.11.150]
4: [serverip=192.168.11.1]
5: [rootpath=/nfs/arm]

再起動

ハードディスクをunmountして再起動します。

~ # umount /mnt/disk1
~ # df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtd2                65536     15972     49564  24% /
/dev/ram1                 8192       152      8040   2% /mnt/ram
/dev/mtd3               192512      4620    187892   2% /mnt/mtd
~ # reboot  

Debianのインストール

しばらくするとsshで接続できるようになるので、ユーザ installer、パスワード installでログインします。

$ ssh installer@192.168.11.150
installer@192.168.11.150's password: 

ログインするとDebianインストーラが起動します。
これで、通常のDebianと同じようにインストールすることができます。