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 で、それは各自のブートディスクイメージ のひとつを起動時にユーザに選択させるようにしています。説明の大部分はさ まざまなオペレーティングシステムに関してサーバを利用したインストール法 の核心部分のコンフィグレーションです。この文書の最新版は にあります。ハイパーリン クでソフトウェアとその他関連のものもロードできるようになっていま す。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 は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 (``#'') 要 求を出します。 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 スタック (``#'') が入っています。 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 が起動します。ワークステーションは用意が整います。 学生のコンピュータはハードディスクが各自の起動時にその都度初期化される ので、リスクなしにいつでも電源を切ってしまうことができます。 突然電源を切られてローカルディスクにゴミが残っているコンピュータの場 合、その設定が混乱しているなら、次回の始動で新しいインストールをするた めに、関連のあるオペレーティングシステムを含むすべてのディレクトリツ リーを消してしまえばよいのです。 (-- # BOOTP:ブートストラップを転送するためのプロトコル (The Unix Super Text 下563頁) RFC (``#'')(Request for Comments) :1048 も参考にし てください。--) (-- # RFC Request for Comments コメント要求(用語集): 主に TCP/IP プロトコル族の標準仕様を規定するドキュメント群。--) (-- # TCP/IP stack:スタック(参考)プロトコルスタック 1つのプロトコル体系か ら選び抜かれたプロトコル群(インターネット構築入門:25頁)--) 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 オプションで、ファイルキャッシュのサポート 最初の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 Apprication Program Interface:トランスポート層を使ってプロ グラムを書くために、いくつかのUNIX プログラミングインターフェイスが開 発されている。(インターネット構築入門:29頁)--) 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.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週間ほどの余裕を見ることは悪いことではない でしょう。 その他の役立つ情報には次のものがあります。 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 を行う方法 について述べます。 クライアントマシンになる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 クライアントが自動的に現われます。もしそうならないならリ ストボックスに入るまで、数分かけましょう。 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 を編集します。セットアップはあまりスマートではないの で、致命的なエラーがあります。次に示す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 はいくつかの作業をして、タ イムゾーンの設定に進みます。それからお使いのネットワークプリンタを設定 し、もう一度マシンをリブートします。 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 プロンプトが出るまで待ちます。 それをあとで復帰できるようにするため、サーバ上のディレクトリにすべての 利用できるものを保存したいわけです。次に示す2つの問題があります。 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:" ご覧頂いたように、ネットワークカードは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 は双方にとって利点 があるので、ローカルハードディスクを持つコンピュータにとってもより関心 の高いものです。 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年) の「用語集」 ( 533頁から) を参照引用したものです。(インターネット構築入門) と記し たものは本文を参考にしたもので、参考にした頁をつけました。その他関連す る 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