課金したくない!フリーソフトだけでMBRからGPTにディスク変換 ── Windows11準備でmbr2gptがエラー、どうする?

mbr2gptで変換できない

事の発端は、Windows 10標準コマンド「mbr2gpt」でMBRディスクからGPTディスク変換できず困ったことから。

PS C:\Windows\system32> mbr2gpt /validate /disk:0 /allowFullOS
MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
Disk layout validation failed for disk 0
PS C:\Windows\system32>

詳細ログ(setupact.log)を見ると、下リストの下から2行目にあるように最初のパーティション前に空きスペースが無いなどとエラー。そこもフォローしてよと思いながら、詰んだ。。。

c:\Windows\setupact.log
---
2021-06-29 01:01:01, Info MBR2GPT was explicitly asked to run in full OS mode.
2021-06-29 01:01:01, Info MBR2GPT: Attempting to validate disk 0
2021-06-29 01:01:01, Info MBR2GPT: Retrieving layout of disk
2021-06-29 01:01:01, Info MBR2GPT: Initial partition information
2021-06-29 01:01:01, Info ===========================================================
2021-06-29 01:01:01, Info Partition layout for disk: 0
2021-06-29 01:01:01, Info Partition style : MBR
2021-06-29 01:01:01, Info MBR signature: 1599368421
2021-06-29 01:01:01, Info Number of partitions : 3
2021-06-29 01:01:01, Info ===================PARTITION===============================

~中略~

2021-06-29 01:01:01, Info ===========================================================
2021-06-29 01:01:01, Info ESP partition size will be 104857600
2021-06-29 01:01:01, Info MBR2GPT: Validating layout, disk sector size is: 512 bytes
2021-06-29 01:01:01, Error  ValidateLayout: First partition too close to the beginning of the disk. Should start at offset 17408 or above, found at 4096
2021-06-29 01:01:01, Error Disk layout validation failed for disk 0

GPT変換だけで課金したくない

普通、この段階で「EaseUS Partition Master Free」や「AOMEI Partition Master Standard」でお手軽に「GPTディスクに変換」したくなる。

しかし、いざ変換しようとするとシステムディスク(ブートディスク)は有償版(Pro版)でないと出来ないから課金しなさいワーニング表示に萎える。

ただただ1回だけ!GPTディスクに変換したいだけなのに、

なんで4~5千円払わないとイケナイのだ。Linuxならとうぜん無料で変換できるんじゃね? ってのがgdiskにたどり着いたキッカケ

この記事は、mbr2gptのエラー表示で困った人や、下画像のようなパーティション構成の人に役立つかもしれない。

ただし、、、

