Configuring Remote-Boot Workstations with Linux, DOS 6.20, Winュ dows 3.1 and Windows 95 Marc Vuilleumier Stkelberg and Sandro Viale v1.0, August 1996 日本語訳 中谷千絵 jeanne@mbox.kyoto-inet.or.jp 23 Apr.1997 校正:Hiro Sugawaraさん hiro@arkusa.com 中野 武雄さん nakano@apm.seikei.ac.jp 「訳注」以外に「用語説明」をつけました。 # 印は用語説明。(用語集)と表示した解説文は、「インターネット構築入門」 の「用語集」(533頁から)を参照引用したものです。(用語集)と記したもの は「用語集」からの引用、(インターネット構築入門)S.カールミッチェル, J.S.クォーターマン著(斉藤靖,小山裕司訳),『インターネット構築入門』,トッ パン,1995年)と記したものは本文を参考にしたもので、参考にした頁をつけま した。その他関連する HOWTO または mini-HOWTO などを記したものもありま す。(中谷) この文書は、始動時に、それぞれのクライアントが使用するオペレーティン グシステムを選択できるように、複数の PC 群に対してサーバーを利用したコ ンフィグレーションを行う方法について述べています。このコンフィグレーショ ンの重要な点は TCP/IP bootprom で、それは各自のブートディスクイメージ のひとつを起動時にユーザに選択させるようにしています。説明の大部分はさ まざまなオペレーティングシステムに関してサーバを利用したインストール法 の核心部分のコンフィグレーションです。 この文書の最新版は http://cuiwww.unige.ch/~mvuilleu/configsc1/config.html.にあります。 ハイパーリンクでソフトウェアとその他関連のものもロードできるようになっ ています。Linuxdoc-SGML、 DVI、また postscript 版も上述の場所にありま す。 1. はじめに ここで述べたコンフィグレーションは1996年の夏にジュネーブ大学 University of Geneva の CUI で研究開発されました。コンピュータ科学科 The Computer Science Department は Novell Netware サーバ、 NFS サーバ と多数の PC を使っており、これらは以下の用途に分類されます。 ・ 学生専用コンピュータ ・ 学術研究と授業用コンピュータ われわれは次の目的で現行のコンフィグレーションを開発しました。 # NFS(Network File System)(用語集) Sun Microsystem により開発された透 過ファイルアクセスシステムの実装。広く普及している。 NFS-Root、NFS-Root-Client mini-HOWTO があります。 ・ すべてのコンピュータは Linux、DOS、Windows 3.1 あるいは Windows 95 を動作させることができます。それぞれその都度の作業ごとに希望するオペレー ティングシステムを選択できるようにしました。 ・ オペレーティングシステムを含むすべてのソフトウェアは、最初のインス トールとアップグレードを簡単にするためにサーバ上に置くべきです。 ・ クライアントコンピュータは、サーバ上で書き込み可能でアクセスしなくても 動作できるはずです。 ・ クライアント側のコンフィグレーションは最小限に減らした方がよい。ク ライアントは Novell サーバから自動的に IP 設定パラメーターを受け取り、 この情報は単一のファイルに置かれ、すべてのオペレーティングシステムで使 用されます。 ・ すべてのコンピュータはウイルス攻撃から保護されていなければなりません。 ・ いずれかのコンピュータを使うためにユーザは Novell あるいは UNIX サー バにログインしなければなりません。 ・ 学生用コンピュータはそれぞれの始動時にきちんときれいな状態にされて いなければなりません。すなわち、PC はいつもインストール直後のようになっ ているべきです。 以上のような制約があったので Koeppen EDV-Beratungs-GmbH の優れた製 品である TCP/IP Bootprom をわれわれのコンフィグレーションのベースに用 いることにしました。bootprom は オペレーティングシステムの種類を問わな いので、とりわけ興味あるものです。ちょうどフロッピーディスクに匹敵し、 DOS や Windows 95 と同様に Linux の起動のためにより簡単に使用できます。 1.1 ネットワーク われわれの PC は2つのネットワークプロトコル、IPX と IP を 配慮して いるだけです。 IPX 側では、DOS や Windows のソフトウェアとユーザファイ ルを共有するために単体の Novel Netware を3つ使用しています。IP 側では、 NFS を使って Linux用 のソフトウェアとユーザ区画を共有するために SUN サー バを使用しています。ジュネーブ大学はいくつかのサブネットに小分けされたク ラス B ドメインを持っています。CUI は4つのサブネットを使用しており、 そのうちの1つが学生専用になっています。 # IP(Internet Protocol)(用語集)インターネットプロトコル。TCP/IP プロト コルモデルの名かのインターネット層のプロトコルの1つ。 # IPX(Internet Packet eXchange) Novell 社の Neware 製品でサポートして いるインターネットプロトコルのひとつ。IPX は IP プロトコルと類似したも の。Linux IPX-HOWTO と Linux NET-3-HOWTO を参考してください。 1.2 運用方法 1. クライアントの PC が起動すると、TCP/IP bootprom に制御が渡る前に、 最初に通常のシステムチェックが行われます。 2. bootprom はその IP 設定のパラメーターを得るために BOOTP 要求を出し ます。 # BOOTP ブートストラップを転送するためのプロトコル(The Unix Super Text下563頁) RFC(Request for Comments):1048 も参考にしてください。 # RFC Request for Comments コメント要求(用語集) 主に TCP/IP プロトコル 族の標準仕様を規定するドキュメント群。 3. クライアントが Novell サーバと同じサブネット上にない限り、その要求 はサーバ自身への BOOTP gateway を通して Novell サーバに送られることに なります。 4. Novell サーバが その要求を出している PC を認識するなら、BOOTP reply を返します。BOOTP reply には、クライアントの IP アドレス、デフォルト gateway 、どのブートディスクイメージを使うかのような情報が含まれます。 一方、認識されないなら、サーバは要求を破棄します。 5. それから bootprom は TFTP プロトコルを使って、Novell サーバからブー トディスクイメージをロードします。そしてこのイメージでフロッピーディス クを BIOS レベルでエミュレートします。 6. PC はこのディスクイメージで起動します。このディスクイメージはブート プログラム(まだオペレーティングシステムは入っていません)が入っているだ けのものを作ります。 7. その PC が学生のコンピュータなら、プログラムはローカルなハードディス クのパーティションテーブルをリセットし、そして DOS 領域を高速フォーマッ トして始動します。ここまではコンピュータが起動してから3秒以内に終了します。 8. それからプログラムはその作業に対してオペレーティングシステムの選択 をユーザに提供します。 9. ユーザの選択によって、新しいブートディスクが TFTP を使って Novell サーバからロードされます。 10. ユーザが Linux を使うと決めた場合、ブートイメージは少し変更された 圧縮カーネルになります。このカーネルは、 NFS ルート機能とキャッシュファ イルシステムをサポートします。 a. 最初に Novell サーバから受けた BOOTP reply によって IP 設定が行われ ます。 b. そうすればカーネルは NFS を使って、小さい、リードオンリーの root ファ イルシステムをマウントできるようになります。 c. 小さな ramdisk が作られ、write access が望まれるディレクトリをラム ディスクにシンボリックリンクします。 d. システムは、すべてのシステム依存でないソフトウェアを含むパーティショ ンを NFS でマウントします。 e. スワップパーティションがローカルハードディスク上にあればアクティブにさ れます。 f. Linux パーティションがローカルディスクにあればマウントされ、NFS の キャッシュパーティションになります。 g. IP 設定が完了すると、サービスが始まり、xdm が起動します。 h. ユーザは Linux login を求められます(SUN サーバで NIS で維持されてい る)。ワークステーションは準備完了します。 11. ユーザが DOS と Windows 3.1 を使おうとするなら、ブートイメージは 従来の DOS のブートディスクになり、 ブートマネジャー、 Novell クライア ントと FTP Inc.TCP/IP スタックが入っています。 # TCP/IP stack スタック(参考)プロトコルスタック 1つのプロトコル体系から選び抜かれた プロトコル群(インターネット構築入門:25頁) a. bootprom は RAM のどこかにそれ自身をコピーするので、使用する 32Kb の アドレススペースは EMM386 で復帰させることができます。 b. キーボードドライバやネットワークドライバのようなデバイスドライバが ロードされます。 c. ユーザは Netware に login を促されます。 d. サーバログインスクリプトが ウイルス検出をする Vshield をロードします。 e. bootprom フロッピーディスクエミュレーションはもう必要がないので、そ れが占めている RAM は解放されます。 f. クライアントローカルファイルがハードディスク上に存在しなければ、 Netware サーバからコピーされます(Windows 3.1 と Netscape に対して約 350Kb 必要:1秒ほどかかります)。 g. ローカルディスクキャッシュが有効にされます。 h. FTP Software の TCP/IP スタックがデフォルトの設定でロードさ れます。 i. IP 環境が Netware サーバ上で BOOTP 設定ファイルから読み込まれ、IP カーネルを直接更新します。 j. ユーザはフリーコンベンショナルメモリ 543'000 バイトで DOS プロンプ トを与えられます。TCP/IP カーネルをロードすれば、コンベンショナルメモ リ 617'000 バイトになります。 k. ユーザは従来の win コマンドを入力して Windows を起動できます。 12. ユーザが Windows 95 を使うなら、ブートイメージは Windows 95 の サー バを利用するセットアップで作られるブートディスクを少し変更したものにな ります。このブートイメージは Microsoft 版 Novell Netwareクライアント と Microsoft TCP/IP スタックが用いられます。 a. まず始めに、Windows 95 のロゴがスクリーンに表示されます(それを取っ てはいけません。さもないと、 DOS に似たような画面になってしまいますから)。 b. それから Netware クライアントと同様に OS がロードされます。 c. ユーザは Netware に login を求められます。 d. クライアントローカルファイルがハードディスクに存在しないなら、 Netware サーバからコピーされます( Windows 95 と Netscape に対して約 2.5Mb 必要:数秒かかります)。ロングファイルネームは修復されます。 e. 先の BOOTP reply に基づいて適切な IP 環境でコンフィグレーションパッ チが作られます。 f. パッチは Microsoft の REGEDIT を使って windows 95 のシークレットレ ジストリに適用されます。 g. Windows マシンのディレクトリがローカルのハードディスクに設定されます。 h. Windows 95 が起動します。ワークステーションは用意が整います。 学生のコンピュータはハードディスクが各自の起動時にその都度初期化され るので、リスクなしにいつでも電源を切ってしまうことができます。 突然電源を切られてローカルディスクにゴミが残っているコンピュータの場合、 その設定が混乱しているなら、次回の始動で新しいインストールをするために、 関連のあるオペレーティングシステムを含むすべてのディレクトリツリーを消 してしまえばよいのです。 2. 設定方法 BOOTP サーバは設定がとても簡単です。マニュアルの手引に従うだけです。 われわれは RFC1048 風の BOOTP (プロトコル)の応答 と 長いTFTP パケッ ト(*)を使用しています。 訳注:long TFTP packets RFC1350 の 512 バイトではなく、RFC1783 の「ブロックサイズオプション」 による長いパケットサイズを許している。 RFC 参考 RFC1048,RFC1350,RFC1783 クライアント側の設定も簡単です。ネットワークカードに bootprom を差し 込み、使用可能にする適切なプログラムを使います。われわれが出会ったたっ たひとつのトラブルは使用した SMC EtherEZ という名前のネットワークカー ドによるものでした。それは不幸にも PnP (こんな場合は Plug-and-Punch とも 言う )サポートをしているんですよ! 適当なプログラムを使って bootprom アドレスを有効にしようとすると、たとえ PnP を無効にしても、このカード はその設定を保存しませんから、旧型の SMC Ultra 設定のソフトウェアを使っ てください。そのほうがよりうまく動くはずです。もしうまくいかないなら....、 そうですね、PnP を相手にやめましょう。PnP を相手にするのは、ちょっと大 変です。 BOOTP 要求はサブネットと関連しているのを忘れないでください。クライア ントと BOOTP サーバが同じサブネットに属していないなら、クライアントと して同じサブネットにあるサーバで bootpgw を動作させるべきです。bootpgw は ftp://firewall.mc.com/pub/ から入手できる bootp-2.4.2 パッケージに 入っています。様々なプラットホームに対応したものがあります。 本当に大変な仕事は、さまざまのオペレーティングシステムのサーバを利用 するコンフィグレーションから始まります。 2.1 Linux を立ち上げる まず始めに、インストールに利用できる様々な Linux 配布物からひとつを 選びます。われわれは Linux-FT を使用しました。Linux-FT だけが キャッシュ 化したファイルシステムをサポートしているからです。たとえば NFS のよう なやや遅いファイルシステムから得られたデータをローカルハードディスクに 保存します。 ローカルのハードディスクがないか、あるいはネットワークでロードできる環 境がないなら、他のものを選んだ方がいいでしょう。 Lasermoon はカーネル 2.0.で Linux-FT の新版を出す計画はまだないので、RedHat 社の配布物で Lasermoon のファイルキャッシュ(一般に利用できる)を利用することについて 関心を持つのも面白いでしょう。とにかく、どこにでもある配布物をインストー ルすることで、Linux を動作させることができます。 2.1.1. カーネルを構築する 次に Linux オペレーティングシステムに対してカーネルの再構築をします。 これは、クライアントコンピュータが Linux を始動するために渡される唯一 のソフトウェアなので、完全なオペレーティングシステムを起動するのに必要 なものをすべて含んでいなければいけないことを覚えておいてください。さら に正確に言うなら、少なくとも次に述べるようなことを満たしていなければい けません。 ・ クライアントコンピュータハードウェアに対するサポート ・ ネットワークをサポートしていること ・ NFS-Root サポート ・ TCP/IP Bootprom の仕様を満足して始動する ・ オプションで、ファイルキャッシュのサポート 最初の2つはこれまでのすべての標準的な配布物にあるものです。NFS-Root は 1.3 からの標準のオプションとして入ってきていますが、 Linux-FT は安 定している 1.2.13 のカーネルを使うので、われわれは NFS-Root に関してパッ チを使いました。NFS-Root(最近のカーネルでの)についての詳細情報は、 NFS-Root-Mini-Howto を見てください。 もし Linux だけをブートすればいいなら、標準の NFS-Root パッケージが うまく動作します。しかしもし起動時に複数のオペレーティングシステムを選 択できるようにしたい場合は、標準の BOOTP クライアントを使うことはでき ません。かわりに、あらかじめ受けた BOOTP reply に対して IP 環境を見る ために、Linux のカーネル始動コードにわれわれのパッチを使うほうがいいで しょう。さらに、 TCP/IP Bootprom は標準の Linux ブートコードと衝突する ので、少し変更をしてあります。 Linux 1.2.13 を使うつもりなら、最も簡単な方法はわれわれのパッチをし たカーネルソースを得て、あなたの必要(不用なもののサポートを含まない、 つまりカーネルがあまりに大きくなるでしょうから)に対してそれらを設定し、 そして make bpImage でカーネルイメージを make します。 コンパイルした カーネルを使うこともできます。 最新のカーネルを使うなら、われわれが TCP/IP Bootprom の仕様を満足し て始動するカーネル 2.0 対応版(これは近い将来に出来るでしょう)を出すま で待った方がいいか、あるいは 1.2.13 のコードを見て自分でやってみる方が いいでしょう。われわれが何をしたかをここで手短に説明します。 まず最初に、従来の起動プロセスで、ブートセクター(bootsetc.S ファイル) が BIOS によって 0x7c00 番地にロードされます。ブートセクタは自分自身を 0x9000 番地に移動し、起動コード(setup.S ファイル)の残りをロードします。 ここで問題になることは、TCP/IP Bootprom がそれ自身の目的に対してコンベ ンショナルメモリの上層部分を使うこと、そしてこの領域は Linux によって 現状のままで使うことが出来ないということです。解決方法は始動に関するも のすべてをブートセクターを移動し、始動コードを 0x9000 ではなく、 0x8000 にに移動するようにします。その後起動の手続きをすべて行い、ブー トイメージがラムディスクから十分にロードされたら、TCP/IP Bootprom デー タ領域を破棄し、0x9000 に始動コードを戻します。そうすると、カーネルは そのコマンドラインパラメータを見つけることができます。始動コードは TCP/IP Bootrom API を使って、 BOOTP reply で IP 設定と NFS root パラメー タを得るように拡張されるべきです。われわれの始動コードの修正版は bpbootsect.S と bbsetup.S で見つけることができます。 # API Application API Apprication Program Interface トランスポート層を使ってプログラムを書くために、いくつかのUNIX プログ ラミングインターフェイスが開発されている。(インターネット構築入門:2 9頁) 2.1.2. ルートファイルシステムを構築する ルートツリーはカーネルによって自動的にマウントされる唯一のものです。 システムを起動して全部のファイルシステムをマウントするまでの作業に必要 なデバイスやバイナリ、ライブラリが含まれています。マウントポイントもこ こにあります。われわれはルートファイルシステムをできるだけ小さくするこ とを提案していますが、それを減らそうとするのに多くの時間をかけたくあり ません。NFS-Root-Mini-Howto であなたのルートファイルシステムの内容につ いて役立つヒントが見つかるでしょう。 われわれは次のようなことを目的にしてルートファイルシステムを構築しました。 ・ リードオンリーで NFS マウントを使う ・ ローカルなハードディスクなしに Linux を動作できるようにする ・ NFS キャッシングにローカルなハードディスクを有効に利用できるようにする。 以上の条件を考慮して次に示すような構造(心配無用、これから説明します)を 採用することにしました。 -------- ・ bin = /cache/bin ・ dev = /ramdisk/dev ・ etc (the usual contents of etc, except some files such as...) ・ mtab = /ramdisk/etc/mtab ・ fstab = /ramdisk/etc/fstab ・ ftp ・ lib = /cache/lib ・ local = /cache/local ・ root ・ sbin = /cache/sbin ・ tmp = /ramdisk/tmp ・ usr = /cache/usr ・ var = /ramdisk/var ・ direct ・ bin ・ lib ・ sbin ・ cache (mount point for local hard disk, if any) ・ bin = /direct/bin ・ lib = /direct/lib ・ sbin = /direct/sbin ・ local = /mnt/local ・ usr ・ X11R6 = /dist/usr/X11R6 ・ ・ lpd ・ dist (mount point for runtime CD, via NFS) ・ mnt (other mount points) ・ local (mount point for local stuff, via NFS) ・ ramdisk (mount point for /dev/ramdisk) ・ floppy (mount point for /dev/fd0) ・ proc (proc filesystem mount point) ご覧のように、これは通常のルートファイルシステムと似ています。ラムディ スクに再配置されたものもありますが、同時にキャッシュディレクトリに置き かえられているものもあります。簡単に言うとファイルキャッシュの原則とは、 キャッシュサブディレクトリからシンボリックリンクが作られる時はいつでも、 そのリンク先になったもので置きかえらるということです。もしリンク先がサ ブディレクトリなら、そのサブディレクトリのおのおののエントリは、さらに 下につくられるファイルシステムのそれぞれのオリジナルのエントへのシンボ リックリンクになります。 さてここではシステムはどのような方法で作られるかということです。カー ネルがすべての初期化を完了すると、init は inittab に従い、 bcheckrc と brc という二つのスクリプトを順番に実行します。 bcheckrc はシステムの状態(clock,hostname,rootfilesystems) をチェックし、 brc はシステムを使用できるように準備します。 われわれの場合で言うなら、ルートファイルシステムは NFS を通じてマウン トされ、ホスト名はカーネルによって設定されるので、bcheckrc は clock を 設定するだけです。 それから、brc が動作します。 1. キーボードのレイアウトが設定されます。 2. proc ファイルシステムがマウントされますが、まだ書きこみができないの で、mtab の更新はされません。 3. ファイルシステムバッファの内容をディスクに書き出す deamon が始動し ます(update)。 4. ramdisk が書き込み可能パーティションを得るために設定されます。効率 の問題から /ramdisk/ramdisk.gz が存在すれば、ramdisk の圧縮されたイメー ジとみなされます。もしなければ作成されます。 ______________________________________________________________________ # # Setup a ramdisk in order to have a writable area # if [ -r /ramdisk/ramdisk.gz ]; then # # Do a quick ramdisk setup # gzip -c -d /ramdisk/ramdisk.gz | dd of=/dev/ramdisk bs=1024 > /dev/null 2>&1 else # # Enable nfs root (anon=0) write for this procedure to work ! # mke2fs -C -q -i 1024 /dev/ramdisk 720 mount -n -t ext2 /dev/ramdisk /mnt (cd /mnt; mkdir tmp etc dev var; \ cd var; mkdir log adm run spool lock tmp yp yp/binding) mknod /mnt/dev/zero c 1 5 chmod 777 /mnt/tmp /mnt/var/tmp umount /mnt mount -n -t ext2 /dev/ramdisk /ramdisk MAKEDEV-C generic MAKEDEV-C update umount /ramdisk dd if=/dev/ramdisk bs=1024 | gzip -c > /ramdisk/ramdisk.gz echo "Now disable root rw access on NFS server" /bin/sh fi ______________________________________________________________________ 5. それから ramdisk がマウントされます。mtab はまだ更新されません。 6. 書き込み可能なファイルシステムがいくつか作られます。 ______________________________________________________________________ # # Create necessary system files # cp /etc/mtab.ref /etc/mtab cp /etc/fstab.ref /etc/fstab : 2>/dev/null >/etc/utmp ln -s ../lock /var/run/locks 2>/dev/null ______________________________________________________________________ 7. ローカルなハードディスクに ext2 あるいはスワップパーティションがあ るか調べます。見つかれば正しい場所にマウントされます。このコードは少々 長いので、 brc 自身を直接見ることをお勧めします。 8. 利用できるスワップ領域があるなら有効にされ、システムが完成します。 2.2 DOS 6 と Windows 3.1 を設定する DOS と Windows 3.1 のサーバを利用するインストールのコンフィグレーショ ンは2つの段階で行われます。サーバ上にすべてのソフトウェアをインストー ルし、そしてクライアントブートディスクイメージを用意します。 2.2.1 サーバのインストール DOS のサーバインストールは Netware SYS: volume の DOS ディレクトリ以 下にすでに終っているでしょう。 Windows 3.1 のサーバインストールを行うために、ファイルをインストール するサブディレクトリ(われわれは SOFTWARE:\SOFTWARE\WIN3.1 を使用します) を作り、INSTALL /A を実行します。この手続きは Windows のマニュアルにあ ります。ユーザに読みだしアクセス権があるのを確認し、このディレクトリに システムログインスクリプトのサーチドライブ(われわれは U: を使用してい る)をマップします。 Windows 3.1 について、このサーバを利用するインストール方法を使うには、 それぞれのクライアントコンピュータで INSTALL /N を実行します。われわれ はインストール直後にシステムを使える状態にしたいので、少し違った方法を 取っています。 まだ Windows がインストールされていないコンピュータでサーバを利用し てインストール(INSTALL /N ) を実行しなさい。windows のディレクトリであ なたが望むすべてのカスタマイズをし、特別なドライバやその他をインストー ルします。WINDOWS\SYSTEM ディレクトリはネットワークディレクトリであり、 そこに何か別のものをインストールするなら書き込み可能にする必要があるこ とを覚えておきましょう。多くのソフトウェアはサーバの利用するインストー ル方法をを認識しないこと、そして使えるパッケージを使えるようするには少 し取り組まなくてはいけないことを注意しておいてください。 Windows の設定ができたら、 Windows ディレクトリのすべての 内容をサーバ(1メガバイトより小さくなるはずです)にコピーします。違った 設定が必要なら、別々のディレクトリを使いなさい。たとえばわれわれは、 SOFTWARE:BOOT\WINDOWS\ASSIST31 SOFTWARE:BOOT\WINDOWS\HPVECT31、 SOFTWARE:BOOT\WINDOWS\BRAVO31 このように3つの違った設定を使っています。 2.2.2. ブートディスクを作る あなたのサーバにあるのと同じ DOS のバージョンで、新しいブート可能な フロッピーを作りましょう。メモリマネジャ、デバイスドライバ、そしてその 上にあるネットワークドライバをコピーします。以下はわれわれのフロッピー の内容です。 ______________________________________________________________________ CONFIG SYS (contents listed below) HIMEM SYS ANSI SYS COUNTRY SYS BPUTIL SYS (TCP/IP Bootprom utility) KEYBOARD SYS MTMCDAI SYS (CD-ROM driver) AUTOEXEC BAT (contents listed below) PTASSIST BAT (contents listed below) DOSKEY COM IPX COM KEYB COM PKT8000 COM (SMC EtherEZ packet driver) COMMAND COM BPUTIL COM (TCP/IP Bootprom utility) EMM386 EXE NETX EXE (Netware client) SETVER EXE SHARE EXE 19 fichier(s) 507'247 octets ______________________________________________________________________ われわれの config.sys は次のようになっています。 ______________________________________________________________________ rem Fix memory allocation for use with EMM386 DEVICE=A:\bputil.sys -f rem Note: SMC PROM at CA00-D1FF, RAM at C800-C9FF. rem The PROM space can be recovered since the ramdisk is already loaded. DEVICE=A:\HIMEM.SYS DEVICE=A:\EMM386.EXE NOEMS /Y=v:\EMM386.EXE I=B000-B7FF X=C800-C9FF I=CA00-EFFF BUFFERS=30,0 FILES=60 DOS=UMB LASTDRIVE=E FCBS=16,0 DOS=HIGH switches /f /n BREAK=OFF SHELL=COMMAND.COM /P /E:1024 COUNTRY=041,,COUNTRY.SYS DEVICEHIGH=SETVER.EXE DEVICEHIGH=ANSI.SYS DEVICEHIGH=MTMCDAI.SYS /D:CDROMIDE ______________________________________________________________________ autoexec.bat は DOS を設定します。 ______________________________________________________________________ @ECHO OFF CLS PROMPT $P$G SET TEMP=c:\ SET TMP=C:\ SET PTASSIST=YES SET FTPVER=3.1 SET DDUR=NON LH KEYB SF,,KEYBOARD.SYS LH DOSKEY /INSERTcompliant LH DOSKEY H=DOSKcompliantEY /HISTORY LH SHAREcompliant ptassist.bat ______________________________________________________________________ ptassist.bat はネットワークを始動します。 ______________________________________________________________________ @ECHO OFF CLS LH PKT8000 0x65 0x280 0x0b 0xC800 LH IPX LH NETX CLS :loginplease F: LOGIN SC1NOV1/ if "%pctcp%"=="" goto loginplease LH MSCDEX /E /D:CDROMIDE LH H:\software\win3.1\smartdrv a- rem Remove boot RAMDISK cd \login copy a:\ptassist.bat C:\ subst a: C:\ F:\login\remboot.bat ______________________________________________________________________ PCTCP 変数がシステムログインスクリプトによって設定されます。ユーザが 間違ったログインネームを与えると、変数は設定されず、もう一度プロンプト がでます。 ドライブ A: がブートの完了時点で突然消失するので、エラーを避けるため にわれわれが注意していることがあります。 バッチファイル rmboo.bat が boot ramdisk を無効にします。 ______________________________________________________________________ @ECHO OFF rem restore TCP-IP bootprom memory and floppy drive a: F:\login\bputil.com -r rem effectuer les copies des fichiers sur la machine en local F:\login\startwin.bat ______________________________________________________________________ 以下に示すのは、必要な場合( startwin.bat を使って)クラ イアントマシンに自動的に Windows 3.1 をインストールする方法です。 ______________________________________________________________________ @echo off cls echo Please wait, preparing your computer for Windows 3.1 c: cd \ if exist c:\windows\win.com goto WindowsAlreadyHere md netscape > nul md windows > nul if "%PTASSIST%"=="YES" ncopy software:software/netscape/16bit/local.v20/netscape\*.* c:\netscape /s > nul if "%HPVECTRA%"=="YES" ncopy software:software/netscape/16bit/local.v20/netscape\*.* c:\netscape /s > nul if "%ASTBRAVO%"=="YES" ncopy software:software/netscape/16bit/v1.22/copy\*.* c:\netscape /s > nul if "%PTASSIST%"=="YES" ncopy software:boot/windows/assist31\*.* c:\windows > nul if "%HPVECTRA%"=="YES" ncopy software:boot/windows/hpvect31\*.* c:\windows > nul if "%ASTBRAVO%"=="YES" ncopy software:boot/windows/bravo31\*.* c:\windows > nul :WindowsAlreadyHere map s6:=c:\ map s12:=c:\windows ethdrv bootpact subst a: /D cls echo Some usefull commands: echo - to start Windows 3.1 ................................ WIN echo - to unload TCP/IP (and get more free memory) ......... INET UNLOAD ______________________________________________________________________ ethdrv コマンドは FTP ソフトウェアの TCP/IP ドライバをロードします。 その後われわれは BOOTPTAB ファイルを使い、BOOTPTAB ファイルの内容に従っ てマシンの IP アドレスを設定します。 Windows のディスクトップをカスタマイズもできるのを知っておいてくださ い。われわれはユーザのそれぞれの授業でデスクトップをカスタマイ ズできるように、 PROGMAN.INI ファイルにグループを追加する小さなプログ ラムを書きました。たとえば、ユーザが SMALLTALK 環境変数を設定すれば、 startwin.bat はその環境に Smalltalk プログラムを追加します。 bootdisk が一旦用意できれば、TCP/IP Bootprom の BPSHELL を使ってそ のイメージを作成します。そうすれば完了です。 2.3 Windows 95 を設定する 基本的に、 Windows 95 に対する設定は前述のものととてもよく似ています。 しかし、Windows 95 は想定しているようには動かないので詳細を記した構築 方法を書きます。ほんの少し変更するだけでも、驚くほど結果が違ってしまい ます。うまくいかなくても、われわれが設定の作業をするために1月半かけた ことを忘れないでください。1週間ほどの余裕を見ることは悪いことではない でしょう。 その他の役立つ情報には次のものがあります。 ・ Windows 95 のリソースキットはお手持ちの CD-ROM のなかの \Admin\Reskit\Reskit.HLP ・ Joe R. Doupnik の経験 ・ Microsoft の web site この文書は常に更新されているのを忘れないでください。Windows 95 を取 り扱う時、最悪なものは Plug-and-Play と言われるものです。これはたぶん将 来的にはよりいいものでしょうが、実際のところ現在はいいものではありませ ん。個人的なヒントとしては、できるなら無効にすることです。無効にしたく ないものはいつもたくさんあるでしょうが。 2.3.1 サーバのインストール ここでは Windows 3.1 で従来から使われている INSTALL /A に相当す る作業を実行する方法について述べます。 Windows 95 を動作させるマシンで次のように開始します。 admin\nettools\netsetup\netsetup.exe 1. パス設定をクリックし、\\server\volume\directory というような表記を 使って、Windows 95 をインストールしたい場所を入力します。われわれは \\sc1nov1\software\software\win95 としています。 2. Install をクリックし、サーバのラジオボタンを選択すれば OK です。 3. われわれはやはり手動でやるのでスクリプトを作らないボタンをクリック します。 4. 製品の ID を求められたら、シリアル番号を答えず、かわりに 950R6 を使 います。Doupnik の文書でこのしかけを見つけました。こうすることでサーバ の基礎作りの設定中に起こる多くのトラブルを防ぎます。 5. netsetup はネットワークドライブに Windows 95 をインストールします。 6. Exit ボタンをクリックします。 ここで MS-DOS 窓を開き、Windows 95 がインストールされたネットワーク ディレクトリに移動します。属性をプロテクトにしていない msbatch.inf を 使い、それを編集します(ついでに、 msbatch.inf は Netsetup を作らないよ うにしたセットアップスクリプトです)。 ______________________________________________________________________ H: cd \SOFTWARE\WIN95 attrib msbatch.inf -R edit msbatch.inf ______________________________________________________________________ あなたは次の例と正確に一致するようにしなければなりません。 NameAndOrg の部分だけは変更しないといけません。 ______________________________________________________________________ [Setup] Express=0 InstallType=3 Verify=0 CCP=0 ProductID=950R6 ProductType=1 Uninstall=0 [Network] WorkstationSetup=1 DisplayWorkstationSetup=1 HDBoot=0 RPLSetup=0 SaveSUBoot=1 display=1 [NameAndOrg] Name="CUI" Org="University of Geneva" ______________________________________________________________________ さて、これでサーバのインストールは終了です。 これからクライアントを設定しなければなりません。 2.3.2 マシンの設定 ここでは Windows 3.1 から、従来から使われている INSTALL /N を行う方 法について述べます。 クライアントマシンになる1台について、いつも使っている DOS ネットワー ククライアントで MS-DOS をブートします。ハードディスクからでも、 bootprom からでもなく、適切なフロッピーディスクからブートします。少な くとも Windows 95 のディレクトリに読み出しアクセスでサーバにログインし なさい。このディレクトリに移動し、パラメータなしでセットアップを始めま す。 ______________________________________________________________________ H: cd \SOFTWARE\WIN95 setup ______________________________________________________________________ しばらく待って Microsoft ライセンスに同意し、セットアップを始めるた めに Next をクリックします。 1. Network サーバから Windows をセットアップを起動する選択し、次に進み ます。 2. フロッピーディスクから Windows を始動する、を選択し、次に進みます。 3. マシンのディレクトリとして C:\WIN95 を使い、Next をクリックします。 4. すると、Setup はハードディスク上の temporary ファイルをコピーします。 5. カスタムインストールを選択し、 Next をクリックします。 6. あなたの名前と属する組織の名前を入力します。すでに適当なものが入力 されているなら、Next をクリックします。 7. 次に Windows はデバイスを走らせるために許可属性を尋ねます。われわれ の経験ではネットワークカード(これはたぶん SMC カードでの問題です)を走 らせるのを Windows の設定にまかせるとコンピュータをハングさせます。そ こで、No と答え、変更したいと答えるのがよいのです。そして Next をクリッ クします。ネットワークセクションを選択せず、ネットワークアダプタの名前 を正確に再度選択します。そして次に進みます。 8. われわれは Microsoft に接続したくないので、ここは答えません。次に行 きます。 9. あなたの望むように選んで次に進みます。 10. ネットワークの設定をします。リストボックスの目次は Setup で検出 された現在の設定になっているでしょう。われわれは Netware に対して Microsoft クライアントを使います。もしかわりに Monolithic NETX がリス トされているなら、バックしてそれを除き、次にいきます。そうすれば Microsoft クライアントが自動的に現われます。もしそうならないならリスト ボックスに入るまで、数分かけましょう。 ・ お使いのネットワークアダプタ ・ IPX ・ Netware に対する Microsoft クライアント 11. Netware Networks に対するクライアントの上でダブルクリックし、あな たが望むように(われわれは SC1NOV1 を使用) 選んだサーバを設定します。 12. IPX/SPX 互換プロトコルをダブルクリックし、適当なフレームのタイプ (データリンク層のプロトコル) (Advanced という項目の下にある)を選択しま す。われわれは Ethernet II を使用しています。 # frame データリンク層の転送単位。 # IPX(Internet Packet eXchange) Novell 社の Neware 製品でサポートして いるインターネットプロトコルのひとつ。IPX は IP プロトコルと類似したも の。Linux IPX-HOWTO と Linux NET-2-HOWTO を参考してください。 # SPX (Sequenced Packet Exchange) コネクションオリエンテッドの トランスポート層のプロトコルで、IPX (Internet Packet Exchange) の クライアント(の一つ)。 13. SMC EtherEZ を使っているなら、SMC EtherEZ をクリックし、検出するた めに設定( Resources という項目の下にある)を変更します。 14. さらに Protocol、 Microsoft、 TCP/IP をクリックします。それを設定 するのに時間をかけてはいけません。どのように設定するのも自由です。 15. 次をクリックします。 16. お使いのコンピュータを確認をします(重要ではない)、次をクリックします。 17. モニターのタイプを設定し、次をクリックします。お使いのモニターがリ ストのなかで見つからないなら、もっとよいものを望まなくても、Standard SVGA 1024x768 を選ぶか、あまり標準的でない解像度を使いたいなら他のものを試 します。われわれはモニターは Prostar 17" ですが、 Sony 17" を選択して います。 次に Setup はハードディスクに Windows 95 のローカル部分をインストール します。しばらくすると、新しいフロッピーを要求されます。それが Windows 95 のブートディスクになります。促されたら終了をクリックをし、しばらく 待って、コンピュータを消します。 2.3.3. 整備します MS-DOS (別のコンピュータであってもいい)で、Windows 95 のブートディス クから autoexec.bat を編集します。セットアップはあまりスマートではない ので、致命的なエラーがあります。次に示す3行で setmdir を置き換えなさ い。 ______________________________________________________________________ setmdir /R:C:\WIN95 set temp=C:\TEMP set tmp=C:\TEMP ______________________________________________________________________ 最初の行が主要な変更点です。Registery of Secrets が見つける場所を Windows に教えます。 /R なしだと、クライアントはハングするでしょう。他 の2行はインストールが、お使いのマシンのディレクトリをいっぱいにしてし まうのを避けるためです。 Windows 95 のブートディスクでクライアントマシンをブートします。 Netware サーバにログインし、しばらくすると自動的にセットアップが始まり ます。Windows 95 は DHCP request に答えを受けないことについて説明する かもしれません。それは心配いりません。もう一度 Netware サーバにログイ ンしなさい。Windows のパスワードを入力するのを求められたら、upper 領域 をクリアし、 OK をクリックしなさい。そうすれば Windows は再度聞いてこ ないでしょう。それから Setup はいくつかの作業をして、タイムゾーンの設 定に進みます。それからお使いのネットワークプリンタを設定し、もう一度マ シンをリブートします。 # DHCP (Dynamic Host Configuration Protocol): DHCP は BOOTP をベース にしたもので BOOTP を置き換える(RFC1541)。 # DHCP,DHCPd mini-HOWTO があります。 Windows 95 のブートディスクでクライアントマシンをブートします。 Netware サーバにログインし、 Windows 95 が起動し、ウェルカムウィンドウ が閉じるまで待ちます。最良の可能な解像度を得るために、適切なビデオカー ドアダプターを設定しなくてはいけません。われわれは S3 アダプターとよい モニターを持っていますが、Windows 自身は 1024x768 しか得られません。 お使いのアダプターの制作会社から ftp で直接ドライバを取得してください。 ソフトウェアはネットワークの基礎を作る設定をほとんどされていないので、 あなたはたぶん MS-DOS 窓を使って手動でシステムファイルをサーバの Windows 95 のシステムディレクトリ(われわれの場合では H:\software\win95\system になります)にコピーしないといけないでしょう。 次にスタートメニューからコントロールパネルを開き、Display 、設定、変更 を選択します。 Adapter type を設定する画面で、変更を選択し、ディスクを いれて、 OK にします。適当なアダプターのインストールを終了し、窓を閉じ、 リブートします。 Windows 95 のブートディスクでクライアントマシンをブートします。 Netware サーバにログインし、Windows 95 が起動するのを待ちます。ここで Microsoft TCP/IP を設定します。 Onnet TCP/IP を使用しますが、われわれ は Windows 95 のネットワークを基礎づけるインストールでそれを動かすこと ができないことに注意してください。スタートメニューからコントロールパネ ルを開き、 TCP/IP を選択します。 IP アドレス Specity を選択し、あなた の IP アドレスと subnet mask を入力します。Gateway には、デフォルトの gateway を設定します。DNS には、DNS を有効にし、あなたのホスト名とドメ イン名、そして DNS サーバがあればそのサーバとドメイン search リストを 入力します。 全部できたら、OK をクリックし、ネットワーク設定のコントロー ルパネルを閉じます。DNS が動かないことを除いて、TCP/IP が設定されてい るはずです。 さてここで、われわれはサーバを利用するセットアップの別のバグをさら にちゃんとしなければなりません。スタートメニューから、RUN を選び、そし て、REDEDIT と入力します。こうすれば Windows 95 のレジストリ を編集できます。 HKEY_LOCAL_MACHINE, System, CurrentControlSet, Services, VxD, MSTCP を開きます。このブランチのすべてのサブフィールド で、あなたのサーバ Windows 95 のシステムディレクトリで一連の %WINDIR% に置き換えます。 われわれの場合では、 HelperDIIName を変更し、 H:\software\win95\system\wsock32.dll に ProviderPath を変更しました。 regedit を閉じます。DNS レゾルバは次に Windows 95 を起動する時動くように なっています。 好みにあわせてデスクトップをカスタマイズします。追加のソフトウェアを インストールすることができますが、悪魔のしっぽを引っ張っるようなことを してはいけません。たとえば、最初に Microsoft Office をインストールする ようなことはしてはいけません。この件に関しては後で述べる詳細情報を見て ください。 2.3.4. サーバコンフィグレーションを保存する セットアップがうまくいったなら、Windows 95 のブートディスクでコンピュー タをリブートし、始動時に F8 キーを押します。ブートメニューが表示されま すので、Command prompt only を選択します。書き込み可能アクセスでサーバ にログインし、そしてDOS プロンプトが出るまで待ちます。 それをあとで復帰できるようにするため、サーバ上のディレクトリにすべて の利用できるものを保存したいわけです。次に示す2つの問題があります。 1. 隠しファイルばかりでなく、属性がプロテクトにできない隠しディレクト リもあります。 2. ロングファイルネームの問題があります。そしてわれわれは Novell サー バ上ではそれを望みません。 隠しにするべき必要は何もないので、最初の問題を取り除くもっとも簡単な 方法はカレントディレクトリからすべてのファイルを隠しにしないようにする 小さなプログラムを動作させます。 一度すべてのファイルを見ることができれば、cleanup しましょう。 C:\WIN95 に移動し、以下のものを取り除きます。 ・ SUBOOT ディレクトリはあなたのブートフロッピーと同じものを含んでいま す。 ・ SYSBACKUP ディレクトリは以前のさまざまな設定を含んでいます。 ・ スワップファイルが自動的に作成されます。 ・ すべての BAK、TXT、 DOI ファイルは不用です。 ・ PWL ファイルは Netware のパスワード(少し記号化されたもの) を含んでいます。 設定を保存するためにサーバのどこかに新しいディレクトリを作ります。わ れわれは H:\SOFTWARE\WIN95\PTASSIST に置いています。内部に WIN95 サブ ディレクトリを作り、たとえば xcopy を使って、このディレクトリに C:\WIN95 のすべてのものをコピーします。 ロングファイルネームを保存するためにわれわれが発見した最もよい方法は、 DOSLFNBK プログラムを使うことでした。それは DOS の下で動く以外 Microsoft LFNBK と本質的に同じものです。すなわち、たとえ Windows 95 を 動作させていなくても、ロングファイルネームを保存できます。われわれはそ れを H:\SOFTWARE\WIN95\DOSLFNBK このサブディレクトリから使っていて、ここにはロングファイルネームが保存 されています。 doslfnbk c:\ /f original /v /d original これは ORIGINAL.LFN というファイルにすべてのロングファイルネームを保存 し、ORIGINAL.LOGというファイルにログを書き出します。あなたがちょっと 違った設定を使いたいなら、これらのファイルをよりふさわしい名前にリネー ムしてください。 2.3.5. ブートディスクを完了する 最終のブートディスクイメージを準備するために用意しましょう。 autoexec.bat をこのように変更します。 ______________________________________________________________________ @echo off mode con codepage prepare=((850) ega.cpi) mode con codepage select=850 keyb sf,,keyboard.sys snapshot /S /M:100 net start NWRedir net use * /d cls net use F: \\SC1NOV1\SYS net use H: \\SC1NOV1\SOFTWARE PATH=H:\SOFTWARE\WIN95\;H:\SOFTWARE\WIN95\COMMAND set comspec=h:\software\win95\command.com set PTASSIST=YES f:\login\start95 ______________________________________________________________________ DOSLFNBK は 大きなツリーを回復するのにたくさんのメモリを必要とする ので、われわれはスナップに付加的なパラメータを加えることで network ド ライバに対してより少ないメモリを予約します。さらに設定を使うために連続 スクリプト start95.bat に伝える環境変数 PTASSIST を加えました。このス クリプトはここに示します。 ______________________________________________________________________ @echo off cls echo Please wait, preparing your computer for Windows 95 c: if exist c:\win95\win.com goto norestore cd h:\software\win95 if "%PTASSIST%"=="" goto noptassist xcopy h:ptassist\*.* c:\ /s /e > nul rem --- Next line should be run on a writable dir. C: will do fine echo y | lock c: > nul rem --- Have enough memory for this (350 Kb !). May use SNAPSHOT /S /M:100 h:doslfnbk\doslfnbk c:\ /r /f h:doslfnbk\ptassist > nul unlock c: h:reg\bootpreg h:reg\ptassist.reg c:\win95\patch.reg :noptassist cd \win95 regedit /L:system.dat /R:user.dat patch.reg rem --- Don't forget this, or Win95 will shut down the computer ! cd h:\ :norestore cd \ rem --- Disable BootProm f:\login\bputil -r setmdir /R:C:\WIN95 set temp=c:\temp set tmp=c:\temp ______________________________________________________________________ このスクリプトは基本的に Windows 3.1 に対する startwin.bat と同様で す。ファイルはサーバから戻され、ロングファイルネームを復旧させます。次 の段階は IP 設定のカスタマイズです。すべての IP パラメータはレジストリ に保存されているので、それらをカスタマイズする最も簡単な方法は適当な値 で小さなテキストファイルを作り、MS-DOS モードで Microsoft REGEDIT を使っ てレジストリにそれを取り込むことです。理論的には、このテキストファイル は TCP/IP Bootprom から BPUTIL ユーティリティ を使って簡単に作ることが できます。 不運にも、PnP は存在し、そして IP パラメータを設定するには十分ではあ りません。Windows 95 が始動する時、最初に現在のハードウェアに正確に適 合しないレジストリに関するすべての情報を捨てます。とりわけ、もしそのレ ジストリが同じイーサネット(MAC)アドレスに関係しない記述であれば、ネッ トワークカードについてのすべての情報を捨ててしまいます。それから別のも のを見つけるためにネットワークカードのすべての可能なタイプを調べ、そし てこのことがあなたのコンピュータをハングさせます。なんて素敵なことでしょ うか!つまり、われわれはネットワークカード記述へのパッチもまた持ってい るのです。 われわれは同時にすべてを変更する BOOTPREG という小さなプログラムを書 きました。このプログラムをコンパイルするために開発キットに関する Dirk Kpen EDV が必要になるだろうことを覚えておいてください。このプログラ ムは BOOTP reply あるいはハードウェア記述のいずれかからも関連情報を BOOTPREG:tagname の形にすべてのタグを変換します。 (訳注) PnP(Plug-and-Play) Linux Plug-and-Play FAQ は次のところにあります。 http://www.redhat.com/pnp/ 以下はわれわれの registery パッチファイルです。 ______________________________________________________________________ REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0001] "DriverDesc"="TCP/IP" "IPAddress"="BOOTPREG:IP:" "IPMask"="BOOTPREG:NETMASK:" "InfPath"="NETTRANS.INF" "DevLoader"="*ndis" "DeviceVxDs"="vtdi.386,vip.386,vtcp.386,vdhcp.386,vnbt.386" "DefaultGateway"="BOOTPREG:T129:" [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] "ComputerName"="BOOTPREG:MACHINE:" "Workgroup"="University" "Comment"="CUI" [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP] "LMHostFile"="C:\\WIN95\\lmhosts" "NodeType"="1" "EnableDNS"="1" "HostName"="BOOTPREG:MACHINE:" "Domain"="unige.ch" "SearchList"="unige.ch" "NameServer"="129.194.4.6,129.194.4.32,129.194.8.7" "Lanabase"="0" [HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName] "ComputerName"="BOOTPREG:MACHINE:" [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Arbitrators\AddrArb] "0000"="00000000-000D1FFF,000E0000-000FFFFF,80000000-81FFFFFF" [HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\BOOTPREG:MACID:C0] "HardwareID"="*SMC8416,ISAPNP\\SMC8416" "HWRevision"="1.0.10" "DeviceDesc"="SMC EtherEZ (8416)" "Class"="Net" "Driver"="Net\\0000" "CompatibleIDs"="*SMC8416" "Mfg"="SMC" "ConfigFlags"=hex:10,00,00,00 [HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\BOOTPREG:MACID:C0\LogConfig] "0000"=hex:00,04,00,00,00,20,00,00,10,00,00,00,04,00,00,00,00,00,00,00,a8,0e,\ 00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,00,00,00,00,00,e0,ff,20,\ 00,40,02,ff,03,00,00,04,03,2c,00,00,00,01,00,00,00,01,00,14,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,e0,ff,ff,00,20,00,00,00,00,0c,00,ff,ff,0f,00,00,\ 00,00,00,2c,00,00,00,01,80,00,00,01,00,14,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,e0,ff,ff,00,80,00,00,00,00,0c,00,ff,5f,10,00,00,00,00,00,00,00,00,\ 00 [HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\BOOTPREG:MACID:C0\Bindings] "NWLINK\\0000"="" "MSTCP\\0000"="" [HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\BOOTPREG:MACID:C1] "HardwareID"="*SMC8416,ISAPNP\\SMC8416" "HWRevision"="1.0.10" "DeviceDesc"="SMC EtherEZ (8416)" "Class"="Net" "Driver"="Net\\0000" "CompatibleIDs"="*SMC8416" "Mfg"="SMC" "ConfigFlags"=hex:10,00,00,00 [HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\BOOTPREG:MACID:C1\LogConfig] "0000"=hex:00,04,00,00,00,20,00,00,10,00,00,00,04,00,00,00,00,00,00,00,a8,0e,\ 00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,00,00,00,00,00,e0,ff,20,\ 00,40,02,ff,03,00,00,04,03,2c,00,00,00,01,00,00,00,01,00,14,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,e0,ff,ff,00,20,00,00,00,00,0c,00,ff,ff,0f,00,00,\ 00,00,00,2c,00,00,00,01,80,00,00,01,00,14,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,e0,ff,ff,00,80,00,00,00,00,0c,00,ff,5f,10,00,00,00,00,00,00,00,00,\ 00 [HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\BOOTPREG:MACID:C1\Bindings] "NWLINK\\0000"="" "MSTCP\\0000"="" [HKEY_LOCAL_MACHINE\TempKey\System\CurrentControlSet\Services\VxD\VNETSUP] "ComputerName"="BOOTPREG:MACHINE:" "Workgroup"="University" "Comment"="CUI" [HKEY_LOCAL_MACHINE\TempKey\System\CurrentControlSet\Control\ComputerName\ComputerName] "ComputerName"="BOOTPREG:MACHINE:" ______________________________________________________________________ ご覧頂いたように、ネットワークカードは2度記述されています。これは設 定された方法によるからであり、C0 で1度、C1 で1度、PnP スキャンに少し 違った反応します。 あなたはたぶんこのファイルを直接的に使いたくないでしょうが、ご自身の ネットワークカードにそれをあてはめなければならないでしょう。もっともさ さいなことがハードウェア設定を変更するなら、Windows 95 は変更を検出し、 デバイスを捨てます。たとえば、 Bootprom を有効にすれば、 LogConfig 部分が変更になるので、Bootprom を有効(そしてスペースバーを押 すことで BOOTP を中止する)にする設定が必要になるかもしれません。 お使いのコンピュータが PnP をサポートしているならものごとはかなり悪 くなります。すべてのアダプタ( SVGA、 network、 Soundblaster、 Mouse な ど)はすべてのクライアントに対して同じスロットにさされなければいけませ ん。そうでないと、PnP が動作するでしょうし、関連するデバイスに対してす べて設定したことが失われるでしょう。ついでながら、PnP マウス検出は わ れわれの Logitech マウスでは動きませんでした。これが最後(が、とりわけ 最後)の段階ですることです。ここで、あなたの Windows 95 のブートディス クは準備が整っています。BPSHELL を使ってそのイメージを作り、そして祈り ましょう。 2.3.6 追加のソフトウェアをインストールする 追加でソフトウェアをインストールする予定なら、前述の設定を使ってマシ ンを新規に始動し、ソフトウェアを追加します。そしてはじめての時(XCOPY 、 それから DOSLFNBK)と同様設定を保存します。 Windows 95 に MS-Office をインストールする予定なら、サーバを利用する インストールを使いたいでしょう。問題なく動くでしょうが、2つの問題に注 意した方がいいです。 1. クライアントインストールを動作させる前に、小さなバグをちゃんとすべ きです。MS-DOS 窓を開き、attrib を使って vredir.vxd ファイルからプロテ クトをはずします。そうでないとセットアップは失敗します。 attrib H:\software\win95\system\vredir.vxd -R 2. インストール終了後、クライアントはフロッピーディスクからブート可能 になりますが、MS-Office のセットアップがレジストリをぐちゃぐちゃにする ので Bootprom からはもう何もおこりません。われわれが見つけた唯一の解決 方法は隠しファイル(ハードディスクにある SYSTEM.DAT や USER.DAT) を コ マンドラインモード(ブートにF8 キーを使って)でこのコンピュータを始動し、 レジストリのテキスト出力をする REGEDIT を使うために、Windows 95 が動作 している別のコンピュータにコピーすることです。MS-Office をインストール する前後にやりなさい、そして、2つの間ですべての違いを含むファイルを作 ります。 理屈でいえば、 MS-Office で動くレジストリを得るために、 MS-Office な しにこの差分ファイルをレジストリに取り入れることができるはずです。不運 にも、この取り込みはレジストリが REGEDIT に対してはあまりにも大きくなっ ているので、たぶんうまくいかないでしょう。差分ファイルを2つの部分に分 割し、そしておのおのの別々に取り込みなさい。もしひとつの部分が失敗する なら、再度2つに分け、そしてすべてが取り込まれるまで(われわれが取り込 んだ最後の部分はたった1行だった)繰り返します。 完了したら、MS-Office に対する必要な情報をすべて含んでいるレジストリ を持つことになりますが、セットアップで作られたひとつのものよりも小さい ものになるでしょう。そうすれば、それで bootprom と一緒に動作するでしょう。 netscape をインストールするつもりなら、ネットワークインストールは利 用できないことを注意しましょう(次の版ではそれができるでしょう)。ローカ ルにインストールすることでネットワークディレクトリにすべてのバイナリを コピーし、そして、ネットワークドライブを指すように、レジストリ(Windows 95 モードで REGDIT を使って)ですべてのパスを変更し、手動でやればできま す。 3. 検討 われわれの設定に関係する問題を議論します。 3.1 bootprom 対 ハードディスク bootprom は以前からありましたが、通常はディスクレスコンピュータに対 してだけ使われています。われわれの意見では、 bootprom は双方にとって利 点があるので、ローカルハードディスクを持つコンピュータにとってもより関 心の高いものです。 ・ bootprom はコンピュータはいつも同じ方法でブートし、ウイルス攻撃やパー ティションテーブルを壊すようなことはしないので、より頑強な設定を作りま す。われわれがやっているようにオペレーティングシステムをロードする前に ハードディスクをきれいにしさえすれば利用することができます。 ・ ローカルのハードディスクは、キャッシュを通じて、効果的にスワップさ せ、ネットワーク障害を減らすので、より効果的な設定になります。 3.2 どのような bootprom を選ぶか 数種類の bootprom が PC で利用できます。Koeppen EDV-Beratungs-GmbH から TCP/IP bootprom を選択したのはいくつかの理由がありました。 ・ BOOTP プロトコルは、RFC で公的に定義されている BOOTP プロトコルに根 拠をおいています。その定義は BOOTP サーバが知らないクライアントから request を受ける時、サーバは答えないと述べています。残念ながらあなたが MSD ブートサーバで経験したように、これが多くの部分からなるサーバの間で 妨害を避けます。さらに、IP ブロードキャストはローカルサブネットに限ら れているので、それらの IPX 版よりも少ししかノイズを生じません。 ・ 特別なオペレーティングシステムにつながっていない。 ・ 請求すれば技術的な情報と API 情報が利用できる。 # API Application Program Interface の略 ◎ ブートプロセスは多くの方法で制限をつけることができます。特に BIOS がこの型には含まれていない古いタイプの AST コンピュータで、フロッピー 起動が先になるのを可能にしました。 # AST は Dell や Compaq のような PC メーカの一つ ・ (たとえば、DOS のメモリ管理に関して)最適な設定を可能にします。 ・ ブートメニューを構築し維持するためにツール類が提供されています。 --------------------------------- 日本語訳:中谷千絵 jeanne@mbox.kyoto-inet.or.jp 23 Apr. 1997 日本語訳についての問い合わせは jeanne@mbox.kyoto-inet.or.jp 日本語訳は Linux-JF プロジェクトの次の方々から 多くのご助言を頂きました。ありがとうございます。 Hiro Sugawaraさん hiro@arkusa.com 中野 武雄さん nakano@apm.seikei.ac.jp 伊藤 希さん nozomi@biol.tsukuba.ac.jp 吉田英樹さん hideki@isl.rdc.toshiba.co.jp ----------------------------------