起動ドライブのMBR->GPT変換

先日、WindowsをインストールしていたSSDに追加でLinuxを入れようと
パーティションを編集しようとしたところ、そのドライブはMBR方式で
フォーマットされていることに気が付きました。

そこで一応GPTにしておきたいと考えましたが、
起動ドライブとして利用しているSSDなので、ストレージ用ディスクの
ように簡単ではありません。

最終的にWindowsのデータを保持したまま MBR-> GPTに変換可能だったので
その備忘録として操作手順を書いておきます。

用意するもの

1: Windowsのインストールメディア
2: gptgen

状態

480GB SSD
MBR方式でフォーマット

part size memo
1 500MB Windows 予約領域
2 330GB Windows Cドライブ
3 115GB 未割り当て(Linuxインストール用)

手順

part1

まず gptgen で作業対象のディスクを無理やりGPT方式に変換します。
管理者権限で立ち上げた コマンドプロンプト で

>gptgen.exe -w \\.\physicaldrive0

を実行します。
末尾の0はディスク番号で[ディスクの管理]から番号が確認できます。
起動用ディスクでの変換は保証できない旨の警告がでるので
y を入力して続行します。

part2

再起動をかけます。
この段階でSSD内のWindowsはうまく起動できない状態なので
UEFIの設定画面に入り
セキュアブートの設定を有効にしておきます。

part3

Windowsのインストールメディア(DVD or USB)をPCにセットして
メディアから起動を行います。

インストールメディアが立ち上がったら、
言語とキーボードの設定を確認し次へを選択すると
画面左下に コンピュータを修復する が表示されるので
これを開きます。

コンピュターを修復する > トラブルシューティング > 詳細オプション > コマンドプロンプト

と順番に開くとコマンドプロンプトが開きます。

part4

ここからパーティションを修正したUEFI起動に必要な領域を作成していきます。
先頭500MBの予約領域を確保して

  • UEFIシステムパーティション
  • Windows予約パーティション
    をそれぞれ確保し直す必要があります。

diskpartを使って編集作業を行うことができます。

> diskpart
DISKPART> list disk

まずディスクを一覧を表示して、操作対象のディスクを確認します。
今回は ディスク0 のSSDなので

DISKPART> select disk 0

とします。

次にパーティションを操作します。

DISKPART> list partition  … パーティションの一覧を表示
DISKPART> select partition 1 … 先頭の500MBの領域を選択
DISKPART> delete partition override … パーティションを削除

DISKPART> create partition EFI size=128 offset=1 …先頭128MBをEFI用領域として確保
DISKPART> format quick fs=fat32 … EFIパーティションはFAT32でフォーマット
DISKPART> assign letter=W …適当なドライブレターを割り当て

DISKPART> create partition msr size=372 offset=132096 …続く372MBをMSRとして確保

DISKPART> list partition … 編集結果を確認

MSR(Microsoft Reserved Partition:MS予約領域)はフォーマット不要です。
offsetは先頭から何KB地点から領域が始まるかを指定します
今回は前に 128MBの領域があるので

 1024 * (128 + 1) = 132096

と計算しています。

最後にドライブレターがずれてしまうのでこれを修正します。

DISKPART> list volume
DISKPART> select volume 3
DISKPART> assign letter=C

これで3番めのボリュームがCドライブになります。
list volumeの出力をみて他のドライブレターも修正しておきます。

DISKPART> exit
>

exitでdiskpartから抜けてパーティション編集は終了です。

part5

最後にブートローダの設定を更新すればOKです。
part4で作成したEFI領域から起動するようにします。

詳細なオプション

>bcdboot C:\Windows /l ja-JP /s W: /f UEFI

source  …起動元のWindowsディレクトリのいちを指定
/l(エル) …ロケール設定(日本語)
/s … ドライブ指定 Wはpart4でEFI領域に割り当てたレター
/f … ファームウェアタイプを UEFIへ

終了

以上で完了です。
再起動するとWindowsが立ち上がってくれるはずなので
ディスクの管理からGPTになっていることを確認できます。

コメントを追加する