
systemd-boot는 'gummiboot'라는 이름으로 불리던 시절을 거쳐 현재는 GRUB의 강력한 경쟁자로 자리 잡은 부트로더입니다. 호환되는 EFI 시스템에서는 GRUB 대신 systemd-boot를 사용해 운영체제를 부팅할 수 있습니다. 큰 그림에서 보면, systemd-boot는 UEFI에 이미 내장된 부트 로직에 연결되어 운영체제를 선택하는 가장 기본적인 기능만 제공합니다. 반면 GRUB는 흔히 '하나의 완전한 OS'라고 표현될 만큼 방대한 코드를 로드하여 사용자의 운영체제 부팅을 관리하며, 훨씬 더 많은 기능을 제공합니다.
부트로더란 무엇인가?
부트로더(bootloader)는 운영체제를 메모리에 불러오는 프로그램입니다. 부트 미디어의 특수 섹터에서 복사되어 어떤 운영체제도 시작되기 전에 실행됩니다. 여러 개의 부팅 가능한 시스템 이미지가 감지되면, 부트로더는 사용자가 시작할 시스템을 선택할 수 있게 해줍니다. 이후 부트로더는 운영체제를 부팅하고 하드웨어 제어권을 OS에 인계합니다. 대부분의 시스템에서 부트로더는 메인보드 스플래시 화면 직후에 나타납니다.
GRUB이란?

GNU GRUB, 흔히 GRUB 또는 GRUB 2로 알려진 이 프로그램은 GRand Unified Boot Interface의 약자입니다. 자유软件재단(Free Software Foundation)의 multiboot 사양을 기반으로 설계되었으며, 어떤 하드웨어 플랫폼에서든 거의 모든 Unix 계열 운영체제를 다양한 부트 미디어와 파일 시스템에서 부팅할 수 있도록 만들어졌습니다. 폭넓은 플랫폼과 배포판을 지원하기 위해 설계된 만큼, GRUB는 대부분의 리눅스 배포판에서 기본 부트로더로 채택되고 있습니다. 리눅스 부트로더를 사용해 보셨다면 아마 GRUB였을 가능성이 높습니다. 또한 텍스트 색상, 배경색, 그래픽 스플래시 이미지 등 시각적 구성 옵션도 제공합니다. 예를 들어 우분투(Ubuntu) 버전의 GRUB는 캐노니컬(Canonical) 특유의 보라색을 사용합니다.
GRUB는 멀티부트 시스템을 지원하며, 실제로 그 목적을 위해 작성된 프로그램입니다. 하지만 문제가 발생하면 처리가 다소 번거로울 수 있습니다. 문제는 주로 기존 멀티부트 시스템에 GRUB를 설치할 때, 운영체제를 제거할 때, 새로운 운영체제를 설치할 때 자주 발생합니다. GRUB는 하나의 설정 파일(conf)을 사용하므로 모든 운영체제 항목이 같은 파일에 포함되며, 변경 사항이 생길 때마다 이 파일을 수정해야 합니다. 기본 운영체제의 부트로더는 MBR에 위치하고, 다른 운영체제들은 각자 파티션의 부트로더를 통해 체인 로드(chain-load)됩니다. 이 방식은 잘 작동하며 대부분의 사용 사례에서 충분하지만, 쉽게 깨질 수 있는 구조이기도 합니다. 예를 들어 체인 로드되는 커널을 올바르게 구성하지 않으면, 여러 리눅스 설치본이 MBR 제어권을 두고 서로 '다투는' 상황이 벌어질 수 있습니다.
systemd-boot란?

리눅스 사용자라면 'systemd'라는 이름을 한 번쯤 들어보셨을 것입니다. systemd는 'system daemon'의 줄임말로, 리눅스 시스템 구동에 필요한 필수 데몬들의 모음입니다. systemd-boot는 수천 줄 규모의 코드로 이루어져 있으며, systemd 스위트의 나머지 구성 요소에 대한 의존성이 전혀 없습니다. 단순함 덕분에 gummiboot가 systemd 프로젝트에 통합되었고, systemd의 컴포넌트 명명 규칙에 맞춰 'systemd-boot'로 이름이 변경되었습니다. systemd의 전반적인 목표는 적은 것을 시작하고 더 많은 작업을 병렬로 처리해 시스템을 빠르게 부팅하는 것이며, systemd-boot 역시 이 목표를 공유합니다.
텍스트 전용 부트로더인 systemd-boot는 확실히 올드스쿨(old-school)한 외관을 지니고 있습니다. 부팅 가능한 장치들이 제목별로 나열되며, 이 제목은 systemd-boot의 설정 파일에서 관리됩니다. systemd-boot는 본질적으로 EFI에 내장된 부트 로직을 위한 인터페이스이기 때문에 호환되는 EFI 시스템에서만 사용할 수 있습니다. GRUB에 비해 구성 가능성이 현저히 낮아, 사실상 설정 옵션이 거의 없습니다.
제한적인 인터페이스 덕분에 systemd-boot는 GRUB보다 훨씬 작은 부트로더입니다. 일부 사용자는 속도 향상이나 여러 운영체제를 더 효율적으로 관리하기 위해 이를 설치합니다. systemd-boot는 커널이나 운영체제마다 개별 .conf 파일을 사용하는 분리형 설정 구조를 채택하고 있어, 여러 커널이나 운영체제를 수동으로 관리하는 시스템에서는 오히려 더 간편할 수 있습니다. 새 커널이 설치되면 해당 드롭인(drop-in) 설정 텍스트 파일을 systemd-boot 디렉터리에 복사하기만 하면 됩니다. 이는 멀티부트 시스템의 설정 과정을 크게 단순화해 줍니다.
결론: GRUB와 systemd-boot 중 무엇이 더 나은가?
GRUB 사용에 어려움을 겪고 있다면, systemd-boot는 드롭인 파일 방식의 설정으로 획기적으로 단순화된 부팅 환경을 제공합니다. 더 안정적이지만, GRUB만큼 유연하게 구성하거나 다양한 환경에 적응시키기는 어렵습니다. 멀티부트 EFI 시스템을 운영 중이라면 systemd-boot가 더 쉬운 부팅 관리를 제공하고 부팅 시간까지 단축해 줄 수 있습니다. 반면 다른 시스템 구성 환경이거나 systemd-boot가 제공하는 수준 이상의 유연성이 필요한 용도라면, 여전히 GRUB가 최선의 선택입니다.