連載
» 2018年03月13日 05時00分 公開

その知識、ホントに正しい? Windowsにまつわる都市伝説(105):ディスク署名/識別子の重複実話(とSysprepが重要な理由) (2/2)

[山市良,テクニカルライター]
前のページへ 1|2       

MBRディスクの場合はディスク署名を戻せば解決

 MBRディスクの場合は、ディスク署名を元の値に戻してあげれば、全てが解決します。元のディスク署名が分からない場合は厄介ですが、今回は同じコピー元のディスクが手元にあるので簡単です。問題の仮想ハードディスクをローカルマウントしたら、DISKPARTコマンドでそのディスクを選択し、UNIQUEID DISKコマンドで元のディスク署名を書き込みます。このとき、同じ(元の)ディスク署名を持つ仮想ハードディスクはオフラインにするか、切断しておいてください。これで、仮想マシンは正常に起動できるようになるはずです(画面6)。

DISKPART
> LIST DISK
> SELECT DISK <ディスク番号>
> UNIQUEID DISK ID=<元のディスク署名>

画面6 画面6 問題のディスクをマウント(オンライン)にして、元のディスク署名を書き込む

GPTディスクの場合はディスク識別子の復元では解決せず

 同じ検証を、今度はHyper-Vの第2世代仮想マシンで実施してみました。第2世代の仮想マシンは、UEFIベースの64ビットハードウェアを提供し、OSがインストールされているボリュームはGPTディスク上にあります。

 ディスク識別子が書き換わると、第1世代仮想マシンと同じように「エラーコード:0x000000e」で起動に失敗します(なぜか英語表示になりました)。幾つかある回復オプションも全て失敗します。

 もう一度、仮想ハードディスクをローカルマウントして、ディスク識別子を元の値に書き戻してみましたが、第1世代仮想マシンのように問題が解消されることはなく、今度は「エラーコード:0x0000225」で起動に失敗しました(画面7)。

画面7 画面7 ディスク識別子が書き換わった後の起動失敗(画面左)とディスク識別子を復元した後の起動失敗(画面右)

 問題のディスクを持つ仮想マシンのブート環境を修復するには、Windows 10のインストールメディア(ISO)で仮想マシンを起動し、「Windowsセットアップ」の開始画面で[Shift]+[F10]キーを押してコマンドプロンプトを開いて、「bcdedit」コマンドを使用してWindowsブートマネージャー(bootmgr)のdevice値とWindowsブートローダー(default)のdevice値およびosdevice値を再設定する必要がありました(画面8)。

画面8 画面8 インストールメディアで仮想マシンを起動して、bcdeditコマンドでブート環境を修正する

 ただし、前述のようにWindows回復環境もまた、ディスク署名/識別子を用いてボリュームとディスクを対応付けています。そのため、bcdeditコマンドによる修正でWindows 10は正常に起動するようになりますが、Windows回復環境(起動オプションの「トラブルシューティング」メニューや起動失敗時の自動修復)は引き続き失敗する状況が残ります(画面9)。Windows回復環境の構成は、bcdeditコマンドには表示されないため、簡単には修復できません。

画面9 画面9 ブート環境のマニュアル修正で正常起動は可能に(画面左)。ただし、起動問題の回復オプションは失敗する状況が残る(画面右)

 ではどうすればよいのか――。これは簡単なことです。同じディスク署名/識別子を持つディスクを同時にローカルマウントしなければよいのです。

 第2世代仮想マシン(UEFI、GPTディスク)も、OSイメージに対してSysprepを実行した状態からの起動の場合、ディスク署名が書き換わってしまったとしても、仮想マシンを開始するとWindowsのセットアップの最終段階が始まり、セットアップが正常に完了して、新しいディスク署名に基づいてブート環境が構成されました。やはり、Sysprepにより、ディスク署名の書き換えの影響を回避することができました。

仮想マシンのOSイメージがSysprep済みであれば、ディスク署名/識別子変更の影響なし

 コピー元の仮想マシン(第1世代および第2世代)のイメージをSysprepで一般化した状態で、同様の検証を行ってみました。

 同時にローカルマウントを強制し、ディスク署名/識別子が変更されてしまったとしても、仮想マシンを開始すると、Sysprep済みイメージからの初回起動時のWindowsセットアップ(Mini-Setup)は問題なく進み、2つ目の仮想マシンは新しいディスク署名/識別子に基づいてブート環境がセットアップされました(画面10)。

画面10 画面10 コピー元の仮想マシンがSysprep済み一般化イメージの場合、ディスク署名/識別子が書き換わってしまっても影響なし

 初回起動前のSysprep済みイメージであれば、ディスク署名/識別子の書き換えの影響は受けないようです。やはり、仮想マシンのコピーからクローン展開する場合でも、Sysprepは重要なことが分かります。初回起動時にセットアップが完了してしまえば、ディスク署名/識別子は競合することはなくなるため、同時にローカルマウントしてオフラインメンテナンスしても、ディスク署名/識別子関連で何の問題も発生しません。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。