ブートローダを直してWindowsとUbuntuのデュアルブートを構成

# はじめに
この記事は、以下の記事の続編です。

https://qiita.com/ushita37/items/e3983f1a0faacdbec3c5

SSD 1TBとHDD 2TBが入っているDELL XPS 8960でのデュアルブートをしてからかなり時間が空いてしまいましたが、今回また別のPCをデュアルブートすることになったので、その備忘録もかねて公開します。

### USBでLinuxをブートするための準備
Ubuntuをインストールするためのメディア（USBメモリ）を作成します。
手順としては、
1. `ubuntu-24.04.2-desktop-amd64.iso`をダウンロード
1. balenaEtcher (あるいはRufus）を使って、ダウンロードしたisoファイルをUSBメモリに焼く


https://etcher.balena.io/

### 高速スタートアップの無効化
https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=2111-3152

（タスクバーの検索窓に入力するなどして）コントロールパネルを開き、電源オプションを選択します。

![スクリーンショット 2025-05-15 143722.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/5b3baa8e-31bc-4d4a-a336-f7a0b9d34850.png)


### パーティション分割
スタートメニューに、「ハード ディスク パーティションの作成とフォーマット」と入力して、アプリを開きます。

![スクリーンショット 2025-05-15 141506.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/5c8d9d4b-a314-406f-aefb-9fc523e93228.png)


デフォルトではSSDやHDDといったハードディスクが全てWindowsで埋め尽くされている可能性があります。そのままではUbuntuをインストールするスペースがないので、パーティションを分割しましょう。
![スクリーンショット 2025-05-15 141958.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/7033c83f-9109-41fe-a1c1-0d41deb26ca3.png)

パーティション分割後のストレージはこんな感じ。

![スクリーンショット 2025-05-15 142434.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/9f61c94f-ec80-4d31-89c1-4d4eafa57615.png)



### BitLockerの無効化
Windowsで設定アプリを開いて、「システム」→「バージョン情報」→BitLockerでBitLockerが無効になっていることを確認。


### Secure Boot、Fast Bootの解除
WindowsでShiftキーを押しながら再起動するか、F2, F10, F12, Deleteのいずれかのキーを連打します。
UEFI(BIOS)の設定メニューが出てきたらそれでよし、ブルースクリーンにオプションの選択の画面が出てきたら「トラブルシューティング」→「詳細オプション」→「UEFIファームウェアの設定」を選びます。

![IMG_1578.JPEG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/f5d1f801-d6c3-40bf-a35a-031ee3b949b2.jpeg)


画面の指示に従って再起動をすると、設定画面が開きます。

PCのメーカーによって設定画面は異なるのですが、ASUSの場合はF7キーでAdvancedのメニューに移った後、「SETTINGS」→「Security」→「Secure Boot」を選択してDisabledにします。また、「SETTINGS」→「Boot」→「MSI Fast Boot」と「Fast Boot」を両方Disabledにします。

ブートの優先順位を確認して、USBが最上位になっていることを確認したら、設定を保存してもう一度再起動します。

# デュアルブートの再構築、Ubuntuのインストール
再起動して、GNU GRUBの画面が出てきたらTry or Install Ubuntuを選択して、しばらくは画面の指示にしたがってキーボードやネットワークの設定などを行います。（出てこなかった場合はUEFIのブート設定を見直すかAIに聞いて下さい。）

うまくいけばUbuntuの画面（24.04 LTSの場合、背景が赤紫色のあれ）が出てくるので、そうすれば画面の案内に従って設定を進めるだけです。

:::note 
言語設定は英語にすることをおすすめします。キーボードレイアウトはお好きにどうぞ。
:::

Type of installationの画面になったら、誰かから指示を受けていない限りはInteractive installationを選ぶことになると思います。

![IMG_1581.JPEG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/92e3d3d2-acb0-4c25-9677-15629144c491.jpeg)


以下、私の設定メニューを載せるので参考にどうぞ。
- Applications: default selection
- Optimise your computer: "Install third-party software for graphics and Wi-Fi hardware"と"Download and install support for additional media formats"を両方ともチェック入れる
- Disk setup: Install Ubuntu alongside Windows Boot Manager

:::note
Disk setupの画面でManual installationを選んで、インストールするディスクのパーティションを確認するのもいいかも。
私の場合は、以下のようにnvme0n1p1からp4までのパーティションが作られていました。
![IMG_1584.JPEG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/b6203240-72d1-47ba-9418-0d48649640ed.jpeg)

空き容量はおよそ471GB。
この後、Install Ubuntu alongside Windows Boot Managerのメニューに戻って、Ready to installでPartitionsを再確認したら、nvme0n1p5を（新しく作った上で）ext4でフォーマットするよ、って書いたのでヨシ！
:::

- Create your account: "Require my password to log in"はチェック入れる、"Use Active Directory"はチェック外す
- Select your timezone: LocationはTokyo、TimezoneはAsia/Tokyo
- Ready to install: インストールするPartitionを再度確認しましょう。間違ってもすでに入ってるWindowsを上書きしないように。

# インストールした後
インストールしたら、以下のような画面が出てくるはず。

この後、再起動をします。再起動をした後、黒い画面でUbuntuやWindows Boot Managerを選ぶ画面（GRUB）が出てきたら成功。お疲れさま。

# 再起動してもGRUBが出てこなかった場合の解決策(一例)
再起動したらGRUBをスルーして、Windowsがそのまま立ちあがっちゃった。
そのため、以下のことを試しました。

1. UEFI設定でBoot Priorityを確認
1. USBから立ち上げたUbuntuで、パーティションを確認
1. UEFI設定でSettings\Boot\UEFI Hard Disk Drive BBS Prioritiesを確認
1. ハードディスク(SSD)にインストールしたUbuntuで、`/etc/default/grub`を編集

### UEFI設定でBoot Priorityを確認
UEFI設定画面を開いて、ブートの優先順位を確認します。Windows Boot Managerよりもubuntuが上位に来ていないと（あるいはWindows Boot Managerが見かけ上存在せず、ubuntuがある状態でないと）、GRUBで起動するOSを選ぶ画面が出てこないそうです。

メーカーによってUEFIメニューは異なりますが、番号が小さく上あるいは左にあるものが、ブートの優先順位高いです。

### パーティション確認
USBメモリ(インストールメディア)を挿したまま、PCを(再)起動します。Try or install Ubuntuを選んで、Ubuntuをインストールするのではなくメディアに入っているUbuntuを使います。(Try Ubuntu)

そして、以下のコマンドを実行。
```sh
sudo fdisk -l
sudo fdisk -l > partition.txt # ChatGPTに尋ねるときに添付するファイルを生成
```

:::note
以下は、`sudo fdisk -l`の結果をChatGPTに投げて、実行結果やコマンドの解説を受けながら実行すると良いかも。
:::

次に、マウントをしてハードディスクにインストールしたUbuntuに入ります。
```sh
sudo mount /dev/nvme0n1p5 /mnt #nvme0n1p5の部分は各自の環境にあったものを指定してください
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
```

そして、GRUBをインストールした後再起動します。

```sh
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
update-grub
exit    # このコマンドで、ハードディスクのUbuntuからインストールメディアのUbuntuに戻ってくる
sudo reboot
```

この時点でGRUBのUbuntuやWindows Boot Managerを選ぶ画面が出てきたらデュアルブート成功。お疲れさま。


### UEFI Hard Disk Drive BBS Prioritiesの設定
今回の私のケースのように、物理的に単一のハードディスク(SSD)に複数のパーティションを設けて、単一のSSDに複数のOSを入れる場合は起動するディスクの優先順位だけでなく、ディスク内のOSの優先順位を決める必要がありそうです。

そのため、SSD内の優先順位を設定します。
![IMG_1590.JPEG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/4bd7d682-f019-4fe2-8b92-82fd91c16f84.jpeg)

設定が終わったら再起動します。

### /etc/default/grubを編集
再起動したら、私の場合はGRUBでOS（あるいはブートマネージャ）を選択する画面が __現れず__ 、直接Ubuntuが起動されました。そのため、SSDにインストールしたUbuntuで以下のコマンドを実行します。

```sh
sudo nano /etc/default/grub    # デフォルトでvimは入ってないらしい。Clineに全部賭けてしまった？残念です、その賭けはあなたの負けです。ターミナル上でテキストを編集する方法を覚えて下さい。
```

`etc/default/grub`に追記をします。該当する項目がすでにある場合は、`=`よりも右を修正してください。

```
GRUB_DISABLE_OS_PROBER=false
GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=menu
```

編集が完了し、`etc/default/grub`を保存したら、

```sh
sudo update-grub
```

を実行して再起動。

### 起動成功！
デュアルブートの環境構築が成功したら、GRUBのメニューが表れてどのOSをインストールするかが選べるようになります。

![IMG_1592.JPEG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665059/c11b6d42-d1d7-46a6-bbd0-fa5bd4493419.jpeg)


# デュアルブート構成後

お疲れ様でした。あとはUbuntuの表示設定とディレクトリの名前を英語にしたまま、日本語入力できるようにMozcを入れましょう。

デュアルブートの後、Windowsの時刻がズレることがあります。
タイムサーバを設定している場合は、設定アプリで「時刻と言語」→「日付と時刻」から「今すぐ同期」をクリックするだけでOK。

# 参考文献
https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview