소개
이 실습에서는 Linux 환경에서 GRUB2 부트 메뉴를 사용자 정의하는 방법을 배웁니다. GRUB2(GRand Unified Bootloader) 는 컴퓨터가 시작될 때 실행되는 첫 번째 프로그램으로, Linux 커널을 로드하는 역할을 담당합니다. 기본 설정 파일인 /etc/default/grub을 직접 다루면서 필요에 따라 부팅 환경을 변경하는 실무 경험을 쌓게 됩니다.
먼저 기본 GRUB2 설정에 접근하여 내용을 확인하는 것으로 시작합니다. 그다음 GRUB_TIMEOUT과 같은 주요 매개변수를 수정하여 부트 메뉴가 표시되는 시간을 변경하고, GRUB_DEFAULT를 설정하여 기본 부팅 항목을 지정해 봅니다. 실습의 마지막에는 grub2-mkconfig 명령으로 새로운 GRUB2 설정 파일을 생성하여 변경 사항을 적용하고, 사용자 정의 설정이 올바르게 구성되었는지 검증하는 방법을 배웁니다.
참고: 본 실습은 일회성으로 제공되는 LabEx 가상 환경에서 진행되므로, 실제 시스템 재부팅을 통해 부트 메뉴의 변화를 직접 확인할 수는 없습니다. 대신 생성된 GRUB2 파일을 검토하여 설정 변경 사항을 확인하는 방법을 배우게 됩니다. 이는 운영 중인 시스템을 재부팅하기 전에 설정을 검증해야 하는 시스템 관리자에게 매우 중요한 기술입니다.
GRUB2 기본 설정 파일 /etc/default/grub 접근하기
이 단계에서는 GRUB2 의 메인 설정 파일에 접근하고 내용을 확인하는 방법을 배웁니다. GRUB2(GRand Unified Bootloader, 버전 2) 는 대부분의 최신 Linux 배포판에서 사용하는 기본 부트로더입니다. 컴퓨터를 켤 때 가장 먼저 실행되는 프로그램이며, Linux 커널을 메모리에 로드한 후 운영체제를 시작하는 역할을 합니다.
GRUB2 의 동작을 사용자 정의하기 위해 작업할 기본 설정 파일은 /etc/default/grub에 위치합니다. 이 파일은 부트 메뉴 대기 시간, 기본 부팅 운영체제, 추가 커널 매개변수 등을 제어하는 키 - 값 (key-value) 쌍을 포함하고 있습니다.
변경을 시작하기 전에 현재 설정을 확인하는 것이 필수적입니다. /etc/default/grub은 root 사용자가 소유한 시스템 파일이므로, 접근하려면 sudo 명령을 사용해야 합니다. 터미널에 내용을 출력하기 위해 cat 명령을 사용하겠습니다.
다음 명령을 실행하여 GRUB2 기본 설정 파일의 내용을 확인하십시오.
sudo cat /etc/default/grub
다음과 유사한 출력이 나타납니다. 실제 값은 시스템 설정에 따라 약간 다를 수 있습니다.
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 no_timer_check iommu=pt crash_kexec_post_notifiers=1 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
이 파일에서 중요한 두 가지 매개변수를 간략히 살펴보겠습니다.
GRUB_TIMEOUT: 기본 항목으로 자동 부팅되기 전까지 GRUB2 메뉴가 표시되는 시간 (초 단위) 을 결정합니다.GRUB_DEFAULT: 기본적으로 부팅될 운영체제나 커널을 지정합니다.
다음 단계에서는 부트 메뉴의 동작을 변경하기 위해 이러한 매개변수를 수정하는 방법을 배웁니다.
GRUB_TIMEOUT 및 GRUB_DEFAULT 매개변수 수정하기
이 단계에서는 부트 메뉴의 동작을 변경하기 위해 GRUB2 설정 파일을 수정합니다. 구체적으로 메뉴 대기 시간을 늘리고 특정 부팅 항목을 기본값으로 설정해 보겠습니다. /etc/default/grub 파일을 편집하기 위해 간단하고 직관적인 명령줄 텍스트 편집기인 nano를 사용합니다. 이 파일은 시스템 파일이므로 편집 권한을 얻기 위해 반드시 sudo를 사용해야 합니다.
먼저 sudo 권한으로 nano를 사용하여 파일을 엽니다.
sudo nano /etc/default/grub
nano 편집기가 열리고 파일 내용이 표시됩니다. 이제 두 가지 사항을 변경합니다.
GRUB_TIMEOUT값 변경:GRUB_TIMEOUT으로 시작하는 줄을 찾으십시오. 아마도1로 설정되어 있을 것입니다. 화살표 키를 사용하여 커서를 해당 줄로 이동하고 값을1에서15로 변경합니다. 이렇게 하면 GRUB2 메뉴가 자동으로 부팅되기 전까지 15 초 동안 대기하게 됩니다.수정 후 해당 줄은 다음과 같아야 합니다.
GRUB_TIMEOUT=15GRUB_DEFAULT매개변수 변경:GRUB_DEFAULT로 시작하는 줄을 찾으십시오. 값이saved로 되어 있을 수 있습니다. 이 값을0으로 변경합니다.GRUB_DEFAULT=0으로 설정하면 GRUB2 가 메뉴 목록의 첫 번째 항목을 자동으로 부팅하도록 지시합니다 (목록은 0 부터 시작하므로0이 첫 번째 항목입니다).수정 후 해당 줄은 다음과 같아야 합니다.
GRUB_DEFAULT=0
변경을 완료했다면 파일을 저장하고 nano를 종료해야 합니다.
Ctrl + O를 눌러 변경 사항을 저장합니다 ("Write Out" 명령).- 저장할 파일 이름을 확인하는 메시지가 나타나면
Enter를 누릅니다. Ctrl + X를 눌러nano편집기를 종료하고 쉘 프롬프트로 돌아옵니다.
이제 GRUB2 기본 설정을 성공적으로 수정했습니다. 다음 단계에서는 이러한 변경 사항을 적용해 보겠습니다.
GRUB2 설정 변경 사항 적용 및 확인하기
이 단계에서는 이전 단계에서 수정한 설정 변경 사항을 적용하고, GRUB2 가 올바르게 구성되었는지 확인하는 방법을 배웁니다. grub2-mkconfig 명령을 사용하여 수정된 내용을 바탕으로 새로운 설정 파일을 생성합니다.
새로운 GRUB2 설정 생성
/etc/default/grub 파일을 수정했으므로, 이제 새로운 GRUB2 설정 파일을 생성하여 변경 사항을 적용해야 합니다. grub2-mkconfig 명령은 /etc/default/grub의 설정과 /etc/grub.d/에 있는 스크립트를 읽어 최종 GRUB2 설정을 만듭니다.
다음 명령을 실행하여 새로운 설정을 생성하십시오.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
다음과 유사한 출력이 나타나야 합니다.
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
이 명령은 시스템에서 사용 가능한 커널을 스캔하고, 사용자의 구성 설정을 읽어 최종적인 GRUB2 메뉴 설정 파일을 생성합니다.
설정 변경 사항 확인
변경 사항이 GRUB2 설정에 제대로 반영되었는지 확인해 보겠습니다. 먼저 /etc/default/grub 파일에 수정된 설정이 있는지 확인합니다.
sudo grep -E "(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub
수정한 값이 포함된 출력이 나타나야 합니다.
GRUB_TIMEOUT=15
GRUB_DEFAULT=0
다음으로, 이러한 설정이 실제로 생성된 GRUB2 설정 파일에도 적용되었는지 확인합니다.
sudo grep -E "(timeout|default)" /boot/grub2/grub.cfg | head -5
이 명령을 통해 실제 GRUB2 설정 파일 내에서 해당 설정들이 어떻게 나타나는지 확인할 수 있습니다.
설정 백업 생성
중요한 설정 파일을 변경하기 전이나 후에 백업을 만들어 두는 것은 항상 좋은 습관입니다.
sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup
이렇게 하면 필요한 경우 복구할 수 있는 백업 복사본이 생성됩니다.
GRUB2 설정 문제 해결 및 검증
마지막 단계에서는 GRUB2 설정에 대한 필수적인 문제 해결 기법을 배우고 변경 사항을 검증하는 방법을 이해합니다. 이러한 기술은 운영 시스템을 재부팅하기 전에 GRUB2 수정 사항이 올바르게 작동하는지 확인해야 하는 시스템 관리자에게 매우 중요합니다.
GRUB2 설정 구문 확인
내장된 구문 체크 도구를 사용하여 GRUB2 설정에 오류가 없는지 확인합니다.
sudo grub2-script-check /boot/grub2/grub.cfg
오류가 없다면 이 명령은 아무런 메시지 없이 종료됩니다. 구문 오류가 있는 경우 줄 번호와 함께 표시되므로 문제를 식별하고 수정하는 데 도움이 됩니다.
GRUB2 디렉토리 구조 이해
GRUB2 설정 디렉토리 구조를 탐색하여 작동 방식을 이해해 봅니다. 이 디렉토리에 접근하려면 root 권한이 필요합니다.
sudo ls -la /etc/grub.d/
여기에는 GRUB2 메뉴의 각 부분을 생성하는 스크립트들이 표시됩니다. 각 스크립트 앞의 숫자는 실행 순서를 결정합니다. 다음과 같은 다양한 스크립트를 볼 수 있습니다.
00_header: 기본 GRUB2 설정을 지정합니다.00_tuned: Tuned 관련 설정을 처리합니다.01_users: 사용자 설정을 처리합니다.10_linux: Linux 커널을 찾아 추가합니다.20_linux_xen: Xen 하이퍼바이저 지원을 처리합니다.30_os-prober: 다른 운영체제를 검색합니다.40_custom: 사용자 정의 메뉴 항목을 포함합니다.
실제 스크립트 목록은 시스템 설정 및 설치된 패키지에 따라 다를 수 있습니다.
사용 가능한 부팅 항목 확인
생성된 설정 파일에 어떤 부팅 항목이 있는지 확인해 보겠습니다.
sudo grep "menuentry" /boot/grub2/grub.cfg | head -10
이 명령은 메뉴 항목 참조와 실제 메뉴 항목을 보여줍니다. 출력에는 설정 변수 (예: menuentry_id_option) 와 실제 부트 메뉴 항목이 모두 포함될 수 있습니다. 완전한 메뉴 항목 정의가 포함된 줄을 찾으십시오.
대기 시간 및 기본 설정 확인
대기 시간과 기본 설정이 올바르게 구성되었는지 다시 한번 확인합니다.
sudo grep -E "set timeout|set default" /boot/grub2/grub.cfg
설정 파일 내에 여러 개의 timeout 및 default 설정이 보일 수 있습니다. 이는 GRUB2 가 시나리오별로 다른 대기 시간 값을 사용하기 때문에 정상적인 현상입니다.
- 메인 대기 시간 (설정한 대로 보통 15 초)
- 특수 상황을 위한 조건부 대기 시간
- 다양한 대기 시간 스타일 (메뉴 표시, 숨김 등)
확인해야 할 핵심 설정은 다음과 같습니다.
set default="0"- 첫 번째 메뉴 항목을 기본값으로 설정set timeout=15- 메인 메뉴 대기 시간을 15 초로 설정
GRUB2 복구에 대하여
부팅 문제를 해결하려면 GRUB2 복구 방법을 이해하는 것이 필수적입니다. 비상 상황 발생 시 다음과 같은 조치를 취할 수 있습니다.
- GRUB2 명령줄 접근: GRUB2 메뉴에서
c를 눌러 명령줄 모드로 진입합니다. - 부팅 항목 편집: 부팅 전
e를 눌러 부팅 항목을 임시로 수정합니다. - 복구 모드 (Rescue Mode) 사용: GRUB2 가 설정을 찾을 수 없는 경우 복구 모드로 전환됩니다.
일반적인 복구 명령은 다음과 같습니다.
ls: 사용 가능한 파티션 및 파일 목록 표시set root=(hd0,1): 루트 파티션 설정linux /boot/vmlinuz root=/dev/sda1: 커널 로드boot: 부팅 프로세스 시작
최종 설정 검증
전체 GRUB2 설정의 최종 확인을 수행합니다.
sudo cat /etc/default/grub | grep -E "(TIMEOUT|DEFAULT)"
이를 통해 기본 설정이 소스 설정 파일에 올바르게 저장되었음을 확정합니다.
학습 성과:
- GRUB2 대기 시간 및 기본 부팅 설정 수정
grub2-mkconfig를 사용한 설정 변경 사항 적용- GRUB2 설정 검증 및 문제 해결 방법 습득
- 중요 부팅 파일에 대한 백업 절차 구현
- GRUB2 디렉토리 구조 및 복구 옵션 이해
- 시스템 재부팅 전 설정의 유효성을 검사하는 기술 습득
이제 여러분의 GRUB2 설정은 15 초의 대기 시간과 첫 번째 메뉴 항목을 기본값으로 하도록 사용자 정의되었습니다. 실제 운영 환경이라면 이러한 변경 사항은 다음 시스템 재부팅 시 적용되어 보다 사용자 친화적인 부팅 경험을 제공할 것입니다.
요약
이 종합 실습을 통해 GRUB2 부트로더 사용자 정의 및 문제 해결을 위한 필수 기술을 직접 체험했습니다. 기본 GRUB2 설정을 검토하는 것으로 시작하여, GRUB_TIMEOUT 및 GRUB_DEFAULT와 같은 주요 매개변수를 수정하여 부트 메뉴의 동작을 변경해 보았습니다. 또한 grub2-mkconfig 명령을 사용하여 이러한 변경 사항을 적용하고, 수정 사항이 제대로 구현되었는지 확인하는 방법을 배웠습니다.
이번 실습을 통해 습득한 핵심 기술은 GRUB2 설정 구조 이해, /etc/default/grub 파일의 안전한 수정, 설정 변경 사항의 올바른 적용, 그리고 적절한 검증 및 백업 절차의 구현입니다. 또한 시스템 관리자에게 매우 중요한 구문 체크, 설정 검증, GRUB2 복구 옵션 이해와 같은 필수 문제 해결 기법도 익혔습니다.
본 실습은 실제 환경에서 시스템 관리자에게 필요한 실무 능력, 특히 운영 시스템에 적용하기 전에 GRUB2 설정을 검증하는 능력을 강조했습니다. 구문 검증을 위한 grub2-script-check 명령과 생성된 설정 파일에 변경 사항이 제대로 반영되었는지 확인하기 위한 다양한 grep 명령의 활용법을 연습했습니다.
이러한 기술을 바탕으로 기업용 Linux 환경에서 부팅 설정 시나리오를 자신 있게 처리하고 부팅 관련 문제를 효과적으로 해결할 수 있는 준비를 갖추게 되었습니다. 특히 여러분이 연습한 검증 기법은 운영 시스템을 재부팅하기 전에 GRUB2 설정의 정확성을 보장하는 데 매우 가치 있는 자산이 될 것입니다.



