ARC(Advanced RISC Computing)名前付け規則は、ハードディスクやフロッピーディスクなどのデバイス上のファイルやプログラムの位置を識別するための標準的な規則です。Windows NT起動フロッピーディスクからコンピュータを起動する際に使用するパスを作成できるように、ARCパス名規則を理解しておく必要があります。
x86ベースのコンピュータでは、コンピュータにインストールされたWindows NTの各インスタンスのブートパーティションの位置をARCパス名で表すことができます。ブートパーティションをミラーセットとして構成している場合は、Boot.iniファイルのシャドウブートパーティションをパスに含める必要があります。パスの作成については、後述の「x86ベースのコンピュータの代替ブート選択の作成」を参照してください。
x86ベースのコンピュータでは、ブートパーティションへのARCパスは次の型のうちのいずれかです。
RISCベースのコンピュータでは、ARCパス名をNVRAMの中で使って、次のファイルまたはデバイスの位置を表すことができます。
Windows NT起動フロッピーディスクを作成してRISCベースのコンピュータに使う場合は、NVRAMを修正して、そのフロッピーディスクへのARCパスを含める必要があります。また、ブートパーティションをミラーセットとして構成している場合、NVRAMにシャドウブートパーティションへのARCパスを含める必要があります。Windows NT起動フロッピーディスクとシャドウブートパーティションの両方へのブート選択を作成する方法については、後述の「RISCベースのコンピュータの代替ブート選択の作成」を参照してください。
RISCベースのコンピュータのハードディスクには、scsi()構文のみが使われます。ブート選択は次の項目からなります。
RISCベースのコンピュータでのブート選択の例を次に示します。
この形式のARCパス名は、x86ベースのコンピュータのみに使われます。Windows NT 3.1では、このパス名はIDE、EIDE、およびESDIディスクのみに有効でした。Windows NT 3.5以降では、SCSIディスクにも有効になりました。
multi()構文は、システムファイルの読み取りをシステムBIOSによって行う必要があることをWindows NTに対して通知します。x86ベースのコンピュータ用ブートローダーNTLDRは、Ntoskrnl.exeおよびシステムの実行に必要なほかのファイルを探して読み取るために、割り込み(INT)13H BIOS呼び出しを使います。
注 multi(W)disk(X)rdisk(Y)partition(Z)形式のARCパス名をmulti()構文と呼びます。
パラメータのW、X、Y、およびZの意味は次のとおりです。
理論上では、multi()構文を使えばコンピュータ上のどのディスクからでもWindows NTを起動できるはずですが、そのためには、標準INT 13Hインターフェイスによって、すべてのディスクが正しく識別されている必要があります。しかし、このサポートはコントローラによって異なるため、ほとんどのシステムBIOSはINT 13Hによって1台のコントローラしか識別しません。
IDEまたはEIDEディスクで構成されている場合は、multi()構文はデュアルチャネルコントローラの1次および2次チャネルによって4台までのディスクをサポートします。SCSIのみで構成されている場合は、multi()構文は最初のSCSIコントローラ(BIOSが最初に読み取るコントローラ)上にあるディスクの最初の2台をサポートします。コンピュータがSCSIディスクとIDEディスクの両方で構成されているか、EIDEディスクのみで構成されている場合は、multi()構文は最初のコントローラのIDEディスクかEIDEディスクのみをサポートします。
scsi()構文はRISCベースとx86ベースのコンピュータの両方で使われ、Windows NTのすべてのバージョンで使われます。scsi()構文を使うことにより、SCSIデバイスドライバを読み取り、そのドライバを使ってブートパーティションにアクセスする必要があることをWindows NTに通知します。
注 scsi(W)disk(X)rdisk(Y)partition(Z)形式のARCパス名をscsi()構文と呼びます。
x86ベースのコンピュータでは、デバイスドライバはNtbootdd.sysで、システムディスク(通常C:)のルートにあります。これは使われているディスクコントローラのデバイスドライバのコピーです。RISCベースのコンピュータでは、ドライバはRISC標準に準拠してファームウェアに構築されるので、ファイルはまったく必要ありません。
scsi()構文のパラメータW、X、Y、およびZの意味は次のとおりです。
scsi()構文を使った場合、Wの値はNtbootdd.sysによって決められます。コントローラの順序はコントローラ上のBIOSが読み取る順番に対応します(読み取られる場合のみ)が、Windows NTで使われている各SCSIデバイスドライバは、それぞれ独自の方法でコントローラの順序付けをします。
また、複数のSCSIコントローラがあり、それらが異なるデバイスドライバを使う場合、Wのパラメータ値はNtbootdd.sysによって制御されているコントローラ数にしなければなりません。たとえば、Adaptec 2940(Aic78xx.sysを使用)とAdaptec 1542(Aha154x.sysを使用)がある場合、Wは必ず0になります。Ntbootdd.sysファイルの内容は次のように変更されます。
この節では、モデルとして使える例を説明します。最初の2つはx86ベースのコンピュータのARCパス名の例です。最後の例はDEC Alpha AXP 150コンピュータのブート選択例で、それと似たディスク構成を持つRISCベースのコンピュータにも役に立ちます。
次のディスクとコントローラを持つx86ベースのコンピュータの例を示します。
各ハードディスクは、1GBのプライマリパーティションを持ちます。パーティション1と2は1台目の2940に、パーティション3と4は2台目の2940に、そしてパーティション5と6は1542にあります。各パーティションのWinntフォルダにWindows NTがインストールされているとすると、Boot.iniファイル内の各パーティションのARCパス名は次のようになります。
Ntbootdd.sysは、パーティション3、4ではAic78xx.sysのコピーで、パーティション5、6ではAha154x.sysのコピーです。Ntbootdd.sysファイルがAic78xx.sysのコピーである場合には、パーティション1、2には次のパス名を使うこともできます。
ただし、Windows NTセットアップは、必ず最初の2台のSCSIディスクにmulti()構文を使います。
次のディスクとコントローラを持つx86ベースのコンピュータの例を示します。
この3台のEIDEディスクは、それぞれ1GBの1つのパーティションを持ち、パーティション1と2はEIDEコントローラの1次チャネルに、パーティション3は2次チャネルに接続されています。
SCSIディスクは、4つの1GBのパーティションに分割されています。パーティション4、5、6、および7はSCSIディスク上にあります。各パーティションのWinntフォルダにWindows NTがインストールされているとすると、Boot.iniファイル内の各パーティションのARCパス名は次のようになります。
パーティション4〜7までをWindows NTに読み取るためには、Ntbootdd.sysファイルはAic78xx.sysのコピーでなければなりません。
RISCベースのコンピュータでは、すべてのブートパスはNVRAMで定義されます。RISCベースのコンピュータ用のブート選択を新規作成するときには、ファームウェアメニューによって表示されたプロンプトから入力します。ブート選択の定義方法については、後述の「RISCベースのコンピュータの代替ブート選択の作成」を参照してください。
DEC Alpha AXP 150のブート選択の例を以降に示します。コンピュータは、ID 0の1台のハードディスクを持っています。そのハードディスクには、4MBのシステムパーティションと、396MBのブートパーティションがあります。 Windows NTはブートパーティションのWinntフォルダにインストールされており、OSLOADERフォルダはシステムパーティションのWinntフォルダです。ブート選択の値は次のとおりです。