なんとかDebianのシリアルコンソールでのインストールができました。しかし問題は起動フロッピー(rescue.bin)のカーネルをserial consoleが使えるように作り直さなければならないと言うことです。つまり Debianをシリアルコンソールでインストールしようと思ったら予めなにかしらのLinuxがインストールされているマシンが必要と言うことです。 と言うことで、シリアルコンソールで使えるrescue.binをDownloadできるようにしておきます。とりあえず、 この文章の下にリンクしておきます。
ではなにをやったのか書きたいと思います。
Debianのインストールでは、フロッピーで立ち上げてcdromを使ってでのインストール
あるいはネットワーク経由でのインストールでは、
rescue.bin、root.binと言うフロッピーを2枚作らなければなりません。
rescue.binを書き込んだフロッピーにはlinuxと言うカーネルが入っています。
このrescue.binに入っているkernelではシリアルコンソールは使えないようです。
そこでシリアルコンソールが使えるようにカーネルをLinuxが入っているマシ
ン上で作り直して、これをrescue.binにコピーしなおさなければなりません。
私が使っているrescue.binには、LINUX2.2.17が入っているので、まず
ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.17.tar.gz
からカーネルのソースを採ってきます。
これを/usr/srcで解凍します。
# tar zxvf linux-2.2.17.tar.gz
次に
1. シリアルコンソールを使うためにpatchをあてます。
ftp://ftp.cistron.nl/pub/people/miquels/kernel/v2.2/linux-2.2.19-sercons-sysrq.patch
を採ってきます。
/usr/src/linuxの中で
# patch -p1 < linux-2.2.19-sercons-sysrq.patch
です。上のパッチは2.2.19となっていますが、もんだいありません。
2.
rescue.binのreadmeに書いて有るように
initrd,ramdisk, loop, msdos, fat, elf, ext2fs, procfsなどをカーネルに組み込みます。
make menuconfigを実行して次のようにしてください。
Block devicesエントリーのなかの
Loopback device support
RAM disk support
Initial RAM disk (initrd) support
がカーネルに組み込まれるようにします。*マークが付けばよいでしょう。スペー
スキーでマークします。
また、メインメニューに戻って
Character deviceエントリーの中野
Support for console on serial port
も上と同じようにマークします。
最後にFilesystems エントリーの
DOS fs support
MSDOS fs support
をまーくしてください。これでおわります。menuconfigを終了させます。
3. カーネルの再構築です。
/usr/src/linux上で
# make dep
# make clean
# make bzImage
# make install
です。
4. 次に
/boot/vmlinuz-2.2.17
ができてますからこれをrescue.binにlinuxと言うファイル名でコピーします。
# mount /dev/fd0 /mnt
# cp vmlinuz-2.2.17 /mnt/linux
5.
そして、rescue.binのフロッピーがmountされているところで(いまは/mntです)
# ./rdev.sh
# rootflags linux 0
rootflagsは、resuce.binで起動してramdisk上に作られたfilesystemのread
onlyをはずすためです。
これでrescue.binのディスクはできました。root.binのディスクはなに
も変更いたしません。
6.
rescue.binで起動して
boot:linux text console=ttyS0
と入力です。これでしりあるから音が出るはずです。
7. これで通常通りににインストール作業をしてください。
8. ところでDebianのインストールでは2段階になっています。
最初に基本システムだけをインストールし、その基本システムがインストールさ
れたHDDから起動し直して、続きのインストールを行います。
しかし、基本システムのインストール後HDDから起動し直すと
/sbin/termwrap ファイルがみつからないと言って、途中で止まってしまいます。
これは
インストールされた、hddの
/etc/inittabをみてみると/sbin/termwrapと記述されているフィールドが何カ所
かあります。これを単純に消去すれば通常通りインストール作業を進めることが
できます。調べてみると/sbin/termwrapは必要ないようです。
基本システムのインストールが終わったら、すぐにrebootせずに、hddのinittab
を編集します。
インストールメニューに
execute shell
とshellの実行ができますから、ここに入ります。
# mount /dev/fd0 /mnt
とDOSのフロッピーにmountします。
hddは/targetにmountされていると思います。ですから
# cp
/target/etc/inittab /mnt
これでDOS上でinittabを編集して、戻してあげます。編集するところは、上にも
書きましたが単純に/sbin/termwrapと言うところを消して下さい。また、同じinittabに
#1:2345:..../dev/tty1 2>&1
#2:2345:..../dev/tty1 2>&1
#3:2345:..../dev/tty1 2>&1
というところの#もはずしましょう(そうしないと普通のconsoleからloginできません)。そして、hddの/etcにはinittabとinittab.realと言う者もあります。これは2段階目の
インストール後、本当のinittabになるようです。これもシリアルコンソールでのインストールでは、上のようにconsoleでのloginのところがコメントされていますからこれもはずします。
そしてinittab,inittab.realをもどしましょう。
これで全て終了です。
このインストールの問題点は、最初になにかしらのLinuxシステムが動いてい
なければならない。kernelの再構築が必要ですからね。
とりあえず、
http://www.watakatsu.com/unix/download/rescue.lzh
に今回の者をupしておきます(問題ないですよね)。
このrescue.binでは上のように
console=ttyS0
と入力しなくても自動的に音がでるようになっていますので、6.は不要です。
もしttyS0でなく、ttyS1を使いたい方はsyslinux.cfgを編集して下さい。ただたんにttyS0をttyS1にするだけです。rescue.binのフロッピーはDOS formatです。
だいじなことを書き忘れていました。rescue.binや、root.binは
rescue.bin
root.bin
から採ってきました。またCDROMは
改訂版 Debian GNU/Linux 徹底入門 potato対応
の付録のCDROMですが、これはDebian 2.2です。またこのシリアルコンソールの参考Websitは
http://www.patoche.org/LTT/install/00000103.html
です。
トップページに戻る