1 ポイント 投稿者 GN⁺ 2025-05-05 | 1件のコメント | WhatsAppで共有
  • Gorgeous-GRUBは、複数のサイトに散在しているコミュニティ製GRUBテーマの中から、良質なものを一か所に集めたコレクション
  • Plingは現在GRUBテーマを最も多くホスティングしている場所として紹介されているが、多くのテーマが手間の少ない仕上がりで、良いテーマを見つけにくいという問題がある
  • READMEではMinegrub、SteamOS、Persona 5 Royal、Catppuccin、Cyberpunk 2077、Dark Matter、Elegantなど、さまざまなテーマリンクとプレビュー画像を表形式で提供
  • インストール文書、貢献文書、GRUB-Tweaks、GRUB2 Theme Preview、Background Cycler、コミュニティ製Theme Installerなどの補助ツールとガイドもあわせて案内
  • Secure Boot環境ではカスタムフォントが適用されなかったり表示されなかったりする場合があり、フォントファイルの署名方法を扱ったArch Linuxフォーラム記事が参考資料としてリンクされている

プロジェクトの目的

  • Gorgeous-GRUBは、起動前に表示されるGRUBブートローダー画面を装飾できるコミュニティ製テーマを集めたリポジトリ
  • GRUBテーマは複数のサイトに散在しており、良いテーマを探しにくいため、1ページで見渡せるように構成されている
  • Plingは現在GRUBテーマを最も多くホスティングしている場所として紹介されているが、多くのテーマが単調だったり手間の少ない仕上がりだったりするため、探し回るのが面倒になりがち
  • このリポジトリは、時間をかけてインターネット上で見つけた良質なテーマに注目してもらうために作られた

便利なツールと参考リンク

  • GitZip: GitHubリポジトリ全体を取得せずに、個別のフォルダやファイルをダウンロードできる
    • トークンを要求するが、トークンなしでも問題なく動作すると紹介されている
  • GRUB-Tweaks: GRUBのインストールをさらにカスタマイズしたり復旧したりするための、さまざまなチューニングと追加設定ガイドを提供
  • Theme Tutorial / Theme References: GRUB2テーマ制作に関する情報で、複雑ではあるものの、現時点で見つかっている中では最良の資料として紹介されている
    • 最初から新規作成するより、既存テーマを持ってきて自分で修正するほうが簡単な場合がある
  • GRUB2 Theme Preview: システム全体を再起動せずにGRUBテーマをプレビューできるソフトウェア
    • VM全体を起動するため、依存関係が多い
    • 必要な依存関係をインストールする簡単なコマンドは、GRUB-Tweaksリポジトリにある
  • Background Cycler: システムを再起動するたびにテーマの背景を切り替えるスクリプト
  • Theme Installer (Community Made): FLEXIY0が作成したスクリプトで、多くのテーマを自動ダウンロードしてインストールできる
    • 一部のエッジケースではエラーが発生する場合がある

インストールと貢献

テーマの探し方

  • テーマ一覧は、プレビュー画像とリンクを含む表形式で構成されている
  • 気に入ったテーマがあれば、Plingで評価を付けたりGitHubリポジトリにスターを付けたりすることが勧められている
    • Plingでは評価を残す人が少なく、これが良いテーマを見つけにくい理由の一つとして挙げられている
    • 制作者は、自分たちの成果物が実際に楽しまれていることを確認できる

含まれているテーマの例

Secure Bootの注意事項

  • Secure Bootが設定されたシステムでは、カスタムフォントが適用されなかったり、まったく表示されなかったりする場合がある
  • Arch Linuxフォーラム記事では、フォントファイルに署名して再び表示されるようにする方法を扱っている

