Windowsはデュアルブートをわざとやりにくくしている:NixOS再インストールまでの記録
経緯
-
SSD(256GB)に NixOS を入れて快適に使用していた。
-
空き容量を作るために、パーティションを128GBに縮小。
-
残りの128GBに Windows10 を新規インストール。
-
結果、Windows10は起動するが、NixOSが起動しなくなった。
試した対策
-
GRUBを再インストール → Windowsによるブート領域の上書きで失敗。
-
高速スタートアップを無効化 → それでもLinuxパーティションが「read-only」に。
-
ext4修復 (
e2fsck
) → Windowsインストーラーの影響でエラー頻発。 -
何度試しても復旧できず、最終的にNixOSを再インストールするしかなかった。
問題の本質
問題は Linuxの不具合ではない。
Windowsがデュアルブートを極端にやりにくくしていることが原因。
Windows側の「妨害」ポイント
-
MBR / EFIブート領域を強制上書き
-
Windowsを後から入れると、Linuxのブートローダーはほぼ必ず消える。
-
-
高速スタートアップの罠
-
Windowsは完全にシャットダウンしないため、Linuxから見るとパーティションが不正な状態に。
-
-
セキュアブート問題
-
最近のWindows機ではセキュアブートがデフォルト有効で、Linuxを起動しにくくする。
-
-
Linux共存を考慮しない設計
-
デュアルブートを前提としていないため、ユーザーが手動で設定を直さないとまともに動かない。
-
教訓
-
Linuxは悪くない。Windowsが壁を作っている。
-
デュアルブートするなら、Windows → Linuxの順番でインストールするのが安全。
-
Windowsの「高速スタートアップ」や「セキュアブート」は最初に無効化するべき。
-
Microsoftは事実上「Linuxを使わせにくくしている」という現実を痛感した。
感想
今回のトラブルを通してはっきり分かったのはこれ:
「WindowsはLinuxと共存する気がない」
Linuxはシンプルで、デュアルブート自体に問題はありません。
しかし、Windowsがブート領域を独占し、パーティションをロックし、結果的にユーザーに余計なトラブルを押し付けています。
もしこの要約をブログに載せるなら、見出しは 「Linuxは悪くない、Windowsが悪い」 くらい強めにした方が、読者にも意図が伝わりやすいと思います。
さらに視覚的にわかりやすくするため、
-
Windowsインストール前後のパーティション図
-
ブートシーケンスの変化(図解)
を載せると、読者が直感的に「Windowsが上書きしてるんだな」と理解できます。
了解です!😊
では、ブログ用に 「Windowsがデュアルブートを壊す仕組み」 を一目で分かる 図解を作ります。
内容は次の2部構成にします:
-
Windowsインストール前の状態(NixOS単独で正常動作中)
-
Windowsを後から入れた後の状態(ブートローダー上書き → NixOS起動不可)
これに加えて、ブートの流れも簡単な図で示します。
ブログ用タイトル案
Windowsはデュアルブートをわざとやりにくくしている:NixOS再インストールまでの記録
図1:Windowsインストール前(正常状態)
┌────────────────────────────────────────────┐
│ SSD 256GB │
├───────────────┬────────────────────────────┤
│ /dev/sda1 (128GB) │ /dev/sda2 (128GB 空き) │
│ NixOS (ext4) │ 未使用領域 │
├───────────────┴────────────────────────────┤
│ MBR / GRUB(NixOS用) │
└────────────────────────────────────────────┘
起動時の流れ:
BIOS(Legacy) → GRUB → NixOS起動
-
GRUB が NixOS 用に正しく設定されている。
-
パーティションも問題なく読み書き可能。
-
起動も安定している状態。
図2:Windowsを後から入れた後(問題発生)
┌────────────────────────────────────────────┐
│ SSD 256GB │
├───────────────┬────────────────────────────┤
│ /dev/sda1 (128GB) │ /dev/sda2 (128GB) │
│ NixOS (ext4) │ Windows10 (NTFS) │
├───────────────┴────────────────────────────┤
│ MBR / Windows Boot Manager に上書きされる │
└────────────────────────────────────────────┘
起動時の流れ:
BIOS(Legacy) → Windows Boot Manager
│
└─ NixOSを無視! → Windows10強制起動
起きた問題
-
Windowsインストーラーが MBRブート領域を強制上書き
-
GRUBが消える → NixOSを選べない
-
さらに、Windowsの「高速スタートアップ」機能により
NixOSのパーティションが 不正状態と判定 → read-onlyでしかマウントできない
図3:デュアルブートを成功させる正しい順番
┌───────────────┬───────────────┐
│ Windows10 (NTFS) │ NixOS (ext4) │
└───────────────┴───────────────┘
↓
BIOS(UEFI/Legacy)
↓
GRUB
┌─────────┬─────────┐
│ Windows │ NixOS │
└─────────┴─────────┘
ポイント
-
Windowsを先に入れる → Linuxを後から入れる
→ LinuxのインストーラーがGRUBを設定してくれるので共存が可能。 -
Windows高速スタートアップは最初に無効化しておく。
まとめ(ブログ本文用)
-
Linuxは悪くない、Windowsがデュアルブートをやりにくくしている。
-
後からWindowsを入れると GRUBが上書きされる。
-
Windowsの高速スタートアップ機能はLinuxにとって厄介。
-
正しい順番は Windows → Linux。