失敗するとブートしなくなるとても危険な操作ばかりなので、MBRディスクであれば無償でイメージバックアップ可能な「EaseUS Todo Backup Free」などで、必ずイメージバックアップし、「ツール」メニューから復元用ブートUSBメディアも作成しておくことをお勧めする。筆者も? 4回くらい失敗して復元した(;´∀`)

ちなみに、GPTに変換後はEaseUSのFree版が使えない。これもMBRのまま使い続けていた理由だった。でもまぁ、AOMEI Backupper Standardであれば無償版でGPTバックアップ・リストアができる(現在のところ)けれど、バックアップしたイメージファイルの中身が事後に覗けない。どうしても課金させたいようだ。

GPTディスクへの変換手順概要は、以下の通り。

  1. MiniTool Partition Wizardをインストール
  2. パーティションサイズ変更などして、ディスク最初に100MB程度の空きパーティションを作る
  3. 無償ツールGPT fdiskでMBRからGPTに変換
  4. Windows 10インストールメディアをUEFIブート
  5. diskpartコマンドでEFIパーティションとMRPを作成
  6. bcdbootコマンドでEFIにブートファイルを書き込む

所要時間は早くても3時間程度(ほとんど待ち時間)。失敗してもバックアップ復元で戻ればいいが、時間がどんどん消費していく汗。ここまでで失敗を恐れたならば課金したほうがよいだろう。

MiniTool Partition Wizardをインストール

上記2つの著名なパーティション操作ツールでは、昔は無償版で出来たことが不可能になっている。よって、無償版でもブートディスクのパーティション移動が可能な「MiniTool Partition Wizard」をインストールする(確認:無料版12.3)。

パーティションマジックの代替品として、MiniTool Partition Wizardは、Windows 11/10/8/7およびServer 2003/2008/2012/2016/2019のパーティション管理に使用できる最新のパーティション マネージャーです。

まず最初に、ディスクの最後に100~200MB程度の空きパーティションを作って下準備する。次に、その空きパーティションをディスクの先頭へ移動させていく(下画像)。

最終的にMiniTool Partition Wizardを使ってこんな感じにする(下画像)。

GPT fdiskでMBRからGPTへ変換する

Windowsアプリは有料化の一途だけれど、LinuxなどOSSベースは有志が無償配布してくれている。「GPT fdisk」(gdisk)もそれで、Windowsのコマンドバイナリがある。これを使わせていただく。

Download GPT fdisk for free. GPT fdisk is a disk partitioning tool loosely modeled on Linux fdisk, but used for modifying GUID Partition Table (GPT) disks. The...

PowerShellを管理者モードで起動して、gfdisk64.exeを以下のように実行する。ディスク番号「0」は、おま環(後で出てくるdiskpartのlist diskや、ディスクの管理で表示されるもの)。

PS C:\gdisk-windows-1.0.8> .\gdisk64.exe 0:
GPT fdisk (gdisk) version 1.0.8

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************

************************************************************************
Most versions of Windows cannot boot from a GPT disk except on a UEFI-based
computer, and most varieties prior to Vista cannot read GPT disks. Therefore,
you should exit now unless you understand the implications of converting MBR
to GPT or creating a new GPT disk layout!
************************************************************************

Are you SURE you want to continue? (Y/N): y

Command (? for help): p (※一応パーティション状態見ただけ)
Disk 0:: 781422768 sectors, 372.6 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): CB597512-CECB-4AFE-BB05-CB82953ECFB8
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 781422734
Partitions will be aligned on 8-sector boundaries
Total free space is 390596 sectors (190.7 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1          385560         1413719   502.0 MiB   0700  Microsoft basic data
   2         1413720       772148159   367.5 GiB   0700  Microsoft basic data
   3       772148160       781417664   4.4 GiB     2700  Windows RE

Command (? for help): r

Recovery/transformation command (? for help): f
Warning! This will destroy the currently defined partitions! Proceed? (Y/N): y

Recovery/transformation command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to \\.\physicaldrive0.
Disk synchronization succeeded! The computer should now use the new
partition table.
The operation has completed successfully.
PS C:\gdisk-windows-1.0.8>

「completed successfully」表示になれば成功。この時点でGPTディスクへの変換が完了してる。しかし、WindowsブートするにはEFIパーティション作成やブートファイルの書き込みも必要なので次に進む。

Windows 10インストールメディアをUEFIでブート

持ってなければ、公式の「メディア作成ツール」で(ISOを)USBメモリーに書き込ませる。

インストールメディアを作ったら続いてUEFIブートする。

インストールに進まず「コンピュータを修復する(R)」を選択して、

「コマンド プロンプト」を実行。

diskpartコマンドでEFIパーティション作成、そしてブートファイルを書き込む

以下を順番に実行する。

PS X:\Sources> diskpart
Microsoft DiskPart バージョン 10.0.19041.964

Copyright (C) Microsoft Corporation.
コンピューター: xxx

DISKPART> list disk
ディスク 状態 サイズ 空き ダイナ GPT
### ミック
------------ ------------- ------- ------- --- ---
ディスク 0 オンライン 372 GB 189 MB *
ディスク 1 オンライン 2794 GB 1024 KB *

DISKPART> select disk 0
ディスク 0 が選択されました。

DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 プライマリ 486 MB 188 MB
Partition 2 プライマリ 367 GB 675 MB
Partition 3 回復 4526 MB 368 GB

DISKPART> select partition 1
パーティション 1 が選択されました。

DISKPART> shrink desired=200
ボリュームは、次の方法で正常に縮小されました: 200 MB

DISKPART> create partition efi size=200
DiskPart は指定したパーティションの作成に成功しました。

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

DISKPART> format quick fs=fat32
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。

DISKPART> exit
DiskPart を終了しています...

続いて、ブートファイル書き込み。「d:」は環境依存。dir d:などして確認。

PS X:\Sources> bcdboot d:\windows /s S: /f UEFI
ブート ファイルは正常に作成されました。
PS X:\Sources>

再起動して、ブートメニューに現れたら成功。

ちょっと未使用領域が先頭にあったりEFIパーティションが3番目だったりと気になる点はあるものの、整理したらブートしなくなったので放置。またの機会にブートマネージャ再構築するかもしれない。。。

その後、、、同じ操作なはずが何回か試してるとEFIが先頭になった。

この結果、、、Windows 11の条件クリアできた。ちなみにマザーボードは、ASRockのB365M Phantom Gaming 4。

Replacement for Microsoft PC Health Check app. Contribute to builtbybel/ReadySunValley development by creating an account on GitHub.

sponsored links