1件のコメント

 
GN⁺ 2025-05-05
Hacker News のコメント
  • カスタマイズは大好きだけれど、個人的には GRUB を見たり意識したりする機会は少なければ少ないほどいい

    • その通り。普通は年に数秒くらいしか見ない。テーマを気にするほど頻繁に見るなら、その時間でなぜそんなに頻繁に見る羽目になっているのか原因を直したほうがよさそう
  • 「Grand Theft Gentoo」: https://raw.githubusercontent.com/Jacksaur/Gorgeous-GRUB/ref...

    • なんてことだ、これは本当に逸品だ。右上の怒った Linus、下の得意げでありつつ混乱している Ballmer、さらに Gates のマグショットまで完璧
  • 本当に欲しいのは、昔の SGI の起動画面をまねること。起動音と、OS 設定用のマイクロディストリビューションまで含めて
    今ならスナップショットファイルシステムがあるので、そこまで難しくないはず。これまで何度かシステム修復のために chroot しなければならなかったが、これを自動化するのが難しいというのは信じがたい

    • こうした部品はすでに何らかの形で存在しているので、全体としてもっと磨き込むことに労力が向くとよさそう。ただ、みんなが少しずつ違うやり方を使っているのが問題なのだと思う
      NixOS は前の世代にブートできるが、ファイルシステムを丸ごとひっくり返す方式だし、OpenSUSE はスナップショットをサポートしているものの BTRFS ベースなので他のディストリビューションが同じ実装を使うのは難しい。ZFS は素晴らしいが、Linux ではライセンスが常に摩擦を生む。Ubuntu は Plymouth で起動を非常に滑らかにしたが、とても Ubuntu らしい
      いずれにせよ、Linux で ZFS を使える環境なら zfsbootmenu を勧めたい

      ZFSBootMenu leverages the features of modern OpenZFS to allow users to choose among multiple "boot environments" (which may represent different versions of a Linux distribution, earlier snapshots of a common root, or entirely different distributions), manipulate snapshots in a pre-boot environment and, for the adventurous user, even bootstrap a system installation via zfs recv.

    • NixOS では、別ホストでもローカルでも、「デプロイ」ごとに新しい GRUB メニュー項目が1つずつできる。どちらも新しい GRUB 項目を得る
      もちろん、SSH 設定を壊すような形でリモートアクセス不能にして、自分で自分の足を撃つことはあり得る。そのための deploy-rs という解決策もあり、デプロイを開始したコンピュータへ再接続できなければシステムを戻す magic rollback 機能がある https://github.com/serokell/deploy-rs?tab=readme-ov-file#mag...
      これらの機能を数年使っていて、自信を持って勧められる
      元の質問と正確に関係しているわけではないが、システムビルドを CI で回し、Playwright テストもだんだん包括的にしている。そのおかげで、問題を早く見つけるかロールバックできるという確信がかなり持てる
    • Arch では、マザーボードのファームウェアが直接ブートできるリカバリパーティションに2つ目の「バックアップ」Arch Linux を入れて、arch-chroot でメイン OS を復旧できそう。他のディストリビューションにも似た方法はありそう
    • macOS には、おおむねその2つの機能がどちらもある
      SGI マシンの起動音はモデルごとに違っていた。Indy と Onyx は互いに違ったということ。初めての PC だった 80286 も電源投入時に象徴的な音がして、忘れられない
      マイクロディストリビューションはリカバリ OS に相当する。主要なデスクトップ OS 3つはいずれもそうした機能を持っているか、それを起動するキーコンビネーションがある。Android にはリカバリパーティションが2つあると理解しているが、冗長性が肝心だ
      スナップショットの力が好きなら、ZFS のような コピーオンライト(CoW) ファイルシステムは起動中に一覧を表示できる。NixOS のような OS では、そうしたファイルシステムすら不要。Ext4FS でも、スナップショット付きのブートメニューやロールバック機能などはうまく動く
    • この目的には kexec ベースのブートローダ が一番よさそう。そうすれば特殊な環境ではなく、好きなツールを入れられる「本物の」Linux 環境になるから
      例: https://github.com/kexecboot/kexecboot
  • こういうものがあるから Linux を好きになる。ここには驚くほどの創造性がある。GRUB を見る口実ができるように、何かとデュアルブートしたくなるほど

    • これとか、揺れるウィンドウ、雨エフェクトみたいなもの。今はそういうものを使わないだろうけれど、Windows のカスタマイズがバージョンごとに面倒になっていった時期には本当に魅了された
  • 格好いいとは思うが、正直 GRUB は起動中にキーを押し続けているときだけ表示されてほしい。消えるまで5秒待ってからデフォルト OS で起動するのは本当に不要

    • GRUB_TIMEOUT_STYLE=hiddenGRUB_TIMEOUT=0 を設定すればよさそう。そうすると Shift を押し続けているときだけ GRUB メニューが表示され、そうでなければデフォルト項目で即座に起動する
    • なぜ実際にそれを望むのか。自分の感覚ではあまりに些細なことなので、そういうものを隠したがるのはかなり不思議に感じる
    • きっとそういうオプションはあるはず。Shift を押し続けていればメニューが出る
    • 押すべきキーを覚えていなかったらどうするの?
  • GRUBに文句を言う人はみんな lilo を忘れている

    • 昔は「えっ? GRUBはLiLoの後継で、ずっと良かったのに!」と思っていた。時間がどうなってしまったのか分からない
      あの頃はGhost in the Shellで自作した格好いいテーマがあって、オンラインで見つけたjpegをものすごく難解な画像形式に変換したのを覚えている。Linux環境を飾り立てるのに本当に多くの時間を費やした。コンピューターは本当に手入れの行き届いたペットみたいで、魚の入ったキューブ型デスクトップや反射エフェクトみたいなものがあった
    • ああ、2003年に引き戻されてしまった
    • Linux loaderに一杯捧げる
  • あの背景画像は、異なるモニターや解像度ではどうリサイズされるの?
    ところでGRUBは、インターフェースをどの解像度で描画するかをどうやって知るの?

    • いくつかのリポジトリを見る限り、答えは「知らない」に近いようだ。正しい解像度の画像を手動で選ぶ必要があるらしい
    • 解像度は明示的に設定できるし、そうしない場合は UEFI が起動を開始した解像度でレンダリングする
  • ついに自分のコンピューターを映画『Hackers』に出てくるコンピューターみたいに見せられそう。最高

    • テーマを見た瞬間の第一印象は「うわ、映画そのままだ」だった
      最近作業中にサウンドトラックを聴いているので、近いうちにまた観るかもしれない
  • GRUBは流れないトイレの中の塊みたいなものだ。何年も前から完全に不要で、過度に複雑で、1995年式の慣用句を持つシェルはほとんど使い物にならず、extlinuxのようなはるかに軽量で有用な代替がある
    今では EFI stub でカーネルを直接起動することもできるのに、それでもインストールされ続け、自分の存在を正当化しようとしている

    • UEFI が登場すれば、GRUBはついに消えると思っていた
      さらに悪いことに、デュアルブートで各OSが自分のGRUBをインストールすると、GRUBが別のGRUBへチェーンロードしてからOSを起動するという奇妙な状況が起こり得る
      F12のようなキーを押して、UEFIが提供する全ブートオプションのメニューを見ればいいだけでは、と思う。インストーラーたちが入り込んで壊す前なら、そこにきれいに揃っている。Windowsはいつも割り込んできて既存のものを壊し、自分を一番上に置くように見える
    • shim + grubもいまいちだが、一般的に 純粋なEFI はそれよりずっとひどい。コンシューマー向けEFIプラットフォームを作るベンダーは、正気ではないことが多い
      マザーボードにシリアルポートがあってもUEFIコンソールリダイレクションを提供せず、セキュアブート設定やブートオプション管理もユーザーに公開しない。だからsystemd-bootやrEFIndのような純粋EFIベースのブートローダーが、それでもいちばん面倒の少ない選択肢に見える
    • なぜそこまで嫌うのか分からない。自分にはいつも普通にうまく動いてきた。暗号化を含むデュアルブートも使っている。全体像の中では本当に小さな部分だ
      ARMで起動することと比べてみればいい
    • ここにWindows、Haiku、Linuxが入ったノートPCがある。実際にHaikuを起動させるGRUB 2設定は妙だった。GRUBを置き換えるなら、正確には何をインストールするのが一番いいのだろう?
      あるいはVoid LinuxだけのPCもある。UEFIモードが動作しないので互換モードで起動しているが、理由は分からない。セキュアブートの問題なのか、MBR対GPTモードなのか、EFIパーティションもない。ここでは何がGRUBの代わりになれるのだろう?
    • 理解できないのは、カーネルやOSを追加するたびに、なぜ GRUBの再生成 が必要なのかということだ
      ブートローダーが十分賢く、下のファイルシステムを読んでカーネルを見つければいい。rEFIndはそうしている。起動可能なUSBを挿したり、2台目のSSDにWindowsをインストールしたりすると、明示的に要求しなくてもメニューにそのまま現れる
      「/bootは十分サポートされたファイルシステム種別のうちのどれかでなければならない」程度の制約は必要かもしれないが、大多数に合う方式なら十分だと思う。ZFS上のRAID6上に128台のUSBフロッピードライブを束ねたもの、みたいな構成を動かしている人たちだけが、GRUBのようなものに頼ればいい
  • 20年前のデスクトップとCRTモニターの組み合わせのように、最初から 外部モニター にすぐ表示されるブートローダーを今でも待っている
    Pop!_OSに含まれるsystemd-bootはそうしてくれないので、起動オプションを変えるにはThinkPad X1 ExtremeノートPCをスタンドから取り出して開かなければならない。この点でGRUBはどうなのか、他の人たちの経験が気になる

    • BIOSで プライマリディスプレイ 設定を確認してみるといい。BIOS画面を外部ディスプレイに表示できるなら、その後に出てくるブートローダーもそのディスプレイを使う可能性が高い
      自分のThinkPad+Dockの組み合わせではうまく動いている
    • ThinkPadのファームウェア設定で、外部モニターやドックGPUが起動中に有効な プライマリディスプレイ になっているか確認する必要がある
      ただし一部のPCでは、そう設定すると起動中にノートPC本体の画面には何も表示されないことがあり、場合によってはノートPC単体の状態でもそうなる。Initial Graphics Deviceが特定のデバイスではなく「Auto」になっていれば大丈夫かもしれないが、今と変わらないかもしれない
      外部モニターにもVGA、DVI、HDMIなど複数の入力がある場合があり、アクティブな入力を探すように「Auto」スキャンに設定されていると、検出に起動時間より長くかかることがある。そうなら、モニターの入力オプションで好みの入力を単独またはデフォルトに指定すれば、今は空白画面に見えている時間に何かを見られるかもしれない
    • これは間違いなくユーザー側の問題だ。ドック経由で接続したモニターでうまく動いている。以前Pop!_OSも使っていたが、確かに動作していた
    • ブートローダーではなく モニター によって変わることがあると思う。モニターによっては、点灯時の遅延が長い
      DisplayPortで接続した4Kモニターは問題ないが、ホームラボの復旧用に使っている古いVGA/DVIモニターは、十分速く点灯できない