ディスク認識とディスク番号について

.
こんにちは、日本マイクロソフト Windows サポートの高谷です。

PC を再起動した際に、ディスク番号が変わってしまった! というお問い合わせをいただくことがあります。
結論から言うと、この現象は Windows の想定された動作のため、ご安心ください。

今回は、Windows のディスク番号についてご説明したいと思います。
.

■     ディスクの認識とディスク番号の採番の仕組み

.
Windows では、ディスク番号は、システムのブート時にプラグアンドプレイ (PnP) 機能により列挙された順序で 0 以上の番号が若い順に採番されます。

PnP機能 は、Windows が自身に接続されたデバイスを認識するために必要な仕組みであり、PnP マネージャーが司っています。
Windows が起動した際に、PnPマネージャーが、接続しているデバイスの確認を行います。これはディスクに限らず、キーボード、ディスプレイなどの入力/出力機器や USB 接続機器など、接続している全ての機器について接続の確認を行います。

接続確認は一斉に、パラレルで実行するため、各デバイスからの応答が PnP マネージャーへ到達するタイミングは同時ではありません。応答が早いデバイスもあれば、少し遅れて応答を返すデバイスも存在します。PnP マネージャーは、応答が返ってきた順にデバイスを列挙して OS へ伝えるため、ディスクに関しても応答が早かったディスクから順に列挙され、ディスク番号が採番されます。

この動作は、Windows が起動するたびに行われますので、デバイスからの応答が返ってくるタイミングが何らかの要因で変わった場合は、割り当てられるディスク番号も変わるというわけです。

■     事象を回避する方法

.
本事象を回避する方法は残念ながらございませんが、ディスク番号が変わるだけで、内部のデータには何の影響もありませんのでご安心ください。

この動作は製品の仕様であり、ディスク番号が再起動毎に変更されてしまうことは、システム上は問題ありません。

なおディスクの場合、接続時のオンライン/オフライン状態には依存せず、ディスク自体を認識したタイミングで採番されます。また、ディスクがローカルのディスクであるか、iSCSI 接続のディスクであるか等の種類にも依存はせず、シンプルに応答が早かった順に番号が振られます。

■     ディスクの識別方法

.
これまでのご説明通り、ディスク番号は再起動のたびに変わってしまう可能性があります。そのため、ディスク番号を頼りにディスクを識別することはお勧めできません。ディスクを識別する場合は、”ディスク署名” と呼ばれるユニークな ID がありますので、こちらをご確認ください。

// ディスク署名の確認方法

  1. コマンド プロンプトを管理者権限で起動します。
  2. diskpart と入力し、diskpart ユーティリティを起動します。
  3. 以下のコマンドを入力します。

.........接続されているディスクが列挙されます。

.........>list disk

.........出力結果の例)

.........ディスク          状態               サイズ          空き     ダイナ    GPT
.........###                                                                         ミック
.........--------------        -------------      -------------     --------    ---------    --------
.........ディスク 0      オンライン     476 GB          0 B                           *
.........ディスク 1      オンライン     476 GB          0 B                           *
.........ディスク 2      オンライン     931 GB          0 B                           *

  1. 対象のディスクを選択します。例として Disk 0 を選択します。

.........>select disk 0

.........出力結果の例)

.........ディスク 0 が選択されました。

  1. detail disk コマンドでディスクの詳細情報を参照します。

.........>detail disk

.........出力結果の例)

.........LSI MR9362-8i SCSI Disk Device
........ . ディスク ID: {92B2DC6F-1C13-4506-AA35-253702E4AC24}
.........種類       : SATA
.........状態       : オンライン
.........パス       : 0
.........ターゲット : 0
.........LUN ID    : 0
.........場所のパス : PCIROOT(0)#PCI(0100)#PCI(0000)#RAID(P01T00L00)
.........現在の読み取り専用状態: いいえ
.........読み取り専用  : いいえ
.........ブート ディスク  : はい
.........ページ ファイル ディスク  : はい
.........休止状態ファイル ディスク  : いいえ
.........クラッシュ ダンプ ディスク  : はい
.........クラスター化ディスク  : いいえ

"ディスク ID" と表示されているのが、ディスクの署名です。

■     関連の弊社公開情報について

.
弊社では、このようなお問い合わせを過去にも何度かいただいておりますので、情報を公開させていただいております。少し古い資料もありますが、参考になれば幸いです。

参考資料1)
“Device Tree"
https://msdn.microsoft.com/en-us/library/ff543194.aspx
本技術資料において、親子関係のデバイス以外では、デバイス認識順序は保証されないことを記載させていただいております。

参考資料2)
"Windows Server 2003 および Windows XP における PNP 列挙およびハード ディスクのドライブ文字割り当ての概要"
https://support.microsoft.com/kb/825668/
セットアップ時の動作について記載されております。通常の起動時にも本現象は発生いたします。古い資料ではありますが、Windows の基本的なデバイス認識の仕組みに大きな変更はございません。

参考資料3)
"Disk drive numbers may not correspond to the SATA channel numbers when you install Windows on a computer that has multiple SATA or RAID disks"
https://support.microsoft.com/en-us/help/937251/disk-drive-numbers-may-not-correspond-to-the-sata-channel-numbers-when
こちらは Windows Server 2008 以降の OS について記載されています。

今回はディスクの認識の仕組みとディスク番号の採番についてご紹介させていただきましたが、いかがでしたでしょうか。

本ブログが少しでも皆様のお役に立てますと幸いです。