Windows 11 25H2 のドライブに使用中の SSD を購入して 8 年くらいになります。
SSD に問題が発生した訳ではないのですが、
- 当該 SSD より新しい SSD が余ってる
- mbr2gpt で GPT 形式に変換したが、パーティション構成に不満がある
- セキュアブート対策前にクローンを用意したい
等の理由から、別の SSD に Windows 11 環境を移行しました。
※ Microsoft セキュアブート証明書( 2011 年版)の期限切れ前に実施済みです。
今回の移行作業はサードパーティ製の移行ツールを利用せず、Windows 11 のインストールメディアとインストール済みの Linux 環境を併用して自力で移行してます。
すべて自己責任での SSD 移行・換装作業ですが、誰かの参考になれば幸いです。
1. 方針
現在使用中のシステムドライブを新しいデバイスに交換したい。
そんなシンプルな要望なのですが、Windows 環境で行うには面倒事が多いです。
Microsoft は標準的な OS 移行ツールを提供していません。
そのため、サードパーティ製の移行ツールを利用するか自力で行う事になります。
目指すパーティション構成
Windows の「ディスクの管理」でパーティション構成を確認します。
移行元となる SSD のパーティション構成
| |
|
|
|
システムで予約済 549 MB |
Windows11 (C:) 464.35 GB |
回復パーティション 795 MB |
EFIパーティション 100 MB |
移行元となる SSD の Windows 11 環境は Windows 10 からアップグレードです。
当初、Windows 10 をインストールした際のデイスク形式は MBR でした。
Windows 11 へのアップグレード前に mbr2gpt で GPT 形式に変換してます。
そのまま 5 年程利用しましたが、特に支障はありません。
しかし、先頭の「システムで予約済」と称する ( MSR ではない ) 用途不明なパーティションの存在や、肝心の EFI パーティションは容量が少なく後方配置なのが気に障ります。
移行先 SSD のパーティション構成 (予定)
| |
|
|
EFIパーティション 約 500 MB |
Windows11 (C:) 残り最大容量 |
回復パーティション 約 800 MB |
今回の移行では、先頭に EFI パーティションを配置し約 500MB, 末尾に回復パーティションを配置し約 800MB, 残り全てを Windows 11 用に割り当てます。
EFI パーティションの後に MSR バーティション (16MB) を作成するとクリーンインストール時のような構成になりますが、私は用意しませんでした。
作業の洗い出し
単なる移行であれば、元の SSD をそのままクローンするのが手っ取り早いです。
しかし、今回のようにパーティションの配置を変更する場合、各パーティションを目的に応じて順に処理するのが確実です。
現状確認や事前準備は別として、大まかな移行作業は次の手順になります。
- 移行先 SSD を GPT 形式で初期化
- 移行先 SSD に EFI パーティションを用意
- 移行先 SSD に NTFS パーティションを用意
- 移行元から Windows 11 環境をコピー
- 移行先 SSD から Windows 11 を起動できるように設定
- 移行先 SSD の Windows 11 領域を縮小
- 移行先 SSD に回復パーティションを用意
- 移行先 SSD の回復パーティションを有効化
これらをすべて Windows の標準機能で処理できれば良いのですが、「移行元から Windows 11 環境をコピー」はサードパーティ製ツールや Linux に頼りたいところ。
私の PC 環境にはインストール済みの Ubuntu 環境があるので、そちらを併用します。
Microsoft 製 OS なので、基本的に Windows で可能な作業は Windows 側で行い、不足や手っ取り早く済ませたい場合に Ubuntu で補う感じで進めます。
2. 現状確認
移行の際、問題になりそうな箇所を確認します。
・セキュアブートは「無効」
msinfo32コマンドで確認すると「セキュア ブートの状態」は「無効」でした。
PC で複数の OS デバイスを扱う場合、無効のまま運用した方が都合良かったのです。
※すべての移行作業を終えてから BIOS 設定で Secure Boot を「有効」にしました。
・ローカルアカウントでのログイン
私はプライベートな Microsoft アカウントを仕事で利用したくないのです。
なので、ずっとローカルアカウントでログインしています。
・BitLocker は「無効」で回復キーは不明
SSD 換装における OS 移行作業では、BitLocker 解除は必須です。
私の PC は持ち出す必要のないデスクトップ型なので、BitLocker は「無効」状態です。
ネット上の情報によると、解除していても移行作業中に回復キーを求められる可能性があるらしいのですが、これは無視する事にしました。
私はMicrosoft アカウントと紐づけてないし、BitLocker を有効にした事がないので、回復キーを要求されても困ります。
※結局のところ、移行作業中に回復キーは要求されませんでした。
もし要求された場合は、速やかに移行作業を中断して、Windows 11 をクリーンインストールするつもりでした。
・回復パーティションの状態は「有効」
Windows の「ターミナル(管理者)」で次のコマンドを実行します。
PS C:\> reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Enabled
....(省略)....
Windows RE バージョン: 10.0.26100.8737
REAGENTC.EXE: 操作は成功しました。
回復環境が Enabled なので、移行作業を円滑に進めるため、後ほど Windows 11 領域をコピーする直前に無効化します。
・システムの保護は「有効」
Windows で「システム」-関連リンク「システムの保護」を表示すると、「システムの復元」の保護設定が確認できます。
私の環境では Windows 11 のシステムドライブが「有効」になっています。
復元ポイントやシャドウコピー関連が移行作業に影響しそうでしたが、今回は特に対処しません。そのままにしておきます。
3. 事前準備
・移行作業を補助する Linux 環境を用意
私は PC にインストール済みの Ubuntu 26.04 LTS を使用します。
今回の移行作業において、Linux を利用するのはddコマンドとGPartedくらいなので、Ubuntu 等の「Linux インストール用 USB メモリ」でも代用できると思います。
・Windows 11 のインストールメディア (ESD-USB) を用意
移行作業だけであれば「Windows の回復ドライブ」でも良かったのですが、失敗したらクリーンインストールするつもりだったので、最新の「インストールメディア」を準備しました。
Microsoft 公式ページから MediaCreationTool.exe をダウンロードして、Windows 11 のインストールメディアを作成します。私は 16GB の USB メモリに書き込みました。
以降、このインストールメディアを ESD-USB と表記します。
4. 移行作業
作業開始前の PC の SSD/HDD 構成は次のとおりです。
| 番号 |
デバイス |
種別 |
OS |
用途 |
| 0 |
/dev/sda |
SATA: SSD |
Windows 11 25H2 |
移行元のディスク |
| 1 |
/dev/sdb |
SATA: HDD |
Ubuntu 26.04 LTS |
移行作業の補助用 OS |
| 2 |
/dev/sdc |
SATA: SSD |
不明 |
移行先のディスク |
Windows のdiskpartコマンドで認識するディスク番号と、対応する Ubuntu 側のデバイス名を併記してあります。
手順 1. 移行先 SSD を GPT 形式で初期化
まず Ubuntu を起動します。
Gpartedで移行先ディスクのデバイスを選択して、メニュー「デバイス」-「パーティションテーブルを新規作成」を選択すると初期化できます。
※即時に反映される危険な操作なので、対象デバイスの選択に注意が必要です。
なお、 Windows で初期化する場合、この作業は不要です。
私の所有するディスクは Windows で認識しない場合もあり得るので、先に Ubuntu で初期化しました。
ここで Ubuntu を終了し、Windows 11 を起動します。
Windows の「ターミナル(管理者)」でdiskpartコマンドを実行します。
PS C:\> diskpart
Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: xxxxxxxxxxx
DISKPART>
接続されているディスクを確認します。
DISKPART> list disk
ディスク 状態 サイズ 空き ダイナ GPT
### ミック
------------ ------------- ------- ------- --- ---
ディスク 0 オンライン 465 GB 0 B *
ディスク 1 オンライン 465 GB 1024 KB *
ディスク 2 オンライン 465 GB 465 GB *
GPT 列に * が表示されるものが GPT 形式のディスクです。
diskpartコマンドの場合、複数のデバイスを接続していると、どのディスクが対象か判別し難いです。
初期化した未割り当てのディスクは「サイズ」と「空き」が等しいので、私はそれを目安にしています。
diskpartコマンドの処理対象となるディスクを選択します。
DISKPART> select disk 2
ディスク 2 が選択されました。
Windows で初期化したい場合は、ここで初期化します。※私はしませんでした。
DISKPART> clean
DISKPART> convert gpt
パーティションが未定義なのを確認します。
DISKPART> list partition
このディスクには表示するパーティションがありません。
手順 2. 移行先 SSD に EFI パーティションを用意
選択したディスクに EFI システムパーティションを作成します。
オフセットは既定値のままです。
DISKPART> create partition efi size=500
DiskPart は指定したパーティションの作成に成功しました。
現在のパーティション情報を確認します。
DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
* Partition 1 システム 500 MB 1024 KB
EFI システムパーティションをフォーマットします。
DISKPART> format fs=fat32 quick label="ESP"
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。
必要であれば MSR パーティションを作成します。※私はしませんでした。
DISKPART> create partition msr size=16
手順 3. 移行先 SSD に NTFS パーティションを用意
選択したディスクにプライマリパーティションを作成します。
DISKPART> create partition primary
DiskPart は指定したパーティションの作成に成功しました。
現在のパーティション情報を確認します。
DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 500 MB 1024 KB
* Partition 2 プライマリ 465 GB 501 MB
プライマリパーティションを NTFS 形式でフォーマットします。
DISKPART> format quick fs=ntfs
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。
diskpartコマンドを終了します。
DISKPART> exit
DiskPart を終了しています...
★ 手順 4 へ進む前に確認と前準備
手順 3 までの作業で移行先の SSD の準備が整いました。
移行先 SSD のパーティション構成 (手順 3 まで)
| |
|
EFIパーティション 500 MB |
NTFSパーティション 残り最大容量 |
手順 4 では移行元の Windows 11 環境全体をコピーするので、作業を妨げる機能や設定は、この時点で無効化します。
今回の作業では Windows 回復環境を一時的に無効化します。
Windows の「ターミナル(管理者)」で次のコマンドを実行します。
PS C:\> reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Enabled
....(省略)....
Windows RE バージョン: 10.0.26100.8737
REAGENTC.EXE: 操作は成功しました。
PS C:\> reagentc /disable
REAGENTC.EXE: 操作は成功しました。
PS C:\> reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Disabled
Windows RE の場所:
ブート構成データ (BCD) ID: 00000000-0000-0000-0000-000000000000
回復イメージの場所:
回復イメージ インデックス: 0
カスタム イメージの場所:
カスタム イメージ インデックス: 0
Windows RE バージョン: 0.0.0.0
REAGENTC.EXE: 操作は成功しました。
reagentc /disableで無効化し、reagentc /infoで Windows RE の状態が Disabled になっている事を確認します。
これで移行元 SSD も準備が整いました。
手順 4. 移行元から Windows 11 環境をコピー ※ Linux での作業
Windows を終了し、Ubuntu を起動します。
ターミナルを起動し、移行元ディスクの Windows 11 環境のパーティションを移行先ディスクの NTFS パーティションに上書きコピーします。
※指定を誤るとデータが消失する危険な操作なので、移行元・移行先のパーティション指定に注意が必要です。
直前にlsblk, fdisk -lやGparted等でパーティション情報を再確認します。
私の環境では移行元 (/dev/sda2) から移行先 (/dev/sdc2) へのコピーになるので、次のコマンドで処理しました。
$ sudo dd if=/dev/sda2 of=/dev/sdc2 bs=4M conv=sync,noerror status=progress
コピーに要した時間は約 40 分。特にエラーは発生せず無事に完了しました。
Ubuntu をシャットダウンし、PC から不要なデバイスを外します。
★ 手順 5 へ進む前に確認と前準備
手順 4 の作業で移行先の SSD に Windows 11 環境をコピーしました。
残念ながらコピーしただけでは Windows は起動しません。
移行先 SSD のパーティション構成 (手順 4 まで)
| |
|
EFIパーティション 500 MB |
Windows 11 環境のコピー 残り最大容量 |
手順 5 ではコピーした Windows 11 を起動できるように、EFI システムパーティションへ情報を登録します。
その前に PC から不要なデバイスを外しておきます。
| 番号 |
デバイス |
種別 |
OS |
用途 |
| 0 |
/dev/sda |
SATA: SSD |
なし (Windows のコピー) |
移行先のディスク |
このままでは OS を起動できないので、インストールメディアである ESD-USB を USB ポートに接続します。
私の環境では「UEFI: GH PicoDriveL3 PMAP, Partition 1」と認識します。
手順 5. 移行先 SSD から Windows 11 を起動できるように設定 ※ ESD-USB 起動での作業
PC の電源を ON にし、Boot Menu から ESD-USB を選択すると、起動シーケンスの後、「Windows 11 セットアップ」のウィンドウが表示されます。
ここで、Shift + F10キーを押下して管理者用のコマンドプロンプトを起動します。
以降の作業は、このコマンドプロンプトを用いて行います。
※スクリーンショットを撮れなかったので、作業のメモを貼り付けておきます。
コマンドプロンプトでdiskpartコマンドを実行します。
X:¥sources>diskpart
Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: MININT-N5U3SHN
DISKPART>
現在 Windows 11 セットアップが認識しているボリュームを確認します。
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
Volume 0 C Windows11 NTFS Partition 464 GB 正常
Volume 1 ESP FAT32 Partition 500 MB 正常 非表示
Volume 2 D ESD-USB FAT32 リムーバブル 32 GB 正常
私の環境では、移行元で付けていたボリュームラベル "Windows11" とドライブ文字 "C" が既に割り当て済みでした。
続く作業には EFI パーティション (ESP) にもドライブ文字が必要です。
ディスクの一覧を確認して、ディスク 0 の ESP にドライブ文字 "W" を割り当てます。
※一部情報を省略しています。
DISKPART> list disk
DISKPART> select disk 0
DISKPART> list partition
DISKPART> select partition 1
DISKPART> list partition
....(Patition 1 システム に * が付く)....
DISKPART> assign letter=W
DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
Volume 0 C Windows11 NTFS Partition 464 GB 正常
* Volume 1 W ESP FAT32 Partition 500 MB 正常 非表示
Volume 2 D ESD-USB FAT32 リムーバブル 32 GB 正常
ドライブ文字を確認したらdiskpartコマンドを終了します。
DISKPART> exit
DiskPart を終了しています...
X:¥sources>
次に PC の全ディスクからインストール済みの Windows 環境を探します。
X:¥sources>bootrec /scanos
Windows インストールを、すべてのディスクをスキャンして検出しています・
これには、しばらく時間がかかります。お待ちください...
Windows のインストールのスキャンは成功しました。
Windows のインストールとして認識された合計数: 1
[1] C:¥Windows
操作は正常に終了しました。
この環境のブート情報を EFI システムパーティションに登録します。
X:¥sources>bcdboot C:¥Windows /s W: /f UEFI
ブート ファイルは正常に作成されました。
## C:Windows だと...
## BFSVC Error: Could not open the BCD template store. Status = [c0000000f]
これで Windows を起動する準備ができました。
最後にdiskpartコマンドで不要なドライブ文字 "W"を削除して、コマンドプロンプトも終了します。
※一部情報を省略しています。
X:¥sources>diskpart
DISKPART> list volume
DISKPART> select volume 1
DISKPART> list volume
....(Volume 1 に * が付く)....
DISKPART> remove letter=W
DiskPart はドライブ文字またはマウント ポイントを正常に削除しました。
DISKPART> list volume
DISKPART> exit
X:¥sources>exit
これでインストールメディアでの作業は終了です。
「Windows 11 セットアップ」ウィンドウを閉じて、「本当に終了しますか?」の問いに「はい」をクリックすると PC が再起動します。
★ 手順 6 へ進む前に確認
手順 5 の作業で改めて Windows が起動できるようになりました。
移行先 SSD のパーティション構成 (手順 5 まで)
| |
|
EFIパーティション 500 MB |
Windows11 (C:) 残り最大容量 |
ESD-USB を外して、以前のように Windows 11 が起動すれば、移行作業は成功です。
後は回復パーティションを再作成するだけです。
私は一旦 Windows 11 環境で Windows Update や諸々の確認作業を済ませてます。
その後、改めて ESD-USB を接続して、回復パーティションを作成しました。
わさわざ ESD-USB を利用しなくても、通常の Windows で作業できる内容です。
私は PC のデバイスを元に戻した際、Ubuntu の起動確認ついでにGpartedで Windows 11 環境の領域を縮小したため、CHKDSKコマンドでディスクのエラー確認をしたくて ESD-USB 起動にしました。
本件とは関係ないので、以降は通常の Windows 環境での作業内容を記します。
手順 6. 移行先 SSD の Windows 11 領域を縮小
まず Windows 11 環境の縮小可能サイズを確認します。
Windows の「ターミナル(管理者)」でdiskpartコマンドを実行します。
shrink querymaxは処理に時間を要するので、しばらく放置します。
PS C:\> diskpart
Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: xxxxxxxxxxx
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
Volume 0 C Windows11 NTFS Partition 465 GB 正常 ブート
Volume 1 ESP FAT32 Partition 500 MB 正常 システム
DISKPART> select volume 0
ボリューム 0 が選択されました。
DISKPART> shrink querymax
再利用できる最大のバイト数は次のとおりです。 139 GB (142395 MB)
縮小可能であれば、800 MB だけ縮小します。
DISKPART> shrink desired=800
ボリュームは、次の方法で正常に縮小されました: 800 MB
これでディスクの末尾に 800MB の未割り当て領域を用意できました。
手順 7. 移行先 SSD に回復パーティションを用意
続いて回復パーティションを確保します。
プライマリパーティションとして領域確保し、NTFS 形式でフォーマットする際、ボリュームラベルを "Recovery"にします。
特殊なパーティション ID と属性を付与すると、回復パーティションとして扱われます。
DISKPART> select disk 0
ディスク 0 が選択されました。
DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 500 MB 1024 KB
Partition 2 プライマリ 464 GB 501 MB
DISKPART> create partition primary
DiskPart は指定したパーティションの作成に成功しました。
DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 500 MB 1024 KB
Partition 2 プライマリ 464 GB 501 MB
* Partition 3 プライマリ 800 MB 464 GB
DISKPART> format quick fs=ntfs label=Recovery
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。
DISKPART> set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
DiskPart は、パーティション ID を設定しました。
DISKPART> gpt attributes=0x8000000000000001
選択された GPT パーティションに DiskPart で属性を割り当てました。
DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 500 MB 1024 KB
Partition 2 プライマリ 464 GB 501 MB
* Partition 3 回復 800 MB 464 GB
念のため、ここで Windows を再起動しました。
手順 8. 移行先 SSD の回復パーティションを有効化
最後に Windows 回復環境を有効化します。
Windows の「ターミナル(管理者)」で次のコマンドを実行します。
PS C:\> reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Disabled
Windows RE の場所:
ブート構成データ (BCD) ID: 00000000-0000-0000-0000-000000000000
回復イメージの場所:
回復イメージ インデックス: 0
カスタム イメージの場所:
カスタム イメージ インデックス: 0
Windows RE バージョン: 0.0.0.0
REAGENTC.EXE: 操作は成功しました。
PS C:\> reagentc /enable
REAGENTC.EXE: 操作は成功しました。
PS C:\> reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Enabled
....(省略)....
Windows RE バージョン: 10.0.26100.8737
REAGENTC.EXE: 操作は成功しました。
reagentc /enableで有効化し、reagentc /infoで Windows RE の状態が Enabled になっている事を確認します。
これですべての作業が終了しました。

5. 所感
移行後、1ヶ月経過しましたが、特に問題は発生してません。
ライセンス認証の要求はなく、以前のまま変わりなく使用しています。
結局は、単に SSD を換装しただけなのですが、移行作業を順を追って記録すると、かなりの量になりますね。
今回の件とは関係ないのですが、無事にセキュアブートも有効化できてます。
私は自力で済ませましたが、今どきのサードパーティ製ツールなら、面倒事の解決も含め、細かいところまで配慮してくれるのでしょうか。
もうしばらく今の PC を使い続ける事になりそうなので、NVMe への換装もあるかもしれません。