次のページ 前のページ 目次へ

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 を動作させることができます。

カーネルを構築する

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

最初の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頁)

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

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

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

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

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

さてここではシステムはどのような方法で作られるかということです。カー ネルがすべての初期化を完了すると、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つの段階で行われます。サーバ上にすべてのソフトウェアをインストー ルし、そしてクライアントブートディスクイメージを用意します。

サーバのインストール

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つの違った設定を使っています。

ブートディスクを作る

あなたのサーバにあるのと同じ 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 を取 り扱う時、最悪なものは Plug-and-Play と言われるものです。これはたぶん将 来的にはよりいいものでしょうが、実際のところ現在はいいものではありませ ん。個人的なヒントとしては、できるなら無効にすることです。無効にしたく ないものはいつもたくさんあるでしょうが。

サーバのインストール

ここでは 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"

さて、これでサーバのインストールは終了です。 これからクライアントを設定しなければなりません。

マシンの設定

ここでは 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 クライアントが自動的に現われます。もしそうならないならリスト ボックスに入るまで、数分かけましょう。
  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) の クライアント(の一つ)。

整備します

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 があります。

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

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

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

  1. 隠しファイルばかりでなく、属性がプロテクトにできない隠しディレクト リもあります。
  2. ロングファイルネームの問題があります。そしてわれわれは Novell サー バ上ではそれを望みません。

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

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

設定を保存するためにサーバのどこかに新しいディレクトリを作ります。わ れわれは 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というファイルにログを書き出します。あなたがちょっと 違った設定を使いたいなら、これらのファイルをよりふさわしい名前にリネー ムしてください。

ブートディスクを完了する

最終のブートディスクイメージを準備するために用意しましょう。 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 を使ってそのイメージを作り、そして祈り ましょう。

追加のソフトウェアをインストールする

追加でソフトウェアをインストールする予定なら、前述の設定を使ってマシ ンを新規に始動し、ソフトウェアを追加します。そしてはじめての時(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 を使って)ですべてのパスを変更し、手動でやればできま す。


次のページ 前のページ 目次へ