でじたる漫遊日記

アクセスカウンタ

zoom RSS 新RAMデスクイメージ

<<   作成日時 : 2006/02/23 22:41   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

シリアルなしでHddパーテション変更の実現を目指して、まず、最短のRAMデスクイメージを作りました。GlanTankのRAMデスクイメージは400行以上ありますが、今日の最短RAMデスクは、39行ですので、10分の1のサイズに縮小できました。勿論、機能は起動だけに絞りました。これをベースに、機能追加し、目標に迫るもくろみです。

RAMデスクイメージで絶対欠かせない機能は、ルートデバイスの指定です。これを、間違えると起動しません。例えば、
ROOT_DEVICE=0x0403
を指定すると、
VFS: Cannot open root device "hda2" or unknown-block(4,3)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(4,3)
とエラーになり、死にます。

本来は、Raid、マルチドライブ/dev/md0で起動するので
ROOT_DEVICE=0x0900 # /dev/md0
と指定して
kjournald starting. Commit interval 5 seconds
EXT3 FS on md0, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
と起動するのが、仕様ですが、
ROOT_DEVICE=0x0303 # /dev/hda3
を指定すると
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda3, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
とhda3で起動します。
従って、ルートデバイスを指定する4桁の数字の指定法が分れば、ルートデバイスの切り替えができると思います。

下のRAMイメージを見れば分るように、シエルスクリプトですので、いろいろな起動スクリプトが出来そうです。ただし、Linuxカーネルのブートプロセスをよく理解しないと、うまくいきません。難しいのが、難点です。その分、カーネルの勉強になります。


#!/bin/sh
#
# linuxrc: initrd bootstrap for しろくまグラタン
#
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
echo ""
echo "=-=-= /initrd/linuxrc start =-=-="
echo ""

### mount proc
mount -t proc proc /proc

### load drivers led、ブザー、ボタンドライバーをロード
for i in leddrv buzdrv btndrv
do
/sbin/insmod /lib/modules/noversion/$i.ko $* || exit 1
done

### mount proc
if [ ! -d /proc/ide ]; then
mount proc /proc -t proc
fi

### SET ROOTDEV  ルートデバイスを指定
ROOT_DEVICE=0x0303 # /dev/hda3

### WRITE ROOTDEVICE  
echo $ROOT_DEVICE > /proc/sys/kernel/real-root-dev

### SET LED HARDWARE CONTROL  led(緑と赤)をハードの状態表示に設定
/usr/local/bin/ledcont stshw
/usr/local/bin/ledcont errhw

### umount proc
umount /proc

### END SOUND  終わり音 ピ、ピ、ピ、 ピー
/usr/local/bin/buzcont 94 6 3 && sleep 3 && /usr/local/bin/buzcont 1 50 1
sleep 3

echo ""
echo "=-=-= /initrd/linuxrc end =-=-="
echo ""

exit 0

# このRAMデスクイメージの実行を完了後、上記で指定したルートデバイスの起動に移ります。その際、指定したルートデバイスをオープンできないと、カーネルはパニックとなり立ち上がりません。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
新RAMデスクイメージ でじたる漫遊日記/BIGLOBEウェブリブログ
文字サイズ:       閉じる