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 커널 선택

  1. GRUB 설정 파일 편집: 먼저, 텍스트 편집기를 사용하여 /etc/default/grub 파일을 열고, 기본 커널을 설정할 수 있다. 예를 들어, nano 편집기를 사용하려면 다음 명령을 입력한다.

bash sudo nano /etc/default/grub

  1. GRUB_DEFAULT 설정: GRUB_DEFAULT 변수는 기본 부팅 커널을 지정하는 데 사용된다. 이 변수를 특정 메뉴 엔트리 이름이나 숫자로 설정할 수 있다.

  2. 기본 커널을 숫자로 설정: 부팅 메뉴의 순서에 따라 커널을 선택할 수 있다. 예를 들어, 두 번째 커널을 기본으로 설정하려면 다음과 같이 수정한다.

    bash GRUB_DEFAULT=1

  3. 메뉴 엔트리 이름으로 설정: 커널 이름을 정확하게 지정하여 설정할 수도 있다. 예를 들어, "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 파일에서 확인할 수 있다.

  1. GRUB_TIMEOUT 설정: GRUB_TIMEOUT 변수는 부팅 메뉴에서 자동으로 선택될 때까지의 대기 시간을 초 단위로 설정한다. 기본적으로 5초로 설정되어 있으며, 0으로 설정하면 즉시 기본 커널로 부팅된다.

bash GRUB_TIMEOUT=5

  1. 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 커널 부팅이 예상대로 작동하지 않는 경우, 몇 가지 일반적인 문제 해결 방법을 시도할 수 있다.

  1. GRUB 메뉴 표시: GRUB 메뉴가 나타나지 않거나 너무 빨리 사라지는 경우, 부팅 시 Shift 키나 Esc 키를 눌러 수동으로 GRUB 메뉴를 표시한다. 이 방법을 통해 원하는 커널을 선택할 수 있다.

  2. 부팅 실패 시 복구 모드 사용: 만약 Preempt RT 커널로 부팅하는 중에 문제가 발생하여 시스템이 부팅되지 않는다면, GRUB 메뉴에서 "Advanced options for Ubuntu"를 선택하고 복구 모드(recovery mode)로 부팅할 수 있다. 복구 모드에서 시스템을 복구하거나, 이전 커널로 부팅하여 문제를 해결할 수 있다.

  3. 로그 확인: 부팅 문제가 지속된다면, 시스템 로그를 확인하여 문제의 원인을 파악할 수 있다. 다음 명령을 사용하여 부팅 로그를 확인한다.

bash sudo journalctl -b -1

이 명령은 마지막 부팅 시의 로그를 출력한다. 로그를 살펴보면서 커널 패닉, 모듈 로딩 실패, 또는 다른 오류 메시지를 확인할 수 있다.

  1. GRUB 설정 초기화: 여러 번의 시도에도 문제가 해결되지 않는다면, /etc/default/grub 파일을 초기 상태로 되돌리고, update-grub 명령을 다시 실행하여 기본 설정으로 돌아갈 수 있다.

멀티부트 환경에서의 Preempt RT 설정

여러 운영체제가 설치된 멀티부트 시스템에서는 Preempt RT 커널이 설치된 운영체제가 기본으로 부팅되도록 설정해야 할 수 있다. 이를 위해 GRUB_DEFAULT 변수를 운영체제의 이름으로 설정하거나, 해당 운영체제의 커널을 선택하여 부팅할 수 있다.

  1. 운영체제 선택: GRUB_DEFAULT 변수에 운영체제의 메뉴 엔트리 이름을 지정한다. 예를 들어, 다른 운영체제와 함께 설치된 Ubuntu에 Preempt RT 커널이 설치된 경우:

bash GRUB_DEFAULT="Ubuntu"

  1. 특정 커널 선택: 특정 운영체제의 특정 커널을 기본 부팅 옵션으로 설정하려면, 위에서 언급한 커널 이름을 사용하여 설정한다.

GRUB 커스터마이징

GRUB의 테마, 폰트, 배경 이미지 등을 커스터마이징하여 부팅 메뉴를 사용자 정의할 수 있다. 이러한 작업은 필수적이지 않지만, 특정 프로젝트나 환경에서 사용자 정의된 부팅 메뉴가 필요할 수 있다.

  1. GRUB 테마 설정: /boot/grub/themes 디렉토리에 원하는 테마 파일을 추가하고, /etc/default/grub 파일에서 GRUB_THEME 변수를 설정한다.

bash GRUB_THEME="/boot/grub/themes/mytheme/theme.txt"

  1. 배경 이미지 설정: GRUB 배경 이미지를 설정하려면, /etc/default/grub 파일에 다음과 같이 추가한다.

bash GRUB_BACKGROUND="/boot/grub/mybackground.png"

  1. 설정 적용: 변경 사항을 저장하고 update-grub 명령을 실행하여 설정을 적용한다.

이와 같은 과정을 통해, Preempt RT 커널을 시스템에서 기본적으로 부팅하도록 설정할 수 있으며, 부팅 시 필요한 문제 해결 및 커스터마이징 방법을 이해할 수 있다.