Debianを動かしてみる

暫定で、独自のinitrdを作らずに、製品版のinitrdのlinuxrcだけシンプルにして、mkimageすることで、単体ドライブでのDebian起動を可能にしてみる。
GTは、RAID5+FATモードで構築して、FATドライブを抜いておく。抜いたままで運用すると、冷却の問題があるけど、その程度のリスクは仕方がない。ただの蓋なパーツがあるといいのに。
必要な材料は、RHDカートリッジ、それを接続可能なLinuxマシン、製品のuImageと改造したinitrd、詳細設定済みのSargeのrootfs base image。
パーティション構成はこんな感じ。

/dev/sda1 /boot ext3
/dev/sda2 swap swap
/dev/sda3 / ext3

sda4の領域は残しておき、それぞれ適宜サイズを決める。


まず、initrdのイメージをマウントして、linuxrcを書き換え、アーカイブしてからmkimageにかける。

# mount -o remount,rw /
# chmod 777 /home/initrd_uboot
# mount -o loop initrd_uboot /media/
# cd /media/
# cp linuxrc linuxrc.gt
# vi linuxrc
	#!/bin/sh
	#
	export PATH=/sbin:/bin:/usr/sbin:/usr/bin
	mount -nt proc proc /proc
	ROOT_DEVICE=0x0803 # /dev/sda3
	echo "${ROOT_DEVICE}" > /proc/sys/kernel/real-root-dev
	umount /proc
	exit 0
# cd /
# umount /media/

# gzip -9 initrd_uboot
# ls -al initrd_uboot.gz
-rwxrwxrwx  1 root ftp 2855022 Apr 10 18:05 initrd_uboot.gz
# /mnt/sataraid1/mkimage -A arm -T ramdisk -C none -d initrd_uboot.gz initrd_new
Image Name:
Created:      Wed Apr 11 17:28:23 2007
Image Type:   ARM Linux RAMDisk Image (uncompressed)
Data Size:    2855022 Bytes = 2788.11 kB = 2.72 MB
Load Address: 0x00000000
Entry Point:  0x00000000
# ls -al initrd_new
-rw-r--r--  1 root ftp 2855086 Apr 11 17:28 initrd_new
# file initrd_new
initrd_new: PPCBoot image

initrdのできあがり。


RHDをLinuxマシンに接続して、パーティションを作り、フォーマットする。

# fdisk /dev/sda -l

Disk /dev/sda: 250.0 GB, 250001031168 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         125     1004031   83  Linux
/dev/sda2             126         250     1004062+  82  Linux swap / Solaris
/dev/sda3             251         375     1004062+  83  Linux
/dev/sda4             376       30394   241127617+  83  Linux

# mkswap /dev/sda2
# mkfs.ext3 /dev/sda1
# mkfs.ext3 /dev/sda3


必要なファイル類は、GT上で作成しているので、GTは起動させたまま。RHDをUSB接続してコピーしてもいいけど、今回は使い慣れたマシンに市販のSATA-USBアダプタでRHDを接続した。マウントして、必要なファイルをコピーする。pythonでワンライナなhttpdを起動してコピーサーバーを作りwgetでコピーすれば簡単。

# mount /dev/sda1 /media/
# cd /media/
# wget http://192.168.123.11:8000/boot/uImage
# wget http://192.168.123.11:8000/home/initrd_new
# cp initrd_new initrd
# cd /
# umount /media/

# mount /dev/sda3 /media/
# cd /media/
# wget http://192.168.123.11:8000/boot/sarge_r4_deboot_20070406.tgz
# tar zxvfp sarge_r4_deboot_20070406.tgz
# cd /
# umount /media/


3発で動作するGTを停止して、調整済みのRHDを1つだけ接続して、電源を投入する。
動いたよ。

OPEN LANDISK PLATFORM Linux 1.0 (based on Debian GNU/Linux 3.1r4) localhost
OLP_GT login: admin
Password:
Linux OLP_GT 2.6.12.6-arm1 #6 Wed Nov 22 14:18:14 JST 2006 armv5tejl GNU/Linux

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
admin@OLP_GT:~$

なんか、拍子抜けするほど簡単なものね。どうして、やる人が出てこないのか不思議。
独自ドライバはないので、LEDもボタンも何にも制御できないけどね。なので、STATUSが点滅しっぱなし。これはボタンを押すと止まる。
initrdを読むと、なんかUSBからごにょごにょする仕組みもあるみたい。結構な分量があるから読みたくないけど。
インストーラーは、それを利用して作れるかもな。