부트매니저란 부팅을 도와주는 역할을 하는 프로그램입니다
어떤 컴퓨터에 여러 운영체제가 설치되어 있을 경우 선택해서 부팅할 수 있도록 합니다
부트로더는 커널 이미지를 디스크에서 메모리로 로드해 실행하는 프로그램입니다
부트로더는 MBR(Master Boot Record)에 설치되며, 부트로더 코드와 파티션 정보가
함께 기록됩니다
LILO(Linux Loader)와 GRUB(Grand Unified BootLoader)가 있습니다
LILO는 특정 파일 시스템에 종속되지 않고, 플로피 디스크와 하드디스크를 이용한 부팅을 지원했습니다
초기 리눅스에서는 LILO를 부트 매니저 프로그램으로 사용했으나,
현재는 대부분 GRUB를 사용하고 있습니다
LILO는 하드디스크에 접근할 때 바이오스의 정보만 참고하는데,
초기에 설계한 바이오스의 경우 1024개의 실린더까지만 인식해서 8GB 영역을 넘어가는 경우
부팅을 아예 못하는 경우가 발생했습니다
또한 LILO는 커널 이미지의 위치를 하드코드로 갖고 있기 때문에,
환경설정 파일을 수정한 뒤에는 lilo라는 명령을 수행해야하는 불편함이 존재합니다
이러한 문제점으로 LILO는 현재 잘 사용하고 있지 않습니다
GRUB는 GNU프로젝트에서 만든 부트로더로 LILO에 비해 다양한 파일 시스템을 지원하며
부팅 시에 커널인자를 조정해서 동적인 부팅을 지원합니다
특히 GRUB2는 BIOS 환경의 MBR뿐 아니라 UEFI 환경의 EFI 시스템 파티션(ESP)에
grubx64.efi
형태로 설치됩니다
최신 리눅스 배포판 대부분은 GRUB2를 기본으로 사용하며,
다양한 파일 시스템과 동적 커널 파라미터, 스크립트 기능 등을 지원합니다