Preempt RT 커널을 설치하고 컴파일한 후, 이를 시스템에서 사용하려면 GRUB 부트로더를 통해 해당 커널을 선택하고 부팅할 수 있어야 한다. 이 과정에서는 GRUB 설정 파일을 수정하여 Preempt RT 커널을 기본 부팅 커널로 설정하거나, 부팅 시 선택할 수 있도록 설정한다.
GRUB 설정 파일 개요
GRUB 설정 파일은 일반적으로 /etc/default/grub
경로에 위치하며, 이 파일을 편집하여 부팅 시 표시될 커널 옵션을 구성할 수 있다. 또한, GRUB은 grub.cfg
라는 설정 파일을 사용하여 부팅 가능한 커널 리스트를 관리한다. 이 파일은 보통 /boot/grub/grub.cfg
경로에 위치하며, 이 파일은 직접 수정하지 않고, /etc/default/grub
파일의 설정을 기반으로 update-grub
명령을 실행하여 자동으로 생성된다.
Preempt RT 커널 선택
- GRUB 설정 파일 편집: 먼저, 텍스트 편집기를 사용하여
/etc/default/grub
파일을 열고, 기본 커널을 설정할 수 있다. 예를 들어,nano
편집기를 사용하려면 다음 명령을 입력한다.
bash
sudo nano /etc/default/grub
-
GRUB_DEFAULT 설정:
GRUB_DEFAULT
변수는 기본 부팅 커널을 지정하는 데 사용된다. 이 변수를 특정 메뉴 엔트리 이름이나 숫자로 설정할 수 있다. -
기본 커널을 숫자로 설정: 부팅 메뉴의 순서에 따라 커널을 선택할 수 있다. 예를 들어, 두 번째 커널을 기본으로 설정하려면 다음과 같이 수정한다.
bash GRUB_DEFAULT=1
-
메뉴 엔트리 이름으로 설정: 커널 이름을 정확하게 지정하여 설정할 수도 있다. 예를 들어, "Ubuntu, with Linux 5.4.0-rt"와 같은 커널 이름을 사용할 수 있다.
bash GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-rt"
이 경우, 커널의 정확한 이름은 /boot/grub/grub.cfg
파일에서 확인할 수 있다.
- GRUB_TIMEOUT 설정:
GRUB_TIMEOUT
변수는 부팅 메뉴에서 자동으로 선택될 때까지의 대기 시간을 초 단위로 설정한다. 기본적으로 5초로 설정되어 있으며, 0으로 설정하면 즉시 기본 커널로 부팅된다.
bash
GRUB_TIMEOUT=5
- GRUB 설정 업데이트: 파일을 수정한 후에는 변경 사항을 적용하기 위해 GRUB 설정을 업데이트해야 한다. 이를 위해 다음 명령을 실행한다.
bash
sudo update-grub
이 명령은 /etc/default/grub
파일의 설정을 반영하여 /boot/grub/grub.cfg
파일을 자동으로 생성한다.
커널 부팅 확인
설정을 완료하고 시스템을 재부팅하면, GRUB 부팅 메뉴에서 새로 설치한 Preempt RT 커널이 기본으로 선택되는 것을 확인할 수 있다. 만약 기본 부팅 커널을 수동으로 선택하고 싶다면, 부팅 시 Shift
또는 Esc
키를 눌러 GRUB 메뉴를 표시하고, 원하는 커널을 선택하면 된다.
실시간 커널 부팅 후 확인
시스템이 부팅된 후, 실제로 Preempt RT 커널이 사용되고 있는지 확인하려면 다음 명령을 터미널에 입력하여 커널 버전을 확인할 수 있다.
uname -r
이 명령은 현재 사용 중인 커널 버전을 출력한다. 출력된 커널 버전이 Preempt RT 패치를 포함한 커널인지 확인하여 설정이 올바르게 적용되었는지 검증할 수 있다.
부팅 시 문제 해결
GRUB을 통한 Preempt RT 커널 부팅이 예상대로 작동하지 않는 경우, 몇 가지 일반적인 문제 해결 방법을 시도할 수 있다.
-
GRUB 메뉴 표시: GRUB 메뉴가 나타나지 않거나 너무 빨리 사라지는 경우, 부팅 시
Shift
키나Esc
키를 눌러 수동으로 GRUB 메뉴를 표시한다. 이 방법을 통해 원하는 커널을 선택할 수 있다. -
부팅 실패 시 복구 모드 사용: 만약 Preempt RT 커널로 부팅하는 중에 문제가 발생하여 시스템이 부팅되지 않는다면, GRUB 메뉴에서 "Advanced options for Ubuntu"를 선택하고 복구 모드(recovery mode)로 부팅할 수 있다. 복구 모드에서 시스템을 복구하거나, 이전 커널로 부팅하여 문제를 해결할 수 있다.
-
로그 확인: 부팅 문제가 지속된다면, 시스템 로그를 확인하여 문제의 원인을 파악할 수 있다. 다음 명령을 사용하여 부팅 로그를 확인한다.
bash
sudo journalctl -b -1
이 명령은 마지막 부팅 시의 로그를 출력한다. 로그를 살펴보면서 커널 패닉, 모듈 로딩 실패, 또는 다른 오류 메시지를 확인할 수 있다.
- GRUB 설정 초기화: 여러 번의 시도에도 문제가 해결되지 않는다면,
/etc/default/grub
파일을 초기 상태로 되돌리고,update-grub
명령을 다시 실행하여 기본 설정으로 돌아갈 수 있다.
멀티부트 환경에서의 Preempt RT 설정
여러 운영체제가 설치된 멀티부트 시스템에서는 Preempt RT 커널이 설치된 운영체제가 기본으로 부팅되도록 설정해야 할 수 있다. 이를 위해 GRUB_DEFAULT
변수를 운영체제의 이름으로 설정하거나, 해당 운영체제의 커널을 선택하여 부팅할 수 있다.
- 운영체제 선택:
GRUB_DEFAULT
변수에 운영체제의 메뉴 엔트리 이름을 지정한다. 예를 들어, 다른 운영체제와 함께 설치된 Ubuntu에 Preempt RT 커널이 설치된 경우:
bash
GRUB_DEFAULT="Ubuntu"
- 특정 커널 선택: 특정 운영체제의 특정 커널을 기본 부팅 옵션으로 설정하려면, 위에서 언급한 커널 이름을 사용하여 설정한다.
GRUB 커스터마이징
GRUB의 테마, 폰트, 배경 이미지 등을 커스터마이징하여 부팅 메뉴를 사용자 정의할 수 있다. 이러한 작업은 필수적이지 않지만, 특정 프로젝트나 환경에서 사용자 정의된 부팅 메뉴가 필요할 수 있다.
- GRUB 테마 설정:
/boot/grub/themes
디렉토리에 원하는 테마 파일을 추가하고,/etc/default/grub
파일에서GRUB_THEME
변수를 설정한다.
bash
GRUB_THEME="/boot/grub/themes/mytheme/theme.txt"
- 배경 이미지 설정: GRUB 배경 이미지를 설정하려면,
/etc/default/grub
파일에 다음과 같이 추가한다.
bash
GRUB_BACKGROUND="/boot/grub/mybackground.png"
- 설정 적용: 변경 사항을 저장하고
update-grub
명령을 실행하여 설정을 적용한다.
이와 같은 과정을 통해, Preempt RT 커널을 시스템에서 기본적으로 부팅하도록 설정할 수 있으며, 부팅 시 필요한 문제 해결 및 커스터마이징 방법을 이해할 수 있다.