2025年8月24日日曜日

Windowsはデュアルブートをわざとやりにくくしている:NixOS再インストールまでの記録



Windowsはデュアルブートをわざとやりにくくしている:NixOS再インストールまでの記録

経緯

  • SSD(256GB)に NixOS を入れて快適に使用していた。

  • 空き容量を作るために、パーティションを128GBに縮小。

  • 残りの128GBに Windows10 を新規インストール。

  • 結果、Windows10は起動するが、NixOSが起動しなくなった。


試した対策

  • GRUBを再インストール → Windowsによるブート領域の上書きで失敗。

  • 高速スタートアップを無効化 → それでもLinuxパーティションが「read-only」に。

  • ext4修復 (e2fsck) → Windowsインストーラーの影響でエラー頻発。

  • 何度試しても復旧できず、最終的にNixOSを再インストールするしかなかった。


問題の本質

問題は Linuxの不具合ではない
Windowsがデュアルブートを極端にやりにくくしていることが原因。

Windows側の「妨害」ポイント

  1. MBR / EFIブート領域を強制上書き

    • Windowsを後から入れると、Linuxのブートローダーはほぼ必ず消える。

  2. 高速スタートアップの罠

    • Windowsは完全にシャットダウンしないため、Linuxから見るとパーティションが不正な状態に。

  3. セキュアブート問題

    • 最近のWindows機ではセキュアブートがデフォルト有効で、Linuxを起動しにくくする。

  4. Linux共存を考慮しない設計

    • デュアルブートを前提としていないため、ユーザーが手動で設定を直さないとまともに動かない。


教訓

  • Linuxは悪くない。Windowsが壁を作っている。

  • デュアルブートするなら、Windows → Linuxの順番でインストールするのが安全。

  • Windowsの「高速スタートアップ」や「セキュアブート」は最初に無効化するべき。

  • Microsoftは事実上「Linuxを使わせにくくしている」という現実を痛感した。


感想

今回のトラブルを通してはっきり分かったのはこれ:

「WindowsはLinuxと共存する気がない」

Linuxはシンプルで、デュアルブート自体に問題はありません。
しかし、Windowsがブート領域を独占し、パーティションをロックし、結果的にユーザーに余計なトラブルを押し付けています。


もしこの要約をブログに載せるなら、見出しは 「Linuxは悪くない、Windowsが悪い」 くらい強めにした方が、読者にも意図が伝わりやすいと思います。

さらに視覚的にわかりやすくするため、

  • Windowsインストール前後のパーティション図

  • ブートシーケンスの変化(図解)
    を載せると、読者が直感的に「Windowsが上書きしてるんだな」と理解できます。


了解です!😊
では、ブログ用に 「Windowsがデュアルブートを壊す仕組み」 を一目で分かる 図解を作ります。
内容は次の2部構成にします:

  1. Windowsインストール前の状態(NixOS単独で正常動作中)

  2. 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



Windowsはデュアルブートをわざとやりにくくしている:NixOS再インストールまでの記録

Windowsはデュアルブートをわざとやりにくくしている:NixOS再インストールまでの記録 経緯 SSD(256GB)に NixOS を入れて快適に使用していた。 空き容量を作るために、パーティションを128GBに縮小。 残りの128GBに Windo...