Linux 에서 부트로더란 무엇인가
BIOS/UEFI가 작업을 완료하면 부팅 프로세스의 다음 단계인 부트로더로 제어권을 넘깁니다. Linux 의 부트로더는 운영 체제의 커널을 메모리에 로드한 다음 실행하는 작은 프로그램입니다. 이는 시스템 펌웨어와 Linux 커널 사이의 다리 역할을 합니다.
Linux 부트로더의 역할
Linux 부트로더의 주요 책임은 간단하지만 매우 중요합니다:
- 운영 체제 선택: 멀티 부팅 설정을 사용하는 경우 Linux 가 아닌 시스템을 포함하여 다양한 운영 체제로 부팅할 메뉴를 표시할 수 있습니다.
- 커널 선택: 로드할 Linux 커널 버전을 선택할 수 있게 해주므로 문제 해결이나 테스트에 유용합니다.
- 커널 매개변수 전달: 커널이 올바르게 시작하는 데 필요한 중요한 매개변수를 지정합니다.
가장 일반적인 Linux 부트로더는 GRUB(GRand Unified Bootloader) 이며, 여러분도 아마 이것을 사용하고 있을 것입니다. LILO, SYSLINUX, Coreboot 와 같은 다른 부트로더도 있지만, 이 강의에서는 GRUB 에 중점을 둘 것입니다.
GRUB 의 일반적인 커널 매개변수
부트로더의 주된 목표는 커널을 로드하는 것이지만, 커널을 로드하는 방법과 위치에 대한 지침이 필요합니다. 이러한 지침은 커널 매개변수로 제공됩니다. 일반적으로 시작 시 GRUB 메뉴에서 'e' 키를 눌러 이러한 매개변수를 보거나 편집할 수 있습니다.
다음에 접하게 될 가장 일반적인 매개변수는 다음과 같습니다.
initrd- 메모리에 로드되는 임시 루트 파일 시스템인 초기 RAM 디스크의 위치를 지정합니다. 다음 강의에서 이에 대해 더 자세히 다룰 것입니다.BOOT_IMAGE- 로드해야 할 커널 이미지 파일의 경로를 정의합니다.root- 실제 루트 파일 시스템의 위치를 가리킵니다. 커널은 이 경로를 사용하여init프로세스를 찾습니다. 이는 종종 장치 이름 (예:/dev/sda1) 또는 UUID 로 표시됩니다.ro- 루트 파일 시스템을 처음에 읽기 전용 모드로 마운트하도록 커널에 지시하는 표준 매개변수입니다. 이는 파일 시스템 검사가 실행되기 전에 변경 사항이 적용되지 않도록 하는 안전 조치입니다.quiet- 이 매개변수는 대부분의 상세한 부팅 메시지를 억제하여 더 깔끔하고 덜 장황한 시작 화면을 제공합니다.splash- 텍스트 메시지 대신 부팅 프로세스 중에 그래픽 스플래시 화면이 표시되도록 활성화합니다.