  Configuring Remote-Boot Workstations with Linux, DOS 6.20,
  Windows 3.1 and Windows 95
  Marc Vuilleumier Stuckelberg and Sandro Viale
  v1.0, August 1996
  中谷千絵 jeanne@mbox.kyoto-inet.or.jp
  v1.0j, 23 April 1997

  この文書は、始動時に、それぞれのクライアントが使用するオペレーティング
  システムを選択できるように、複数の PC 群に対してサーバーを利用したコン
  フィグレーションを行う方法について述べています。このコンフィグレーショ
  ンの重要な点は TCP/IP bootprom で、それは各自のブートディスクイメージ
  のひとつを起動時にユーザに選択させるようにしています。説明の大部分はさ
  まざまなオペレーティングシステムに関してサーバを利用したインストール法
  の核心部分のコンフィグレーションです。この文書の最新版は  <http://cui-
  www.unige.ch/info/pc/remote-boot/howto.html> にあります。ハイパーリン
  クでソフトウェアとその他関連のものもロードできるようになっていま
  す。Linuxdoc-SGML、 DVI、また postscript 版も上述の場所にあります。

  1.  はじめに

  ここで述べたコンフィグレーションは1996年の夏にジュネーブ大学
  University of Geneva の CUI で研究開発されました。コンピュータ科学科
  The Computer Science Department は Novell Netware サーバ、 NFS (``#'')
  サーバと多数の PC を使っており、これらは以下の用途に分類されます。

  o  学生専用コンピュータ

  o  学術研究と授業用コンピュータ

  われわれは次の目的で現行のコンフィグレーションを開発しました。

  o  すべてのコンピュータは Linux、DOS、Windows 3.1 あるいは Windows 95
     を動作させることができます。それぞれその都度の作業ごとに希望するオ
     ペレーティングシステムを選択できるようにしました。

  o  オペレーティングシステムを含むすべてのソフトウェアは、最初のインス
     トールとアップグレードを簡単にするためにサーバ上に置くべきです。

  o  クライアントコンピュータは、サーバ上で書き込み可能でアクセスしなく
     ても動作できるはずです。

  o  クライアント側のコンフィグレーションは最小限に減らした方がよい。ク
     ライアントは Novell サーバから自動的に IP 設定パラメーターを受け取
     り、この情報は単一のファイルに置かれ、すべてのオペレーティングシス
     テムで使用されます。

  o  すべてのコンピュータはウイルス攻撃から保護されていなければなりませ
     ん。

  o  いずれかのコンピュータを使うためにユーザは Novell あるいは UNIX
     サーバにログインしなければなりません。

  o  学生用コンピュータはそれぞれの始動時にきちんときれいな状態にされて
     いなければなりません。すなわち、PC はいつもインストール直後のように
     なっているべきです。

  以上のような制約があったので Koeppen EDV-Beratungs-GmbH の優れた製品で
  ある TCP/IP Bootprom をわれわれのコンフィグレーションのベースに用いる
  ことにしました。bootprom は オペレーティングシステムの種類を問わないの
  で、とりわけ興味あるものです。ちょうどフロッピーディスクに匹敵し、 DOS
  や Windows 95 と同様に Linux の起動のためにより簡単に使用できます。

  (-- # NFS(Network File System)(用語集)： Sun Microsystem により開発さ
  れた透過ファイルアクセスシステムの実装。広く普及している。 NFS-
  Root、NFS-Root-Client mini-HOWTO があります。--)

  1.1.  ネットワーク

  われわれの PC は２つのネットワークプロトコル、IPX (``#'') と IP
  (``#'') を 配慮しているだけです。 IPX 側では、DOS や Windows のソフト
  ウェアとユーザファイルを共有するために単体の Novel Netware を３つ使用
  しています。IP 側では、 NFS を使って Linux用 のソフトウェアとユーザ区
  画を共有するために SUN サーバを使用しています。ジュネーブ大学はいくつ
  かのサブネットに小分けされたクラス B ドメインを持っています。CUI は４
  つのサブネットを使用しており、そのうちの１つが学生専用になっています。

  (-- # IP (Internet Protocol)(用語集)：インターネットプロトコル。TCP/IP
  プロトコルモデルの名かのインターネット層のプロトコルの１つ。--)

  (-- # 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 (``#'') 要
     求を出します。

  3. クライアントが Novell サーバと同じサブネット上にない限り、その要求
     はサーバ自身への BOOTP gateway を通して Novell サーバに送られること
     になります。

  4. Novell サーバが その要求を出している PC を認識するなら、BOOTP reply
     を返します。BOOTP reply には、クライアントの IP アドレス、デフォル
     ト gateway 、どのブートディスクイメージを使うかのような情報が含まれ
     ます。一方、認識されないなら、サーバは要求を破棄します。

  5. それから bootprom は TFTP プロトコルを使って、Novell サーバからブー
     トディスクイメージをロードします。そしてこのイメージでフロッピー
     ディスクを BIOS レベルでエミュレートします。

  6. PC はこのディスクイメージで起動します。このディスクイメージはブート
     プログラム(まだオペレーティングシステムは入っていません)が入ってい
     るだけのものを作ります。

  7. その PC が学生のコンピュータなら、プログラムはローカルなハードディ
     スクのパーティションテーブルをリセットし、そして DOS 領域を高速
     フォーマットして始動します。ここまではコンピュータが起動してから３
     秒以内に終了します。

  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 スタック (``#'') が入っています。

     a. bootprom は RAM のどこかにそれ自身をコピーするので、使用する
        32Kb のアドレススペースは EMM386 で復帰させることができます。

     b. キーボードドライバやネットワークドライバのようなデバイスドライバ
        がロードされます。

     c. ユーザは Netware に login を促されます。

     d. サーバログインスクリプトが ウイルス検出をする Vshield をロードし
        ます。

     e. bootprom フロッピーディスクエミュレーションはもう必要がないの
        で、それが占めている RAM は解放されます。

     f. クライアントローカルファイルがハードディスク上に存在しなければ、
        Netware サーバからコピーされます(Windows 3.1 と Netscape に対し
        て約 350Kb 必要：１秒ほどかかります)。

     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 が起動します。ワークステーションは用意が整います。

  学生のコンピュータはハードディスクが各自の起動時にその都度初期化される
  ので、リスクなしにいつでも電源を切ってしまうことができます。

  突然電源を切られてローカルディスクにゴミが残っているコンピュータの場
  合、その設定が混乱しているなら、次回の始動で新しいインストールをするた
  めに、関連のあるオペレーティングシステムを含むすべてのディレクトリツ
  リーを消してしまえばよいのです。

  (-- # BOOTP：ブートストラップを転送するためのプロトコル (The Unix
  Super Text 下563頁) RFC (``#'')(Request for Comments) :1048 も参考にし
  てください。--) (-- # RFC Request for Comments コメント要求(用語集)：
  主に TCP/IP プロトコル族の標準仕様を規定するドキュメント群。--) (-- #
  TCP/IP stack：スタック(参考)プロトコルスタック １つのプロトコル体系か
  ら選び抜かれたプロトコル群(インターネット構築入門：２５頁)--)

  2.  設定方法

  BOOTP サーバは設定がとても簡単です。マニュアルの手引に従うだけです。わ
  れわれは RFC1048 風の BOOTP （プロトコル）の応答 と 長い TFTP パケット
  (``*'')を使用しています。

  クライアント側の設定も簡単です。ネットワークカードに 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 パッケージに
  入っています。様々なプラットホームに対応したものがあります。本当に大変
  な仕事は、さまざまのオペレーティングシステムのサーバを利用するコンフィ
  グレーションから始まります。

  (-- 訳注：long TFTP packets： RFC1350 の 512 バイトではなく、RFC1783
  の「ブロックサイズオプション」による長いパケットサイズを許している。
  RFC 参考 RFC1048,RFC1350,RFC1783--)

  2.1.  Linux を立ち上げる

  まず始めに、インストールに利用できる様々な Linux 配布物からひとつを選
  びます。われわれは Linux-FT を使用しました。Linux-FT だけが キャッシュ
  化したファイルシステムをサポートしているからです。たとえば NFS のよう
  なやや遅いファイルシステムから得られたデータをローカルハードディスクに
  保存します。ローカルのハードディスクがないか、あるいはネットワークで
  ロードできる環境がないなら、他のものを選んだ方がいいでしょう。
  Lasermoon はカーネル 2.0.で Linux-FT の新版を出す計画はまだないの
  で、RedHat 社の配布物で Lasermoon のファイルキャッシュ(一般に利用でき
  る)を利用することについて関心を持つのも面白いでしょう。とにかく、どこ
  にでもある配布物をインストールすることで、Linux を動作させることができ
  ます。

  2.1.1.  カーネルを構築する

  次に Linux オペレーティングシステムに対してカーネルの再構築をします。
  これは、クライアントコンピュータが Linux を始動するために渡される唯一
  のソフトウェアなので、完全なオペレーティングシステムを起動するのに必要
  なものをすべて含んでいなければいけないことを覚えておいてください。さら
  に正確に言うなら、少なくとも次に述べるようなことを満たしていなければい
  けません。

  o  クライアントコンピュータハードウェアに対するサポート

  o  ネットワークをサポートしていること

  o  NFS-Root サポート

  o  TCP/IP Bootprom の仕様を満足して始動する

  o  オプションで、ファイルキャッシュのサポート

  最初の２つはこれまでのすべての標準的な配布物にあるものです。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 Apprication Program Interface：トランスポート層を使ってプロ
  グラムを書くために、いくつかのUNIX プログラミングインターフェイスが開
  発されている。(インターネット構築入門：２９頁)--)

  2.1.2.  ルートファイルシステムを構築する

  ルートツリーはカーネルによって自動的にマウントされる唯一のものです。シ
  ステムを起動して全部のファイルシステムをマウントするまでの作業に必要な
  デバイスやバイナリ、ライブラリが含まれています。マウントポイントもここ
  にあります。われわれはルートファイルシステムをできるだけ小さくすること
  を提案していますが、それを減らそうとするのに多くの時間をかけたくありま
  せん。NFS-Root-Mini-Howto であなたのルートファイルシステムの内容につい
  て役立つヒントが見つかるでしょう。

  われわれは次のようなことを目的にしてルートファイルシステムを構築しまし
  た。

  o  リードオンリーで NFS マウントを使う

  o  ローカルなハードディスクなしに Linux を動作できるようにする

  o  NFS キャッシングにローカルなハードディスクを有効に利用できるように
     する。

  以上の条件を考慮して次に示すような構造(心配無用、これから説明します)を
  採用することにしました。

  o  bin = /cache/bin

  o  dev = /ramdisk/dev

  o  etc (the usual contents of etc, except some files such as...)

  o  mtab = /ramdisk/etc/mtab

  o  fstab = /ramdisk/etc/fstab

  o  ftp

  o  lib = /cache/lib

  o  local = /cache/local

  o  root

  o  sbin = /cache/sbin

  o  tmp = /ramdisk/tmp

  o  usr = /cache/usr

  o  var = /ramdisk/var

  o  direct

  o  bin

  o  lib

  o  sbin

  o  cache (mount point for local hard disk, if any)

  o  bin = /direct/bin

  o  lib = /direct/lib

  o  sbin = /direct/sbin

  o  local = /mnt/local

  o  usr

  o  X11R6 = /dist/usr/X11R6

  o  lpd

  o  dist (mount point for runtime CD, via NFS)

  o  mnt (other mount points)

  o  local (mount point for local stuff, via NFS)

  o  ramdisk (mount point for /dev/ramdisk)

  o  floppy (mount point for /dev/fd0)

  o  proc (proc filesystem mount point)

  ご覧のように、これは通常のルートファイルシステムと似ています。ラムディ
  スクに再配置されたものもありますが、同時にキャッシュディレクトリに置き
  かえられているものもあります。簡単に言うとファイルキャッシュの原則と
  は、キャッシュサブディレクトリからシンボリックリンクが作られる時はいつ
  でも、そのリンク先になったもので置きかえらるということです。もしリンク
  先がサブディレクトリなら、そのサブディレクトリのおのおののエントリは、
  さらに下につくられるファイルシステムのそれぞれのオリジナルのエントへの
  シンボリックリンクになります。

  さてここではシステムはどのような方法で作られるかということです。カーネ
  ルがすべての初期化を完了すると、init は inittab に従い、 bcheckrc と
  brc という二つのスクリプトを順番に実行します。 bcheckrc はシステムの状
  態(clock,hostname,rootfilesystems) をチェックし、 brc はシステムを使用
  できるように準備します。われわれの場合で言うなら、ルートファイルシステ
  ムは NFS を通じてマウントされ、ホスト名はカーネルによって設定されるの
  で、bcheckrc は clock を設定するだけです。 それから、brc が動作しま
  す。

  1. キーボードのレイアウトが設定されます。

  2. proc ファイルシステムがマウントされますが、まだ書きこみができないの
     で、mtab の更新はされません。

  3. ファイルシステムバッファの内容をディスクに書き出す daemon が始動し
     ます(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.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 ディレクトリのすべての内容をサーバ(
  １メガバイトより小さくなるはずです)にコピーします。違った設定が必要な
  ら、別々のディレクトリを使いなさい。たとえばわれわれは、

       SOFTWARE:BOOT\WINDOWS\ASSIST31
       SOFTWARE:BOOT\WINDOWS\HPVECT31、
       SOFTWARE:BOOT\WINDOWS\BRAVO31

  このように３つの違った設定を使っています。

  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 は想定しているようには動かないので詳細を記した構築
  方法を書きます。ほんの少し変更するだけでも、驚くほど結果が違ってしまい
  ます。うまくいかなくても、われわれが設定の作業をするために１月半かけた
  ことを忘れないでください。１週間ほどの余裕を見ることは悪いことではない
  でしょう。

  その他の役立つ情報には次のものがあります。

  o  Windows 95 のリソースキットはお手持ちの CD-ROM のなかの
     \Admin\Reskit\Reskit.HLP

  o  Joe R. Doupnik の経験

  o  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 を行う方法
  について述べます。

  クライアントマシンになる１台について、いつも使っている 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 クライアントが自動的に現われます。もしそうならないならリ
     ストボックスに入るまで、数分かけましょう。

     o  お使いのネットワークアダプタ

     o  IPX

     o  Netware に対する Microsoft クライアント

  11.
     Netware Networks に対するクライアントの上でダブルクリックし、あなた
     が望むように(われわれは SC1NOV1 を使用) 選んだサーバを設定します。

  12.
     IPX/SPX (``#'') 互換プロトコルをダブルクリックし、適当なフレーム
     (``#'') のタイプ (データリンク層のプロトコル) (Advanced という項目
     の下にある)を選択します。われわれは Ethernet II を使用しています。

  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 のブートディスクになります。促されたら終了をクリックをし、しばらく
  待って、コンピュータを消します。

  (-- # frame： データリンク層の転送単位。--) (-- # IPX(Internet Packet
  eXchange) Novell 社の Neware 製品でサポートしているインターネットプロ
  トコルのひとつ。IPX は IP プロトコルと類似したもの。Linux IPX-HOWTO と
  Linux NET-2-HOWTO を参考してください。--) (-- # SPX (Sequenced Packet
  Exchange) コネクションオリエンテッドのトランスポート層のプロトコル
  で、IPX (Internet Packet Exchange) のクライアント（の一つ）。--)

  2.3.3.  整備します

  MS-DOS (別のコンピュータであってもいい)で、Windows 95 のブートディスク
  から autoexec.bat を編集します。セットアップはあまりスマートではないの
  で、致命的なエラーがあります。次に示す３行で setmdir を置き換えなさ
  い。

       setmdir /R:C:\WIN95
       set temp=C:\TEMP
       set tmp=C:\TEMP

  最初の行が主要な変更点です。Registery of Secrets が見つける場所を
  Windows に教えます。 /R なしだと、クライアントはハングするでしょう。他
  の２行はインストールが、お使いのマシンのディレクトリをいっぱいにしてし
  まうのを避けるためです。

  Windows 95 のブートディスクでクライアントマシンをブートします。
  Netware サーバにログインし、しばらくすると自動的にセットアップが始まり
  ます。Windows 95 は DHCP (``#'') request に答えを受けないことについて
  説明するかもしれません。それは心配いりません。もう一度 Netware サーバ
  にログインしなさい。Windows のパスワードを入力するのを求められた
  ら、upper 領域をクリアし、 OK をクリックしなさい。そうすれば Windows
  は再度聞いてこないでしょう。それから Setup はいくつかの作業をして、タ
  イムゾーンの設定に進みます。それからお使いのネットワークプリンタを設定
  し、もう一度マシンをリブートします。

  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 をインストールするよ
  うなことはしてはいけません。この件に関しては後で述べる詳細情報を見てく
  ださい。

  (-- # DHCP (Dynamic Host Configuration Protocol)： DHCP は BOOTP を
  ベースにしたもので BOOTP を置き換える（RFC1541）。 DHCP,DHCPd mini-
  HOWTO があります。--)

  2.3.4.  サーバコンフィグレーションを保存する

  セットアップがうまくいったなら、Windows 95 のブートディスクでコン
  ピュータをリブートし、始動時に F8 キーを押します。ブートメニューが表示
  されますので、Command prompt only を選択します。書き込み可能アクセスで
  サーバにログインし、そしてDOS プロンプトが出るまで待ちます。

  それをあとで復帰できるようにするため、サーバ上のディレクトリにすべての
  利用できるものを保存したいわけです。次に示す２つの問題があります。

  1. 隠しファイルばかりでなく、属性がプロテクトにできない隠しディレクト
     リもあります。

  2. ロングファイルネームの問題があります。そしてわれわれは Novell サー
     バ上ではそれを望みません。

  隠しにするべき必要は何もないので、最初の問題を取り除くもっとも簡単な方
  法はカレントディレクトリからすべてのファイルを隠しにしないようにする小
  さなプログラムを動作させます。

  一度すべてのファイルを見ることができれば、cleanup しましょう。
  C:\WIN95 に移動し、以下のものを取り除きます。

  o  SUBOOT ディレクトリはあなたのブートフロッピーと同じものを含んでいま
     す。

  o  SYSBACKUP ディレクトリは以前のさまざまな設定を含んでいます。

  o  スワップファイルが自動的に作成されます。

  o  すべての BAK、TXT、 DOI ファイルは不用です。

  o  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:"

  ご覧頂いたように、ネットワークカードは２度記述されています。これは設定
  された方法によるからであり、C0 で１度、C1 で１度、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 をインストールする予定なら、サーバを利用するイ
  ンストールを使いたいでしょう。問題なく動くでしょうが、２つの問題に注意
  した方がいいです。

  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 をインストールする前後にやりなさい、そして、２つの間
     ですべての違いを含むファイルを作ります。

  理屈でいえば、 MS-Office で動くレジストリを得るために、 MS-Office なし
  にこの差分ファイルをレジストリに取り入れることができるはずです。不運に
  も、この取り込みはレジストリが REGEDIT に対してはあまりにも大きくなっ
  ているので、たぶんうまくいかないでしょう。差分ファイルを２つの部分に分
  割し、そしておのおのの別々に取り込みなさい。もしひとつの部分が失敗する
  なら、再度２つに分け、そしてすべてが取り込まれるまで(われわれが取り込
  んだ最後の部分はたった１行だった)繰り返します。

  完了したら、MS-Office に対する必要な情報をすべて含んでいるレジストリを
  持つことになりますが、セットアップで作られたひとつのものよりも小さいも
  のになるでしょう。そうすれば、それで bootprom と一緒に動作するでしょ
  う。

  netscape をインストールするつもりなら、ネットワークインストールは利用
  できないことを注意しましょう(次の版ではそれができるでしょう)。ローカル
  にインストールすることでネットワークディレクトリにすべてのバイナリをコ
  ピーし、そして、ネットワークドライブを指すように、レジストリ(Windows
  95 モードで REGDIT を使って)ですべてのパスを変更し、手動でやればできま
  す。

  3.  検討

  われわれの設定に関係する問題を議論します。

  3.1.  bootprom 対 ハードディスク

  bootprom は以前からありましたが、通常はディスクレスコンピュータに対し
  てだけ使われています。われわれの意見では、 bootprom は双方にとって利点
  があるので、ローカルハードディスクを持つコンピュータにとってもより関心
  の高いものです。

  o  bootprom はコンピュータはいつも同じ方法でブートし、ウイルス攻撃や
     パーティションテーブルを壊すようなことはしないので、より頑強な設定
     を作ります。われわれがやっているようにオペレーティングシステムを
     ロードする前にハードディスクをきれいにしさえすれば利用することがで
     きます。

  o  ローカルのハードディスクは、キャッシュを通じて、効果的にスワップさ
     せ、ネットワーク障害を減らすので、より効果的な設定になります。

  3.2.  どのような bootprom を選ぶか

  数種類の bootprom が PC で利用できます。Koeppen EDV-Beratungs-GmbH か
  ら TCP/IP bootprom を選択したのはいくつかの理由がありました。

  o  BOOTP プロトコルは、RFC で公的に定義されている BOOTP プロトコルに根
     拠をおいています。その定義は BOOTP サーバが知らないクライアントから
     request を受ける時、サーバは答えないと述べています。残念ながらあな
     たが MSD ブートサーバで経験したように、これが多くの部分からなるサー
     バの間で妨害を避けます。さらに、IP ブロードキャストはローカルサブ
     ネットに限られているので、それらの IPX 版よりも少ししかノイズを生じ
     ません。

  o  特別なオペレーティングシステムにつながっていない。

  o  請求すれば技術的な情報と API 情報が利用できる。

     (ブートプロセスは多くの方法で制限をつけることができます。特に BIOS
     がこの型には含まれていない古いタイプの AST (``#'') コンピュータで、
     フロッピー起動が先になるのを可能にしました。)

  o  (たとえば、DOS のメモリ管理に関して)最適な設定を可能にします。

  o  ブートメニューを構築し維持するためにツール類が提供されています。

  (-- # AST は Dell や Compaq のような PC メーカの一つ--)

  4.  日本語訳について

  日本語訳：中谷千絵 jeanne@mbox.kyoto-inet.or.jp
  23 Apr. 1997

  「訳注」以外に「用語説明」をつけました。# 印は用語説明。(用語集) と表
  示した解説文は、「インターネット構築入門」(S. カールミッチェル, J.S.
  クォーターマン著：斉藤靖, 小山裕司訳, トッパン, 1995年) の「用語集」 (
  ５３３頁から) を参照引用したものです。(インターネット構築入門) と記し
  たものは本文を参考にしたもので、参考にした頁をつけました。その他関連す
  る HOWTO または mini-HOWTO などを記したものもあります。

  日本語訳についての問い合わせは 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

