Installing Debian2.2 via serial console

なんとか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
です。
トップページに戻る