Linux 에서 GRUB 설정이 적용되었는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 GRUB 부트로더 (bootloader) 설정에 변경 사항이 성공적으로 적용되었는지 확인하는 방법을 배우겠습니다. /etc/default/grub에 위치한 주요 GRUB 설정 파일을 탐색하여 설정을 이해할 것입니다.

그 다음, 기본 파일의 설정이 어떻게 변환되는지 확인하기 위해 /boot/grub/grub.cfg에 있는 생성된 GRUB 메뉴 설정 파일을 검토할 것입니다. 마지막으로, dmesg 명령을 사용하여 커널 부팅 파라미터 (kernel boot parameters) 를 검사하여 GRUB 설정이 실행 중인 시스템에 반영되었는지 확인합니다.

cat /etc/default/grub으로 GRUB 설정 확인

이 단계에서는 GRUB 설정 파일을 탐색합니다. GRUB (GRand Unified Bootloader) 는 Ubuntu 를 포함한 많은 Linux 배포판의 부트로더입니다. 컴퓨터를 시작할 때 실행되는 첫 번째 소프트웨어이며 운영 체제 커널을 로드하는 역할을 합니다.

GRUB 의 주요 설정 파일은 /etc/default/grub에 위치해 있습니다. 이 파일에는 부팅할 기본 운영 체제, 부팅 전 타임아웃, 커널 파라미터 등 GRUB 의 동작 방식을 결정하는 설정이 포함되어 있습니다.

cat 명령을 사용하여 이 파일의 내용을 살펴보겠습니다. cat 명령은 파일의 내용을 표시하는 데 사용됩니다.

아직 열려 있지 않다면 터미널을 엽니다. 데스크탑 왼쪽에서 Xfce 터미널 아이콘을 찾을 수 있습니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

cat /etc/default/grub

터미널에 /etc/default/grub 파일의 내용이 출력됩니다. 다음과 유사한 형태일 것입니다.

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

## Uncomment to enable graphical terminal (grub-gfxpayload is needed)
#GRUB_TERMINAL=gfxterm

## The resolution used on graphical terminal
## settings below may not work on your chipset but may be useful for EFI panel
## sizes
#GRUB_GFXMODE=640x480

## Uncomment to disable graphical terminal on boot problems
#GRUB_TERMINAL_INPUT=console

## Uncomment to disable menu scrolling
#GRUB_MENU_SCROLL_STYLE=menu

## Uncomment to enable hidden menu by default
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

## Uncomment to enable BadRAM filtering, modify to suit your needs
## This works only with Linux 2.6.25 or later using pci_filter_enable=1
## and needs BadRAM filtering support in the kernel
#GRUB_BADRAM="0x0123456789abcdef,0xghijkllmnopqrstuvwxyz"

## Uncomment to disable graphical boot (use text mode)
#GRUB_DISABLE_GRAPHICS_OVERRIDE=true

## If you want to enable the GRUB boot menu at boot time, uncomment the following line:
#GRUB_ENABLE_CRYPTODISK=y

## The following lines are for the default grub menu entry
#GRUB_INIT_TUNE="480 440 1"

## Uncomment to set a custom theme
#GRUB_THEME=/path/to/grub/theme

## Uncomment to enable os-prober, which detects other operating systems
#GRUB_DISABLE_OS_PROBER=false

이 파일에는 다양한 설정이 포함되어 있습니다. 예를 들어:

  • GRUB_DEFAULT: 부팅할 기본 메뉴 항목을 지정합니다. 0은 첫 번째 항목을 의미합니다.
  • GRUB_TIMEOUT: 기본 항목이 자동으로 부팅되기 전의 시간을 초 단위로 설정합니다.
  • GRUB_CMDLINE_LINUX_DEFAULT: 기본 항목을 부팅할 때 커널에 전달되는 커널 파라미터를 포함합니다.

이 파일을 이해하는 것은 고급 Linux 구성 및 부팅 문제 해결에 매우 중요합니다.

다음 단계로 진행하려면 계속을 클릭하십시오.

cat /boot/grub/grub.cfg로 GRUB 메뉴 확인

이전 단계에서는 GRUB 의 기본 설정 파일인 /etc/default/grub을 살펴보았습니다. 그러나 이 파일은 부팅 과정에서 GRUB 에 의해 직접 사용되지 않습니다. 대신, /etc/default/grub의 설정은 실제 GRUB 메뉴 설정 파일인 /boot/grub/grub.cfg를 생성하는 데 사용됩니다.

/boot/grub/grub.cfg 파일은 update-grub 명령 (또는 grub-mkconfig) 에 의해 자동으로 생성됩니다. 이 파일에는 컴퓨터가 시작될 때 표시되는 메뉴 항목이 포함되어 있어, 부팅할 운영 체제 또는 커널을 선택할 수 있습니다.

중요: /boot/grub/grub.cfg 파일을 수동으로 편집해서는 절대 안 됩니다. 변경 사항은 다음에 update-grub이 실행될 때 덮어쓰여집니다. 항상 /etc/default/grub을 수정하고 sudo update-grub을 실행하여 변경 사항을 적용하십시오.

cat 명령을 사용하여 /boot/grub/grub.cfg 파일의 내용을 살펴보겠습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

