UEFIを介してUSBドライブからVHDXファイルからWindows Server 2012R2を起動する

Intel Atom D410PTプラットフォームでディスクアレイを作成することにしました。 これは、プロセッサの受動冷却、2つのメモリスロット(最大4Gb)、1つのPCIスロット(SATA SiliconImage 3512コントローラに使用-2x1.5Gb / s)、2つのSATA(3.0Gb / s)コネクタ、LAN 100mb / sを備えたマザーボードです。 、および多数のUSB 2.0ポート(マザーボード自体を含む)。

ボード自体は、NaviPower PIX-1001 230Wシャーシに簡単に収まります。 私は自分のウェブサイトに使った行動の完全な説明を投稿しました。



したがって、 4つのディスクを使用してRAID5アレイを作成することが決定されたため、オペレーティングシステムを外部USBドライブ(私の場合はUSB HDD Seagate Freeagent GoFlex)に転送するという論理的な決定が浮上しました。 システムを最初からインストールして構成するのは長くて骨の折れる作業であることが多いため、システムをVHDXコンテナーの外部ドライブに配置することにしました。マザーボードはUEFIをサポートするため、UEFIを使用してダウンロードを実行する必要があります。 主な問題は、インターネットにこれを行う方法に関する明確な指示がないことでした。 すべての情報は非常に断片化されており、この問題の解決策の一部のみが説明されています。



これを行うことにしました。最初に通常どおりシステムをSATAドライブにインストールし、それをVHDXコンテナーに転送してから、外部USB HDDに転送します。

システムのインストールをスキップします。なぜなら、 これは、特別な知識を必要としない些細な操作です(GPTディスクにシステムをインストールする場合、インストール前にdiskpartで遊ぶ必要があるだけです)。

重要な追加:システムを外部ドライブに転送する前に、ページファイルと休止状態システムを無効にすることが不可欠です!

したがって、システムのインストール、プログラムの更新、設定を行います。

次に、システムをVHDXコンテナーに転送する必要があります。 このため、Disk2VHD 2.01プログラムがダウンロードされました。 そのインターフェイスはプリミティブです。 転送するドライブ、VHDXファイルを選択し、プロセスを開始するだけです。



その後、作業システム(Windows 7 x64では可能ですが、VHDXで問題が発生します。WindowsServer 2012またはWindows 8 x64を使用することをお勧めします)で、USBディスクをロード用に準備する必要があります。 一般的には、ディスクの情報を消去し、2つのパーティションを作成する必要があります。1つはEFI(fat32、300Mb、4kb)で、もう1つはメイン(NTFS、1Tb、64kb)でVHDXコンテナーをホストします。

ディスクをコンピューターに接続し、diskpart.exeを実行します。

ディスクのリストを確認します。

DISKPART> list disk  ###     GPT -------- ------------- ------- ------- --- ---  0   1863 G 1024 K  1   931 G 0   2   931 G 0  * *  3   1397 G 0  *  5   931 G 0  *
      
      





使用するディスクを選択します。 これは通常、サイズで行われます。

注意! 間違えた場合は、コンピューターからシステムとデータを完全に消去できます。

 DISKPART> select disk 3   3.
      
      





次に、ディスクからすべての情報を消去する必要があります。

 DISKPART> clean DiskPart:    .
      
      





次に、ディスクをGPTディスクに変換します。

 DISKPART> convert gpt DiskPart:       GPT.
      
      





次に、EFIブートローダーを保存する最初のセクションを作成します。 300MBのサイズでそれを行い、ストライプのサイズは4kbです(通常、どのサイズのストライプがより速く動作するかをテストする必要がありますが、私たちの時代のファイルサイズは通常4または64KB以上であるため、ストリップをできるだけ大きくします):

 DISKPART> create partition efi size=300 DiskPart:    .
      
      





次に、FAT32形式でフォーマットする必要があります(この形式のみがUEFIテクノロジーをサポートしています)。

 DISKPART> format fs=fat32 quick unit=4k  ( ): 100  DiskPart   .
      
      





次に、このパーティションを操作するために、このパーティションにドライブ文字を割り当てる必要があります(この場合、文字Yになります)。

 DISKPART> assign letter=y DiskPart:        .
      
      





次に、rayserv.vhdxファイルがあるディスクの残りの部分をマークアップする必要があります。 まず、セクションを作成します。

 DISKPART> create partition primary DiskPart:    .
      
      





