WindowsとUbuntuのデュアルブートのPCを作ったら入れておきたい２つの設定

こんにちは。
ALJの江口と申します。

ここ数年、ミニPCで自分の作業が満たせてしまうため、自作PCからしばらく遠ざかっていたのですが、会社の若手が割とPCゲームをするのと、昨今のAIなどの風潮があり、最近のグラボを搭載したPCが欲しいと思っていました。自宅で利用しているミニPCだとどうあがいてもグラボが積めないので、１台自作することにしました。

# 自作PCのスペック
いろいろ迷ったのですが、結論から言うと、以下のスペックにしました。


| 項目 | 型番 | およその価格 | 理由 |
|:-:|:-:|:-:|:-|
| CPU  | AMD Ryzen 5 7500F  | 20000円  | ZEN4世代で最安。<BR>グラフィック機能なし。  |
| Mother  | ASUS PRIME A620-M-E  | 12000円  |  安かったから。 |
| Memory  | CFD DDR5-5600 16Gx2  | 14000円  |  定格が早く手ごろな価格。 |
| SSD①  | Crucial P1 500GB  | 6000円  | Windows用  |
| SSD②  | SATA SSD 500GB  | 手持ち  |  Linux用 |
|  グラボ | Radeon RX 6750XT  | 40000円  | ハードオフにあったから。  |
|  電源 | 手持ちの650W電源  | -  |   |
|  ケース | 手持ちのケース  | -  |   |
|  その他 | CPUクーラー、SSDクーラーなど  | 5000円  |   |

性能的には、１年前のミドルクラスという感じだと思います。
AMD Ryzen 5 7500F というのを見つけちゃったので、これが全てを決めた感じです。国内販売してないので、ヤフオクで買いました。
ハードオフに派手で巨大なグラボがあったので、グラボのコストを抑えられてラッキーでした。
ただし、AIをやるにはGeForceの方がいいというのは、買ってから知りました。買わないと学べないこともあるので、こういう苦労のための出費ですね。RadeonでもUbuntuならAIはWindowsより少しましという情報もあり、デュアルブートにした理由の一つです。

### 外観
確か20世紀に買ったケースですが、当時は少なかった横がアクリルのものなので、それっぽく見える気がしますが、5インチベイが沢山あるので古いのがバレますね。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/494e985c-e94f-c6b4-1c57-f7c467cdaaf7.jpeg" width=300>

グラボがデカすぎて、このサイズのケースでも3.5インチベイと干渉して入らなかったので、3.5インチベイを電動ノコでカットしました。

# デュアルブートにする理由
##### OSが安定してきた
昔もたまにデュアルブートにしてましたが、OSを再インストールすると、環境が壊れちゃったりして、維持が割と面倒なんですよね。環境が壊れちゃうので、別々のPCに入れる方が時間の節約だったりします。
不安定だから再インストールが頻繁に必用だった時代もありました。（技術力がないだけかもしれませんが）
しかし、最近は、WindowsもLinuxも安定してきたので、その心配も少なくなったと思います。

##### グラボが１枚しかない
WindowsとLinuxの両方で試したいけど、グラボが高価なので沢山買えません。買ったとしても、マシンの置き場所もありません。

##### ＳＳＤが安くなった
500G～1TBクラスのSSDが手頃になってきたので、パーテションを切るなどしなくても、それぞれにディスクを準備できます。

##### 起動が早い
WindowsとLinuxをいったり来たりする場合でも、最近は1分もあれば起動するので、デュアルブートでもストレスが少ない。

##### 要は、ＳＳＤを１つ追加するだけでいい
デュアルブートにするコストの増加は、ＳＳＤを１つ追加するだけ。あとはやる気。

# デュアルブートの導入方法
自分はあまりこだわりがないので、簡単な方法として、

　Windowsのインストール
　　↓
　Linuxのインストール（GRUB）

上記の順でインストールすると、GRUBが導入され、勝手にデュアルブートになると思います。もしならなければ、以下のコマンドでWindowsを認識すると思います。

```bash
$ sudo update-grub
```

# デュアルブートで感じる不便の回避 ２選
数か月利用してきて、デュアルブートでおすすめの設定を２つご紹介します。
### その１ GRUBの起動順でWindowsを優先する
GRUBの起動順は以下のようにUbuntuが最初になると思います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/55bce57e-8108-97bc-7f2d-d3673193b73c.jpeg" width=400>

私はWindowsの利用頻度が多いので、電源ボタンをＯＮにして放置するとUbuntuが起動してしまうのは不便です。優先順を変更して、Windowsが選択される状態にします。

優先順を変更するには、`/etc/default/grub`を修正します。
既に変更しちゃってますが、`GRUB_DEFAULT=0`という行を修正します。
Windowsは上から5番目なので、4を指定します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/97f320f8-015a-eaf9-049f-b6b19d23808f.png" width=500>

修正後、以下のコマンドで反映します。

```bash
$ sudo update-grub
```

確認のため再起動してみます。
正しく編集できていれば起動時に以下のようにWindowsが選択された状態になると思います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/aed97fec-1cb6-8c99-daf7-3b8df17d9192.jpeg" width=500>

### その２ OSを切り替えると時間が狂う
LinuxとWindowsを行ったり来たりすると、Windowsの時間が狂うことに気が付くと思います。
時刻同期が走れば直りますが、時間の表示がおかしいのは気になりますよね。
詳しい原因は割愛しますが、簡単に説明すると、Windowsはローカルタイム、LinuxはUTCを内部で使っているので、その時間でハードウェアクロックを修正しちゃうから、という感じです。

Linux側で以下のコマンドを実行するとWindowsの時刻が狂わなくなります。

```bash
$ sudo timedatectl set-local-rtc 1
```
ただし、その後、`timedatectl`で確認すると、以下のようなワーニングが出るようになります。どちらを取るかですが、自分はワーニングをあきらめてます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/5e3cfef8-7281-15ee-fb3f-919354e31341.png" width=500>

# 最後に
Linuxに興味があるけど、仮想でしか利用したことがないという人は、デュアルブートにチャレンジしてみてはいかがでしょうか。ただし、Windows環境が壊れても私は責任を取れないので、バックアップしてから試してください。
今回のように、新規導入なら失敗してもやり直せるので、新規構築のタイミングがおすすめです。

SteamのLinux版もあるし、Linuxのデスクトップも色々と進化しているので、新たな発見があるかもしれません。

以上です。