マルチブート環境下、Windows 回復パーティション 対応策
マルチブート環境を構築した 1台のSSDに インストールしている Windows10 バージョン1909 を 2004 にアップデートすると同じ SSDにインストールしている Ubuntuが起動できなくなりました。
Windowsアップデートの際、回復パーティションが作られてパーティション構成が変わったためです。バージョン1903 から 1909 の時は作られませんでした。Ubuntuは GRUBを再インストール してすぐに復旧しました。
このページでは、作られてしまった回復パーティションの対応策と、今後のために Windows 回復環境、回復パーティションの仕様と挙動を、実際に起きた現象と照らし合わせてまとめてみました。(2021年1月)
注. 当ページの内容は Legacy BIOS / MBR 限定です
Windows バージョンアップ後の現象
自作の スリムタワー型PC の SSDにインストールしている Windows 10 Home 64-bit に 2004へのバージョンアップ通知がきたのでアップデートすると回復パーティションが作成されていました。
PCの主な仕様は次の通りです。
- Legacy BIOS / MBR(Master Boot Record)
- SSD 1台:Windows 10、Windows 7、Ubuntu 16.04 LTS
- HDD 1台:Ubuntu 18.04 LTS Xfce、データ共有域
- チェーンローダー:MBM(Multiple Boot Manegar)
詳細は こちらのページ へどうぞ。
現象
Windowsアップデート時に回復環境 WinRE(Windows Recovery Environment)用のパーテイションが作成され、SSDのパーテイション構成が以下の様に変わっていました。
Windows アップデート 前(ver.1909) | |
第1パーティション(/dev/sda1) | Windows 10 【110 GiB】 |
---|---|
第2パーティション(/dev/sda2) | Windows 7 【70 GiB】 |
第3パーティション(/dev/sda3) | Ununtu 16.04 LTS 【43.57 GiB】 |
Windows アップデート 後(ver.2004) | |
第1パーティション(/dev/sda1) | Windows 10 【109.45 GiB】 |
---|---|
第2パーティション(/dev/sda2) | WinRE 【557 MiB】 |
未割り当て | 【1 MiB】 |
第3パーティション(/dev/sda3) | Windows 7 【70 GiB】 |
第4パーティション(/dev/sda4) | Ununtu 16.04 LTS 【43.57 GiB】 |
下の画像は Ubuntu と Winndows から見たパーテイションのスクリーンショットです。
下の画像は Ubuntu 18.04 LTS Xfce 上の端末から fdiskコマンドを実行した結果のスクリーンショットです。
ご覧のように Windows10をインストールしてるパーティションを縮小し、その後方 Ubuntuパーティションの間に回復パーティション(WinRE)と 1MiBの未割り当て領域を作られています。
回復パーティションが作られた原因
当初は SSDのパーティションが 3つで、4つ目のパーティションが作成可能な状態であり、もしも事前に 4つの基本(プライマリ)パーティションがあれば回復パーティションは作られなっかったのではと推測しました。
Legacy BIOS / MBR 環境では 1台のストレージデバイスに 4つだけ基本パーティションが作れる仕様です。
この推測を裏付ける現象を 手持ちの Dell OptiPlex(デスクトップPC) と Dell Inspiron(ノートPC) と HP EliteBook 2560P(ノートPC) で確認しました。
いずれの PCも以下のように 1台の SSDに 4つのパーティションで構成されています。
Fig1. Dell OptiPlex 755 SF|Intel® 535 series SSD | |
第1パーティション(/dev/sda1) | Windows 10 Home 【110 GiB】 |
---|---|
第2パーティション(/dev/sda2) | Windows 7 Pro 【75 GiB】 |
第3パーティション(/dev/sda3) | Ubuntu 16.04 LTS 【30 GiB】 |
第4パーティション(/dev/sda4) | データ共有(NTFS) 【120.35 GiB】 |
Fig2. Dell Inspiron 11 3162|Intel® 535 series SSD | |
第1パーティション(/dev/sda1) | Windows 10 Home 【70 GiB】 |
---|---|
第2パーティション(/dev/sda2) | Kona Linux Ubuntu Edition 3.0 【30 GiB】 |
第3パーティション(/dev/sda3) | Lubuntu 20.04 LTS 【30 GiB】 |
第4パーティション(/dev/sda4) | データ共有(NTFS) 【205.35 GiB】 |
Fig3. HP EliteBook 2560P|Intel® 535 series SSD | |
第1パーティション(/dev/sda1) | Windows 10 Pro IP 【90 GiB】 |
---|---|
第2パーティション(/dev/sda2) | Windows 7 Pro (32-bit)【70 GiB】 |
第3パーティション(/dev/sda3) | Ubuntu 16.04 LTS 【60 GiB】 |
第4パーティション(/dev/sda4) | データ共有(NTFS) 【115.35 GiB】 |
この 3台の PCで 2004にバージョンアップしても回復パーティションは作成されませんでした。
単独パーティション環境の Windows バージョンアップ
手持ちの メインPC(自作機) で Windowsアップデートしてみました。
このPCは 1台の SSD、即ち「システムで予約パーティション」のない文字通り 1つのパーティション に Windows 10 をインストールしています。バージョンアップするとやはり回復パーティションが作成されました。
Windows アップデート 前(ver.1909) | |
第1パーティション(/dev/sda1) | Windows 10 【111.79 GiB】 |
---|
Windows アップデート 後(ver.2004) | |
第1パーティション(/dev/sda1) | Windows 10 【111.24 GiB】 |
---|---|
第2パーティション(/dev/sda2) | WinRE 【557 MiB】 |
未割り当て | 【1.46 MiB】 |
回復パーティションの処置
先述のように作られてしまった回復パーティションをどのように処置し、今後のバージョンアップに備えるか決定するため「回復環境(Windows RE)、回復パーティションとは何か」について調べ、手持ちの PC環境と照らし合わせてみました。
下記の引用部分は Microsoft Docs に 2017年5月2日付けでアップされていた BIOS/MBR ベースのハード ドライブ パーティション と Windows 回復環境 (Windows RE) からの抜粋(前者【引用 1】、後者【引用 2】)です。
長い文章ですが必要な部分は読みやすいようにアンダーラインを引いています。
“
【引用 1】
パーティション レイアウト
Windows イメージングおよび構成デザイナー (ICD) によって作成された起動可能な USB キーを使用して Windows をインストールする場合、既定では、システムパーティション、Windows パーティション、回復ツールパーティションというレイアウトが作成されます。
Disk 0 default partition layout(BIOS-based PCs)
SystemWindowsRecovery
”
当方の Windows 10(Home、Pro) と Windows 7(Pro)は 1台 を除き 1 パーティションになるようにインストールする前に 細工↓ しています。
“
【引用 2-1】
Windows 10 の WinRE の新機能
既定では、Windows イメージングおよび構成デザイナー (ICD) から作成されたメディアを使用して Windows をインストールすると、Windows パーティションの直後にある UEFI ベースと BIOS ベースの両方のデバイスで、専用の WinRE ツール パーティションが作られます。
(後略)
”
回復パーティションを作るのがデフォルトです。
“
【引用 2-2】
ハードドライブパーティション
Windows セットアップを使用して Windows をインストールすると、WinRE は次のように構成されます。
- Windows セットアップ中、Windows で WinRE をサポートするためのハード ドライブ パーティションが準備されます。
(中略)
回復ツールは、Windows パーティションの直後の専用パーティションに格納してください。 このようにすると、今後の更新でより大きな回復パーティションが必要になった場合、以前のパーティション サイズをそのままにして新しい回復パーティション サイズを作成するのではなく、Windows パーティションと回復パーティションのサイズを調整することで、Windows でより効率的に処理できるようになります。
(後略)
”
既存の回復(Windows RE)パーティションの容量が足りなくなったら拡張するわけですね。
“
【引用 2-3】
ディスク上の Windows 回復環境を更新する
(前略)
Windows RE 更新プロセスでは、既存の Windows RE パーティションを変更せずに再利用するために、あらゆる努力が払われます。 ただし、一部のまれな状況において、新しい Windows RE イメージ (移行または挿入された内容を含む) が既存の Windows RE パーティションに収まらない場合があります。その状況では、更新プロセスの動作は次のようになります。
- 既存の Windows RE パーティションが Windows パーティションの直後に配置されている場合は、Windows パーティションが縮小され、Windows RE パーティションに領域が追加されます。 新しい Windows RE イメージは、拡大された Windows RE パーティションにインストールされます。
- 既存の Windows RE パーティションが Windows パーティションの直後に配置されていない場合は、Windows パーティションが縮小され、新しい Windows RE パーティションが作成されます。新しい Windows RE イメージは、この新しい Windows RE パーティションにインストールされます。既存の Windows RE パーティションは孤立します。
- 既存の Windows RE パーティションを再利用できず、Windows パーティションを縮小できない場合には、新しい Windows RE イメージは Windows パーティションにインストールされます。 既存の Windows RE パーティションは孤立します。
(後略)
”
これが今回のケースとピッタリ合いますね。上記「一部のまれな状況」が「マルチブート環境」に該当するわけですね。なるほど、これで腑に落ちました。
対応策
今後の Windowsバージョンアップに向けて以下の対応策を行いました。いずれの場合も、回復パーティションの削除はしません。削除したところでまた作られる仕様ですから。
マルチブート環境の場合
回復パーティションが作られなかった 3台の PCに共通しているのは、
- 基本(プライマリ)パーティションが 4つある
- Windowsパーティションの他に NTFSファイルシステムのパーティションが 1つある
であることから、次の対応策を考えました。
- Legacy BIOS の仕様上、更に新しいパーティションが作られる事はないはずなので、ここまま放置する
- NTFS で再フォーマットして、例えば reademe.txt などのテキストファイルを置いておく
- EXT4 で再フォーマットして、例えば reademe.txt などのテキストファイルを置いておく
1. は 【引用 2-2】 に「Windows パーティションと回復パーティションのサイズを調整する」とあり、これはつまり今後 Windows パーティション サイズが縮小していくわけですから、さすがにこれは看過できません。
2. は 回復パーティションが作られなかった 3台の PCと同じ環境になるので、これが正解かと思いましたが結果が分かっているのでおもしろくありません。
よって 3. に設定しておいて - Windowsは EXT4フォーマットを無視するのか - つまり、NTFSで上書きフォーマットして Windows RE イメージをインストールするのか試してみることにしました。
単独パーティション環境の場合
こちらは、このまま放置して Windows パーティションと回復パーティションのサイズ調整 を観察して行くことにしました。
単独パーティションに新規インストールする場合
これまでは事前に Windows用パーティション、ダミーパーティションと 2つ作成し、NTFSでフォーマットしておいてインストールした後にダミーパーティションを削除して Windowsパーティションを拡張すれば 1パーティションになっていました。
ver.2004以降は 4つ作る必要があるかもしれませんね。是非とも確認したいところですが、残念ながら今のところ新規に Windowsを使う予定がありません。
雑感
回復パーティションにはバグがあったようで 2021年1月の ver.2004では解消されているようですね。今回の件で初めて知りました。
そもそも当方の環境では イメージバックアップ ツール(Acronis True Image)で Windowsパーティション丸ごとバックアップしているので回復パーティションは 無用の長物 であり必要ないのです。
今回行った対応策で、次のバージョンアップ(ver.20H2)でどうなるのか楽しみですね。
ver.20H2 へバージョンアップ(2021年2月 追記)
対応策 - 3.の結果が出ました。EXT4パーティションは上書きされませんでした。