cat /boot/grub/grub.cfg

/etc/default/grub에 비해 훨씬 더 길고 복잡한 출력을 볼 수 있습니다. 이 파일에는 커널 경로, initrd 경로 및 커널 명령줄 파라미터를 포함하여 각 부팅 메뉴 항목에 대한 자세한 설정이 포함되어 있습니다.

#
## DO NOT EDIT THIS FILE
#
## It is automatically generated by grub-mkconfig using templates
## from /etc/grub.d and settings from /etc/default/grub
#

#### BEGIN /etc/grub.d/00_header ###
...
#### END /etc/grub.d/00_header ###

#### BEGIN /etc/grub.d/05_debian_theme ###
...
#### END /etc/grub.d/05_debian_theme ###

#### BEGIN /etc/grub.d/10_linux ###
...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
 recordfail
 ...
 linux /boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro  quiet splash $vt_handoff
 initrd /boot/initrd.img-*-generic
}
...
#### END /etc/grub.d/10_linux ###

#### BEGIN /etc/grub.d/20_linux_xen ###
...
#### END /etc/grub.d/20_linux_xen ###

#### BEGIN /etc/grub.d/30_os-prober ###
...
#### END /etc/grub.d/30_os-prober ###

#### BEGIN /etc/grub.d/30_uefi-firmware ###
...
#### END /etc/grub.d/30_uefi-firmware ###

#### BEGIN /etc/grub.d/40_custom ###
...
#### END /etc/grub.d/40_custom ###

#### BEGIN /etc/grub.d/41_custom ###
...
#### END /etc/grub.d/41_custom ###

출력을 스크롤하여 다양한 메뉴 항목과 해당 구성을 볼 수 있습니다. menuentry로 시작하는 줄을 찾으십시오. 이러한 줄은 GRUB 부팅 메뉴에 나타나는 옵션을 정의합니다.

이 파일은 복잡하며 지금 당장 모든 줄을 이해할 필요는 없습니다. 핵심은 /boot/grub/grub.cfg가 GRUB 가 실제로 사용하는 파일이며 /etc/default/grub/etc/grub.d의 스크립트에서 생성된다는 것입니다.

계속하려면 계속을 클릭하십시오.

dmesg 로 GRUB 매개변수 검사

이전 단계에서는 GRUB 설정 파일 /etc/default/grub/boot/grub/grub.cfg를 검토했습니다. /etc/default/grub에는 커널 파라미터를 지정하는 GRUB_CMDLINE_LINUX_DEFAULT 변수가 포함되어 있음을 확인했습니다. 이러한 파라미터는 Linux 커널이 부팅될 때 전달됩니다.

dmesg 명령은 커널 링 버퍼 메시지를 표시하는 데 사용됩니다. 이러한 메시지에는 사용된 커널 명령줄 파라미터를 포함하여 시스템의 부팅 프로세스에 대한 정보가 포함되어 있습니다.

dmesg를 사용하여 이 가상 머신의 부팅 중에 GRUB 에서 전달된 커널 명령줄 파라미터를 확인해 보겠습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

dmesg | grep "Kernel command line"

명령에 대한 설명은 다음과 같습니다.

  • dmesg: 커널 메시지를 표시합니다.
  • |: 파이프입니다. 왼쪽의 명령 (dmesg) 의 출력을 가져와 오른쪽의 명령 (grep) 에 입력으로 보냅니다.
  • grep "Kernel command line": 이 명령은 입력 ( dmesg에서) 에서 "Kernel command line"이라는 정확한 구문을 포함하는 줄을 검색합니다.

출력은 시스템을 부팅하는 데 사용된 커널 명령줄을 표시합니다. 다음과 유사한 형태일 것입니다.

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7

/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT 변수에서 정의되었을 가능성이 있는 quietsplash와 같은 파라미터를 볼 수 있습니다. 이러한 파라미터는 부팅 중에 커널의 동작 방식을 알려줍니다. 예를 들어, quiet는 부팅 중 출력량을 줄이고, splash는 그래픽 부팅 화면을 활성화합니다.

dmesg를 사용하여 커널 명령줄을 검사하는 것은 GRUB 구성 변경 사항이 올바르게 적용되고 있는지 확인하고 커널 파라미터와 관련된 부팅 문제를 해결하는 데 유용한 기술입니다.

이제 GRUB 구성을 성공적으로 탐색하고 dmesg를 사용하여 커널 파라미터를 확인했습니다.

이 랩을 완료하려면 계속을 클릭하십시오.

요약

이 랩에서는 Linux 에서 GRUB 설정이 적용되었는지 확인하는 방법을 배웠습니다. 먼저, cat 명령을 사용하여 기본 GRUB 설정 파일인 /etc/default/grub을 검토하여 내용과 부팅 과정에서 GRUB 의 동작을 제어하는 다양한 파라미터를 이해했습니다.

/etc/default/grub 파일을 봄으로써 기본 부팅 항목, 타임아웃 값 및 커널 명령줄 인자와 같은 설정에 대한 통찰력을 얻었습니다. 이 초기 단계는 적용을 확인하기 전에 의도된 GRUB 구성을 이해하는 데 중요합니다.