1P by GN⁺ | ★ favorite | 댓글 1개
  • 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 테마는 여러 사이트에 흩어져 있고, 좋은 테마를 찾기 어렵기 때문에 한 페이지에서 살펴볼 수 있도록 구성됨
  • 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 포럼 글은 폰트 파일에 서명해 다시 표시되도록 하는 방법을 다룸

댓글과 토론

Hacker News 의견들
  • 커스터마이징을 아주 좋아하지만, 개인적으로는 GRUB을 보거나 생각할 일이 적을수록 좋음

    • 맞음. 보통 1년에 몇 초 정도만 봄. 테마를 신경 쓸 만큼 자주 보게 된다면, 그 시간에 왜 그렇게 자주 보게 되는지 원인을 고치는 편이 낫겠음
  • "Grand Theft Gentoo": https://raw.githubusercontent.com/Jacksaur/Gorgeous-GRUB/ref...

    • 세상에, 이건 진짜 보석 같음. 오른쪽 위의 화난 Linus, 아래쪽의 의기양양하면서도 혼란스러운 Ballmer, 거기에 Gates 머그샷까지 완벽함
  • 정말 원하는 건 예전 SGI 시작 화면을 흉내 내는 것임. 부팅 사운드와 운영체제 설정용 마이크로 배포판까지 포함해서
    요즘은 스냅샷 파일시스템이 있으니 그렇게 어렵지 않아야 할 듯함. 살면서 몇 번은 시스템을 고치려고 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 메뉴 항목이 하나씩 생김. 둘 다 새 GRUB 항목을 얻게 됨
      물론 SSH 설정을 망치는 식으로 원격 접근이 불가능하게 만들어 스스로 발등을 찍을 수는 있음. 이를 위한 deploy-rs라는 해법도 있고, 배포를 시작한 컴퓨터로 다시 연결하지 못하면 시스템을 되돌리는 magic rollback 기능이 있음 https://github.com/serokell/deploy-rs?tab=readme-ov-file#mag...
      이 기능들을 몇 년째 쓰고 있고, 믿고 추천할 수 있음
      원래 질문과 정확히 관련 있지는 않지만, 시스템 빌드를 CI에서 돌리고 Playwright 테스트도 점점 더 포괄적으로 만들고 있음. 덕분에 문제를 일찍 찾거나 되돌릴 수 있다는 확신이 꽤 생김
    • Arch에서는 메인보드 펌웨어가 직접 부팅할 수 있는 복구 파티션에 두 번째 “백업” Arch Linux를 설치하고, arch-chroot로 메인 운영체제를 복구할 수 있을 것 같음. 다른 배포판에도 비슷한 방식이 있을 듯함
    • macOS에는 대략 두 기능이 모두 있음
      SGI 장비의 시작음은 모델마다 달랐음. Indy와 Onyx가 서로 달랐다는 뜻임. 첫 PC였던 80286도 켤 때 상징적인 소리가 났고, 잊을 수 없음
      마이크로 배포판은 복구 운영체제에 해당함. 주요 데스크톱 운영체제 3개 모두 그런 기능이 있거나, 이를 켜는 키 조합이 있음. Android에는 복구 파티션이 두 개 있는 것으로 알고 있는데, 중복성이 핵심임
      스냅샷의 힘을 좋아한다면, ZFS 같은 쓰기 시 복사(CoW) 파일시스템은 부팅 중 목록을 보여줄 수 있음. NixOS 같은 운영체제는 그런 파일시스템도 필요 없음. Ext4FS에서도 스냅샷이 있는 부팅 메뉴, 롤백 기능 등이 잘 동작함
    • 이 목적에는 kexec 기반 부트로더가 가장 나을 것 같음. 그러면 특수한 환경이 아니라 원하는 도구를 넣을 수 있는 “진짜” Linux 환경이 되기 때문임
      예: https://github.com/kexecboot/kexecboot
  • 이런 것 때문에 Linux를 사랑하게 됨. 여기에 놀라운 창의성이 많음. GRUB을 볼 핑계가 생기게 뭔가와 듀얼 부팅하고 싶어질 정도임

    • 이것, 흔들리는 창, 비 효과 같은 것들. 지금은 그런 걸 쓰지 않겠지만, Windows 커스터마이징이 버전마다 더 번거로워지던 시기에 정말 매료됐음
  • 멋지긴 하지만, 솔직히 GRUB은 부팅 중 키를 누르고 있을 때만 나타나면 좋겠음. 사라질 때까지 5초 기다렸다가 기본 운영체제로 부팅하는 건 정말 불필요함

    • 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이 드디어 사라질 줄 알았음
      더 나쁜 건, 듀얼 부팅에서 각 운영체제가 자기 GRUB을 설치하면 GRUB이 다른 GRUB으로 체인로딩한 다음 운영체제를 부팅하는 이상한 상황이 벌어질 수 있음
      그냥 F12 같은 키를 눌러서 UEFI가 제공하는 모든 부팅 옵션 메뉴를 보면 되지 않나 싶음. 설치 프로그램들이 들어와 망치기 전에는 거기에 깔끔하게 다 있음. Windows는 항상 끼어들어서 기존 것을 망가뜨리고 자기를 맨 위에 올려놓는 것 같음
    • shim + grub도 별로지만, 일반적으로 순수 EFI는 훨씬 더 별로임. 소비자용 EFI 플랫폼을 만드는 벤더들은 제정신이 아닌 경우가 많음
      메인보드에 직렬 포트가 있어도 UEFI 콘솔 리다이렉션을 제공하지 않고, 보안 부팅 설정이나 부팅 옵션 관리도 사용자에게 노출하지 않음. 그래서 systemd-boot나 rEFInd 같은 순수 EFI 기반 부트로더가 그래도 가장 덜 성가신 선택으로 보임
    • 왜 이렇게 싫어하는지 모르겠음. 내게는 늘 그냥 잘 동작했음. 암호화를 포함한 듀얼 부팅도 쓰고 있음. 전체 그림에서는 정말 작은 부분임
      ARM에서 부팅하는 것과 비교해 보면 됨
    • 여기 Windows, Haiku, Linux가 있는 노트북이 있음. 실제로 Haiku를 시작하게 하는 GRUB 2 설정은 이상했음. GRUB을 대체하려면 정확히 뭘 설치하는 게 가장 좋을까?
      아니면 Void Linux만 있는 PC도 있음. UEFI 모드가 동작하지 않아서 호환 모드로 부팅 중인데 이유는 모름. 보안 부팅 문제인지, MBR 대 GPT 모드인지, EFI 파티션도 없음. 여기서는 무엇이 GRUB을 대체할 수 있을까?
    • 이해가 안 되는 건, 커널이나 운영체제를 추가할 때마다 왜 GRUB 재생성이 필요한가임
      부트로더가 충분히 똑똑해서 아래 파일시스템을 읽고 커널을 찾으면 됨. rEFInd는 그렇게 함. 부팅 가능한 USB를 꽂거나 두 번째 SSD에 Windows를 설치하면, 명시적으로 요구하지 않아도 메뉴에 그냥 나타남
      “/boot는 잘 지원되는 파일시스템 유형 n개 중 하나여야 한다” 정도의 제약은 필요할 수 있지만, 대부분에 맞는 방식이면 충분할 것 같음. ZFS 위 RAID6 위 128개 USB 플로피 드라이브 묶음 같은 걸 돌리는 사람들에게만 GRUB 같은 것에 의존하면 됨
  • 20년 전 데스크톱과 CRT 모니터 조합처럼, 처음부터 외부 모니터에 바로 나타나는 부트로더를 아직도 기다리고 있음
    Pop!_OS에 포함된 systemd-boot는 그렇게 하지 않아서, 부팅 옵션을 바꾸려면 ThinkPad X1 Extreme 노트북을 스탠드에서 꺼내 열어야 함. 이 부분에서 GRUB은 어떤지 다른 사람들의 경험이 궁금함

    • BIOS에서 기본 디스플레이 설정을 확인해 보길. BIOS 화면을 외부 디스플레이에 띄울 수 있으면, 뒤이어 나오는 부트로더도 그 디스플레이를 쓸 가능성이 큼
      내 ThinkPad+Dock 조합에서는 잘 동작함
    • ThinkPad 펌웨어 설정에서 외부 모니터나 독 GPU가 부팅 중 유효한 기본 디스플레이로 되어 있는지 확인해야 함
      다만 일부 PC에서는 그렇게 설정하면 부팅 중 노트북 자체 화면에는 아무것도 안 보일 수 있고, 때로는 노트북 단독 상태에서도 그럴 수 있음. Initial Graphics Device가 특정 장치가 아니라 "Auto"로 되어 있으면 괜찮을 수도 있지만, 지금과 다르지 않을 수도 있음
      외부 모니터에도 VGA, DVI, HDMI 같은 여러 입력이 있을 수 있고, 활성 입력을 찾도록 "Auto" 스캔으로 설정되어 있으면 부팅 시간보다 감지 시간이 더 오래 걸릴 때가 있음. 그렇다면 모니터의 입력 옵션에서 선호하는 입력을 단독 또는 기본값으로 지정하면, 지금 빈 화면으로 보이는 시간에 뭔가를 볼 수 있을지도 모름
    • 이건 확실히 사용자 쪽 문제임. 독을 통해 연결한 모니터에서 잘 동작함. 예전에 Pop!_OS도 써봤는데 분명 동작했음
    • 부트로더가 아니라 모니터에 따라 달라질 수 있다고 봄. 어떤 모니터는 켜질 때 지연이 더 김
      DisplayPort로 연결한 4K 모니터는 문제가 없지만, 홈랩 복구용으로 쓰는 오래된 VGA/DVI 모니터는 충분히 빨리 켜지지 못함