feature image

2024年3月18日 | ブログ記事

最強のノートPCを作った話【LinuxInstallBattle】

この記事は、新歓ブログリレー202411日目です。

はじめに

こんにちは、23B[1]のComaviusです。普段は競技プログラミングをしています。

さて、今日は最強のノートPCの話をしようと思います。そのためにはまず、何をもって最強とするか明らかにする必要があります。ある人はRTX3060を載せたゲーミングノートが最強だと主張すれば、他の人はヒンジが360度回るコンバーチブルPCの方が優れていると反論するかもしれません。しかし、私の考える最強の条件は以下の3つです。

  1. Windowsを含む複数のOSを起動できる(マルチブート)
  2. どのOSを起動するときもF2を連打する必要がない
  3. とあるOSに割り当てた記憶域の用途を変えても他のOSに影響が出ない

前提知識

本稿は新歓ブログリレーの記事のため、少し前提知識の補足をします。こんなこと知っているという方は次の章まで飛ばしてください。

ここで紹介されていない用語は読み飛ばしても大丈夫です。

作業

方針を立てる

このPCで主に使いたいOSはNixOS[5]とWindows[6]で、他のOSを使いたくなったときに追加できるように予備の領域も確保したいです。また、これらのOSがブートプロセスの呼び出しで依存し合うと条件3を満たせないため、それらとは別にブートローダーを管理する必要があります。
そこで、今回はGRUBとGRUB管理用のArch Linuxを導入しそこから各OSを立ち上げられるようにしました。ここでArchを選んだ理由3つで、1つはArchWikiの記述が充実している点、そしてユーザーが自分で設定できる範囲が広い点、最後は使っているUbuntuで詳細まで設定しながらインストールする方法がわからなかった点、この3点です。

Archを入れる

まずArch Linuxをインストールします。これはArchWikiのインストールガイドの通りに操作すれば大丈夫です。今回は、NixOSがGRUBのインストールされたパーティション(EFIシステムパーティション)に大量のデータを保存する[7]ため、EFIシステムパーティションを通常よりも大きめに設定しました。

NixOSを入れる

次にNixOSをインストールします。本来であればNixOSのインストールガイド通りに操作するだけですが、今回はArchと一緒に導入したGRUBから起動する必要があるため、設定ファイルを編集し[8]EFIシステムパーティションの指定とブートローダーの変更をしました。そして、ArchWikiのGRUBの説明を読みながら、Archを起動するためのGRUBの設定をNixOSを呼び出せるように編集しました。

Windowsを入れる

最後にWindowsをインストールします。まずはWindows本体を導入します。ArchのGRUBからWindowsを起動できるようにしたいところですが、残念ながらWindowsのブートプロセスをGRUBから直接管理することは出来ません。しかし、これもまたArchWikiのGRUBの説明によると、GRUBの設定ファイルを生成するときに使うgrub-mkconfigというコマンドがWindowsなどの他OSのブートローダーを検出して立ち上げられるようにしてくれる[9]ため、ありがたくその機能を使いました。

完成

これで作業は完了です。まだSSDに250GBの空きがあるため、気が向いたら何か別のOSを入れて遊ぼうと思います。

GRUB2.0 with ArchLinux, Windows Boot Manager, UEFI settings and NixOS

終わりに

いかがでしたか?専門用語の使用を控えたため一部の方には歯がゆく感じられたかもしれませんが、もし楽しんでいただけたなら幸いです。もっと良い解決策があればTwitterで教えてください。

明日は@YHz_ikiriさんの記事です。お楽しみに!


本記事はCC-BY-SA 4.0のもと公開されます。また、サムネイルは以下の画像が使用されています。


  1. '23年度の学士課程入学者 ↩︎

  2. 初心者から上級者まで幅広く利用されている、個人的なおすすめ ↩︎

  3. パワーユーザー、あるいはオタク向け ↩︎

  4. 使いたい機能を宣言的に指定できるため環境の再現性に優れる、すごい ↩︎

  5. 開発環境用 ↩︎

  6. 工学院の講義用 ↩︎

  7. 設定をロールバックするためのファイルを保存していくため ↩︎

  8. NixOS(というよりもNixパッケージマネージャー)はNix言語で書かれた設定ファイルをもとに環境を自動生成してくれる、すごい ↩︎

  9. os-proberがmountされたすべてのデバイス内で起動できるOSが無いか探してくれる。詳しくは、https://github.com/campadrenalin/os-prober/blob/master/README ↩︎

comavius icon
この記事を書いた人
comavius

algoとheurとLinux

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2024年3月22日
traPグラフィック班の活動紹介2024
haru10 icon haru10
2024年12月11日
Nixで実行環境のライセンス違反を予防する話
comavius icon comavius
2024年8月29日
クロスコンパイルRust
H1rono_K icon H1rono_K
2024年4月14日
Spotifyのクライアントを自作しよう
d_etteiu8383 icon d_etteiu8383
2024年4月14日
unityroomでAddressablesを使った話
inutamago_dogegg icon inutamago_dogegg
2024年3月17日
⑨でもわかる8bitアレンジ講習会
vPhos icon vPhos
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記