LoginSignup
31
20

More than 3 years have passed since last update.

【Win10】任意のディスクにEFIブートローダをインストールする

Last updated at Posted at 2019-06-11

経緯

Win10がインストールされたPCをメンテしていたところ、EFIブートローダが何故かバックアップ用のHDDにインストールされていることに気付きました。データのやり取りが多いHDDの上にブートローダがあるのは気持ちが悪いので、CドライブのあるSSD上に移動しようと試みました。

構成

SSD:  Cドライブ
HDD: Dドライブ(データストレージ用) + ESP
※ESP(EFI System Partition)

↓これをこうしたい

SSD:  Cドライブ + ESP
HDD: Dドライブ(データストレージ用)

この方が構成的にスマートな気がする。

やったこと

ESP用領域の確保

既存ESPの領域は200MBだったのでSSDの領域を200MBだけ縮小しました。今回はGUI(ディスクの管理)からやりましたが、CUI(Diskpart)からでもよいです。
※EFIブートローダを載せるディスクのパーティション形式はGPTである必要があるので注意!

そうするとこうなる
SSD:  Cドライブ + 空き領域(200MB)
HDD: Dドライブ(データストレージ用) + ESP

Diskpartの起動

・Win10のインストールCDを挿入し、ブートする
・言語やキーボードの選択画面が出るので「次へ」をクリック
・左下の方にある「コンピュータを修復する」をクリック
・オプションの選択画面が表示されるので「トラブルシューティング」をクリック
・「詳細オプション」>「コマンドプロンプト」を選択

cmd

X:\Sources>

プロンプトが表示されました。

EFIシステムパーティションの作成

Diskpartを起動します。

cmd
X:\Sources>Diskpart
DISKPART>

ディスクの一覧を表示します。

cmd
DISKPART>List disk

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

ディスク0(対象のSSD)を選択

cmd
DISKPART>Select disk 0

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

DISKPART>List disk

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

パーティションの一覧を表示します。

cmd
DISKPART> List partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ             126GB  1024 KB

元々あったパーティションしか存在していません。

EFIブートローダ用のパーティションをCreate partitionコマンドで作成します。 size指定はメガバイト単位になります。

cmd
DISKPART> Create partition EFI size=200

DiskPart は指定したパーティションの作成に成功しました。

DISKPART> List partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ            126 GB  1024 KB
* Partition 2    システム              200 MB   126 GB

ボリュームを確認します。

cmd
DISKPART> List volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
 ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    126 GB  正常       ブート
* Volume 1                      RAW    Partition    200 MB  正常       非表示
  Volume 2     D           NTFS   Partition   1026 GB  正常
  Volume 3        ESP      FAT32  Partition    200 MB  正常

200MBの新しいボリュームがVolume 1として作成されています。
Volume 3はDドライブ側のHDDに乗っているESPですね。

まだファイルシステムが未設定なので、FAT32に指定します。

cmd
DISKPART> Format quick fs=fat32 label="ESP"

  100% 完了しました

DiskPart は、ボリュームのフォーマットを完了しました。

DISKPART> List Volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
 ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    126 GB  正常       ブート
* Volume 1        ESP           FAT32  Partition    200 MB  正常       非表示
  Volume 2     D           NTFS   Partition   1026 GB  正常
  Volume 3        ESP      FAT32  Partition    200 MB  正常

ドライブレターを設定します。今回はなんとなく使わなさそうなPドライブに指定します。

cmd
DISKPART> Assign letter=P

DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。

DISKPART> List volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
 ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    126 GB  正常       ブート
* Volume 1     P  ESP           FAT32  Partition    200 MB  正常       非表示
  Volume 2     D           NTFS   Partition   1026 GB  正常
  Volume 3        ESP      FAT32  Partition    200 MB  正常

これで枠が完成。
DiskpartをExitで抜け出し、bcdbootコマンドでブートローダをインストールします。

cmd
X:\Sources>bcdboot C:\Windows /s P: /f UEFI
ブート ファイルは正常に作成されました。

以上でブートローダのインストールが完了です。

こんなかんじになってます。
SSD:  Cドライブ + ESP
HDD: Dドライブ(データストレージ用) + ESP

今回起動の確認はHDDを物理的に引っこ抜いてブートするかどうかで確認しましたが、起動ディスクを選択するなどしてもいいです。
起動の確認出来たら、HDD側に乗ってる古いESPは削除します。GUIでは消せないので、Diskpartで消します。

参考(HDDの方のESPを消す)

cmd
DISKPART>List disk

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

DISKPART>Select disk 1

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

DISKPART>List disk

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

DISKPART> List partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ           1023 GB  1024 KB
  Partition 2    システム              200 MB  1023 GB

DISKPART> Select partition 2

パーティション 2 が選択されました。

DISKPART> List partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ           1023 GB  1024 KB
* Partition 2    システム             200 MB   1023 GB

DISKPART> Delete partition override

DiskPart は選択されたパーティションを正常に削除しました。

DISKPART> List partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ           1023 GB  1024 KB

消したパーティションの領域がフリーになったので、GUIかextendコマンド等で拡張しちゃいましょう。

これで完成です!
SSD:  Cドライブ + ESP
HDD: Dドライブ(データストレージ用)

すっきりしました。

参考

Windows10のUEFIブートローダーを修復してみた

31
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
20