この記事の見出し一覧
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ディスクへの変換手順概要は、以下の通り。
- MiniTool Partition Wizardをインストール
- パーティションサイズ変更などして、ディスク最初に100MB程度の空きパーティションを作る
- 無償ツールGPT fdiskでMBRからGPTに変換
- Windows 10インストールメディアをUEFIブート
- diskpartコマンドでEFIパーティションとMRPを作成
- bcdbootコマンドでEFIにブートファイルを書き込む
所要時間は早くても3時間程度(ほとんど待ち時間)。失敗してもバックアップ復元で戻ればいいが、時間がどんどん消費していく汗。ここまでで失敗を恐れたならば課金したほうがよいだろう。
MiniTool Partition Wizardをインストール
上記2つの著名なパーティション操作ツールでは、昔は無償版で出来たことが不可能になっている。よって、無償版でもブートディスクのパーティション移動が可能な「MiniTool Partition Wizard」をインストールする(確認:無料版12.3)。
まず最初に、ディスクの最後に100~200MB程度の空きパーティションを作って下準備する。次に、その空きパーティションをディスクの先頭へ移動させていく(下画像)。
最終的にMiniTool Partition Wizardを使ってこんな感じにする(下画像)。
GPT fdiskでMBRからGPTへ変換する
Windowsアプリは有料化の一途だけれど、LinuxなどOSSベースは有志が無償配布してくれている。「GPT fdisk」(gdisk)もそれで、Windowsのコマンドバイナリがある。これを使わせていただく。
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。