次に、64kbのストライプサイズでNTFSでフォーマットします。

 DISKPART> format fs=ntfs quick unit=64k  ( ): 100  DiskPart   .
      
      





次に、セクションに文字Zを割り当てます。

 DISKPART> assign letter=z DiskPart:        .
      
      





これでdiskpart.exeを閉じることができます:

 DISKPART> exit   DiskPart...
      
      





これで、rayserv.vhdxをZドライブにコピーできます。

次に、いくつかの準備手順を行う必要があります。 仮想ディスクをシステムに接続する必要があります。



私はWindows 7 x64で作業しているため、それに応じて、私のシステムはVHDXファイルの操作をサポートしていません。 そのため、VHDXで1つのシステムイメージファイルを事前に作成するのではなく、VHD形式とVHDXの2つの同一のシステムイメージを作成しました。 現在、VHDファイルはD:ドライブにあり、VHDXファイルはすでにZドライブの文字でUSBドライブにあります。 ドライブを文字H:で接続します。



次に、EFIパーティションを起動可能にする必要があります。

bootsect.exeファイルをドライブDにダウンロードします(このファイルはGet Waik Toolsユーティリティを使用するか、私のページにあります )。 パラメーターから始めます。

 D:\>bootsect.exe /nt60 y: /force Target volumes will be updated with BOOTMGR compatible bootcode. Y: (\Device\HarddiskVolume53) Successfully updated FAT32 filesystem bootcode. Bootcode was successfully updated on all targeted volumes.
      
      





ブートファイルをEFIパーティションにコピーするには、H:\ Windows \ System32フォルダーに移動して、コマンドを実行します。

 H:\Windows\System32>bcdboot.exe H:\Windows /s Y: /f uefi Boot files successfully created.
      
      





ここで、VHDXファイルから起動する必要があることをシステムに伝えるために作成する必要があります。 これを行うには、フォルダーHから:\ Windows \ System32を実行します。

 H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /copy {default} /d "vhd boot (locate)" The entry was successfully copied to {64d49e0f-ba36-11e3-8de2-1c6f653f47df}.
      
      





/ storeスイッチは、作業する必要があるBCDファイルのパスを示します。

結果のコード{64d49e0f-ba36-11e3-8de2-1c6f653f47df}は、画面から保存またはコピーされます。

このコマンドを使用して、デフォルトのブートエントリをコピーし、「vhd boot(locate)」という名前を付けました。

次に、この番号にデフォルトの番号を付けます。

 H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /default {64d49e0f-ba36-11e3-8de2-1c6f653f47df}   .
      
      





ここで、システムはこのレコードに対して、特定のディスクおよび特定のファイルから起動する必要があることを示す必要があります。

 H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /set {default} device vhd=[locate]\rayserv.vhdx   .
      
      





H:\ Windows \ System32> bcdedit / store Y:\ EFI \ Microsoft \ Boot \ BCD / set {default} osdevice vhd = [locate] \ rayserv.vhdx

操作は正常に完了しました。



ところで、[locate]パラメーターは非常に便利です。 彼は、オペレーティングシステムに、ダウンロード時にすべてのディスクでファイルを順番に検索する必要があることを伝えます。



次に、起動時にデバイスの自動検出を有効にする必要があります(これは一部のシステムで必要です)。

 H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /set {default} detecthal on   .
      
      





最後に、問題が発生した場合に回復コンソールの自動実行を無効にする必要があります。

 H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /set {default} bootstatuspolicy ignoreallfailures   .
      
      





ディスクコントロールパネルからシステムから仮想ディスクを切断します。



ほぼ完了。 最後のシステムで、私たち以外のすべてのディスクを切断し、USBドライブのBIOSでUEFIブートを有効にする必要があります。 USBデバイスの検索タイムアウトを増やす必要がある場合もあります。 コールドスタートでは、システムが外付けハードドライブを認識しない場合があります。

その後、USBドライブから起動します。



最初の起動時に、サーバーが起動しませんでした。 F8キーを押して、セキュアブートを選択する必要がありました。 その後、サーバーは機能し、再起動後にすべてが正常に機能し始めました。 ブートメニューのタイムアウトを削除するだけで、すべての準備が整います。 これは、msconfigユーティリティを使用して実行中のシステムで実行できます。



All Articles