리눅스/공통

GNU GRUB2 설정

씨실과 날실 2021. 3. 3. 09:00

 

GNU GRUB2에 대하여

GRUB에 대해 알기 위해서는 먼저 부트로더가 무엇인가에 대해 알 필요가 있습니다. 부트로더는 시스템이 부팅될 때 처음으로 구동되는 프로그램으로, 운영체제가 본격적으로 구동되기 전 필요한 작업을 수행하고 운영체제 커널에서 필요한 제어 정보를 커널 프로그램에 전송하는 역할을 합니다.

 

GNU GRUB2는 GNU 프로젝트에서 개발하고 있는 멀티부트 지원 부트로더입니다. 이전에는 LILO를 많이 썼었지만 지금은 GRUB으로 통일되다시피 했습니다.

 

고급 시스템 관리자의 경우에는 GRUB와 관련된 다양한 명령을 이용해 시스템을 좀더 자유롭게 관리하겠지만 초심자의 경우라면 아래에 설명한 내용만으로도 충분할 것입니다.

 


GRUB 관련 파일과 디렉터리

/boot/grub/grub.cfg

GRUB의 메뉴 정보를 담고 있는 파일로, GRUB 이전 버전의 menu.lst 파일을 대체한 것입니다.

이 파일을 사용자가 직접 편집하여 적용할 수도 있지만 그러기 위해서는 적어도 셸스크립트 작성에 대한 고급 지식을 가지고 있어야 합니다.

모든 사용자가 그 정도의 지식을 가지지는 않고, 설사 지식을 가지고 있더라도 굉장히 번거로운 것은 사실이므로 일반적으로 작성 도구를 사용하게 됩니다.

 

위의 파일에 담긴 GRUB의 메뉴 정보 및 부팅 과정을 제어하기 위해서 일반적으로 /etc/default/grub 파일을 편집하고 update-grub 명령을 실행하여 해당 편집 내용을 grub.cfg에 적용합니다. 개발진은 이 방법을 권장합니다.

 

/etc/default/grub

사용자가 GRUB의 메뉴 정보 및 부팅 과정을 제어하기 위해 편집하는 파일입니다.

이 파일을 편집한다고 해서 GRUB에 바로 적용되는 것이 아니라 update-grub 명령을 실행하여 해당 편집 내용을 grub.cfg에 적용해야 합니다.

 

이 구성 파일은 이전에 사용된 GRUB 레거시 버전에서 사용되었던 menu.lst의 상단 섹션에 포함된 정보와 커널 라인 끝에 포함된 항목을 포함합니다.

 

우분투 등 리눅스를 설치하면 GRUB도 당연히 설치되며 grub 파일에 가장 일반적인 구성이 설정되어 있습니다. 그러나 해당 구성 내용이 설정가능한 모든 내용은 아니며 그외 다양한 구성을 추가로 설정할 수 있습니다.

설정 가능한 구성 항목은 다음과 같이 확인할 수 있습니다.

study@study-VirtualBox:~$ grep "export GRUB_DEFAULT" -A50 /usr/sbin/grub-mkconfig | grep GRUB_
export GRUB_DEFAULT \
  GRUB_HIDDEN_TIMEOUT \
  GRUB_HIDDEN_TIMEOUT_QUIET \
  GRUB_TIMEOUT \
  GRUB_TIMEOUT_STYLE \
  GRUB_DEFAULT_BUTTON \
  GRUB_HIDDEN_TIMEOUT_BUTTON \
  GRUB_TIMEOUT_BUTTON \
  GRUB_TIMEOUT_STYLE_BUTTON \
  GRUB_BUTTON_CMOS_ADDRESS \
  GRUB_BUTTON_CMOS_CLEAN \
  GRUB_DISTRIBUTOR \
  GRUB_CMDLINE_LINUX \
  GRUB_CMDLINE_LINUX_DEFAULT \
  GRUB_CMDLINE_XEN \
  GRUB_CMDLINE_XEN_DEFAULT \
  GRUB_CMDLINE_LINUX_XEN_REPLACE \
  GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT \
  GRUB_CMDLINE_NETBSD \
  GRUB_CMDLINE_NETBSD_DEFAULT \
  GRUB_CMDLINE_GNUMACH \
  GRUB_EARLY_INITRD_LINUX_CUSTOM \
  GRUB_EARLY_INITRD_LINUX_STOCK \
  GRUB_TERMINAL_INPUT \
  GRUB_TERMINAL_OUTPUT \
  GRUB_SERIAL_COMMAND \
  GRUB_DISABLE_LINUX_UUID \
  GRUB_DISABLE_LINUX_PARTUUID \
  GRUB_DISABLE_RECOVERY \
  GRUB_VIDEO_BACKEND \
  GRUB_GFXMODE \
  GRUB_BACKGROUND \
  GRUB_THEME \
  GRUB_GFXPAYLOAD_LINUX \
  GRUB_DISABLE_OS_PROBER \
  GRUB_INIT_TUNE \
  GRUB_SAVEDEFAULT \
  GRUB_ENABLE_CRYPTODISK \
  GRUB_BADRAM \
  GRUB_OS_PROBER_SKIP_LIST \
  GRUB_DISABLE_SUBMENU \
  GRUB_RECORDFAIL_TIMEOUT \
  GRUB_RECOVERY_TITLE \
  GRUB_FORCE_PARTUUID \
  GRUB_DISABLE_INITRD \
  GRUB_FLAVOUR_ORDER
study@study-VirtualBox:~$ 

 이 모든 구성 항목을 다루지는 못하고 일반적이고 대중적인 항목만을 뽑아 설명하도록 하겠습니다.

자세한 내용은 아래 링크를 참고하시기 바랍니다.

 

/etc/grub.d/

이 디렉터리에 포함된 스크립트들은 update-grub 명령이 실행될 때 읽혀지고 이렇게 읽힌 스크립트 안의 지침들은 grub.cfg에 통합되어 적용됩니다.

study@study-VirtualBox:/etc/grub.d$ ls -1
00_header
05_debian_theme
10_linux
10_linux_zfs
20_linux_xen
20_memtest86+
30_os-prober
30_uefi-firmware
40_custom
41_custom
README
study@study-VirtualBox:/etc/grub.d$

파일명의 앞부분에 붙은 숫자가 작을 수록 높은 우선순위를 가집니다. 

/etc/grub.d/에 포함되는 대표적인 스크립트

00_header

시스템 파일 위치, 비디오 설정 및 이전에 저장한 항목과 같은 환경 변수를 설정

/etc/default/grub에 저장된 기본 설정 로드

 

05_debian_theme

GRUB 2 배경 이미지, 텍스트 색상, 선택 강조 표시 및 테마 설정

 

10_linux

사용 중인 운영 체제의 루트 장치에서 커널을 식별하고 이러한 항목에 대한 메뉴 항목을 생성

 

20_memtest86+

/boot/memtest86+.bin을 검색하여 GRUB 2 부트 메뉴의 옵션으로 포함

 

30_os-prover

os-prover를 사용하여 Linux 및 기타 운영 체제를 검색하고 결과를 GRUB 2 메뉴에 배치

 

40_custom

명령 실행 시 grub.cfg에 삽입될 사용자 정의 메뉴 항목을 추가하기 위한 템플릿

 

 

 

  /etc/grub.d/에 포함된 스크립트 파일의 예약번호

  00_*: 00_header를 위해 예약된 번호
  10_*: 네이티브 부트 항목을 위해 예약된 번호
  20_*: 서드 파티 앱을 위해 예약된 번호

  30_*: 시스템 구동과 관련하여 예약된 번호

  40_*: 40번대 이후부터는 사용자 정의 작업에 예약된 번호

 


GNU GRUB 화면

 

Ubuntu 단일 OS 메인 화면

 

Ubuntu - Windows 멀티 OS 메인 화면

 

Ubuntu용 고급 설정 하위 메뉴 화면

 


/etc/default/grub 파일 예시

study@study-VirtualBox:~$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

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 BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
study@study-VirtualBox:~$ 

 

편집 후 할 일

/etc/default/grub 파일을 변경하는 경우 나중에 'update-grub'을 실행하여 /boot/grub/grub.cfg를 업데이트해주어야 수정 내용이 정상적으로 적용됩니다.

study@study-VirtualBox:~$ sudo update-grub
[sudo] study의 암호: 
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
grub 설정 파일을 형성합니다 ...
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.8.0-44-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.8.0-44-generic
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.8.0-43-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.8.0-43-generic
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.4.0-52-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.4.0-52-generic
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.4.0-48-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.4.0-48-generic
Adding boot menu entry for UEFI Firmware Settings
완료되었습니다
study@study-VirtualBox:~$ 

위 내용은 단일 OS(ex : Ubuntu)에서 'update-grub'을 실행한 경우입니다.

 

study@study-VirtualBox:/etc/default$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
grub 설정 파일을 형성합니다 ...
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.8.0-44-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.8.0-44-generic
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.4.0-52-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.4.0-52-generic
리눅스 이미지를 찾았습니다: /boot/vmlinuz-5.4.0-42-generic
initrd 이미지를 찾았습니다: /boot/initrd.img-5.4.0-42-generic
Windows Boot Manager에서 /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi를 찾았습니다
Adding boot menu entry for UEFI Firmware Settings
완료되었습니다
study@study-VirtualBox:/etc/default$ 

위 내용은 멀티 OS(ex : Ubuntu - Windows)에서 'update-grub'을 실행한 경우입니다.

 


/etc/default/grub 항목 편집

GRUB_DEFAULT=n/xxxx/saved

이 항목은 기본 설정 메뉴를 지정하는 메뉴입니다. 즉, 사용자가 따로 특정 메뉴를 선택하지 않는 한 지정 시간 후에 자동으로 실행되는 메뉴를 설정하는 항목입니다.

 

GRUB_DEFAULT=n

이 항목의 입력값은 0과 양의 정수와 같은 숫자와 전체 메뉴 할목 인용문 또는 saved로 설정 가능합니다.

 

Grub 2에 설정되는 메뉴 항목들은 /boot/grub/grub.cfg의 'menuenv'로 지정됩니다.

grub.cfg의 첫 번째 'menuenv'는 GRUB_DEFAULT= 항목에서 숫자 0으로 지정되며 두 번째 'menuenv'는 숫자 1로 지정할 수 있습니다. 즉 Grub의 메뉴 항목들은 위에서 부터 차례대로 0, 1, 2, 3 이렇게 초항이 0이고 공차가 1인 등차수열의 숫자로 지정됩니다.

 

GRUB 하위 메뉴 지정

GRUB 1.99부터는 하위메뉴 구조를 도입하게 되었습니다. 예를 들어 사용자가 세 번째 주메뉴의 첫 번째 하위 메뉴를 기본 설정값으로 지정하고자 한다면 "2>0"으로 지정하면 됩니다.

이때 반드시 따옴표로 감싸주어야 합니다.

 

하위 메뉴를 지정해준다고 하더라도 GRUB 메뉴 화면이 바로 하위 메뉴 화면으로 진입하지는 않습니다.

만약 "2>2"로 지정한다면 GRUB 메뉴 화면에서 세 번째 주메뉴가 선택된 상태로 표시되며 그 상태에서 엔터키를 눌러 다음으로 넘어가면 하위 메뉴에서 세번째 메뉴 항목이 선택되어 있는 상태로 표시됩니다.

 

 

GRUB_DEFAULT="xxxx"

따옴표를 포함한 정확한 메뉴 항목으로도 지정할 수 있습니다.

 

GRUB_DEFAULT=saved

위와 같이 지정하면 "grub-reboot" 또는 "grub-set-default" 명령을 사용하여 향후 부팅에 대한 기본 OS를 설정할 수 있습니다.

 

차후의 기본 부팅 OS를 설정하려면 아래의 명령어를 실행하여 지정해줍니다.

$ sudo grub-set-default N
ex) $ sudo grub-set-default 3

$ sudo grub-set-default "정확한 메뉴 문자열"
ex) $ sudo grub-set-default "Ubuntu, Linux 2.6.32-15-generic"

위 명령에서 N은 Grub 부팅 메뉴 항목의 지정 숫자입니다.

 

각 메뉴의 정확한 메뉴명과 순서는 아래 명령을 실행하여 확인할 수 있습니다.

$ grep menuentry /boot/grub/grub.cfg

 

study@study-VirtualBox:~$ grep menuentry /boot/grub/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-61dcad89-696f-4823-a41f-f38ab0d82100' {
submenu 'Ubuntu용 고급 설정' $menuentry_id_option 'gnulinux-advanced-61dcad89-696f-4823-a41f-f38ab0d82100' {
	menuentry '리눅스 Ubuntu가 있는, 5.8.0-44-generic입니다' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-44-generic-advanced-61dcad89-696f-4823-a41f-f38ab0d82100' {
	menuentry 'Ubuntu, with Linux 5.8.0-44-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-44-generic-recovery-61dcad89-696f-4823-a41f-f38ab0d82100' {
	menuentry '리눅스 Ubuntu가 있는, 5.8.0-43-generic입니다' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-43-generic-advanced-61dcad89-696f-4823-a41f-f38ab0d82100' {
	menuentry 'Ubuntu, with Linux 5.8.0-43-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-43-generic-recovery-61dcad89-696f-4823-a41f-f38ab0d82100' {
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
study@study-VirtualBox:~$

menuentry 옆의 따옴표 안의 내용이 메뉴의 정확한 이름입니다.

 

grub-reboot 명령은 다음 부팅에 대해서만 기본 부팅 항목을 설정하며 설명 내용은 위와 같습니다.

 

GRUB_SAVEDEFAULT=true

위 문구를 추가하면 마지막으로 사용한 메뉴 항목이 차후 부팅 메뉴로 설정됩니다.

이 구성은 기본 OS를 설정하기 위해 명령을 실행할 필요가 없습니다.
GRUB 2 메뉴에서 메뉴 항목을 수동으로 선택할 때마다 해당 항목이 차후 부팅 시의 기본 OS가 됩니다.
/boot 디렉토리가 LVM 파티션 또는 RAID에 있는 경우 이 구성은 작동하지 않습니다..
이 구성은 위에서 설명한  GRUB_DEFAULT=saved도 같이 설정되어야 합니다.

 

GRUB_HIDDEN_TIMEOUT=n

설정된 시간 안에 사용자가 키를 누르지 않으면 메뉴가 나타나지 않습니다.

 

설정값이 0인 경우

시스템에 설치되어 있는 OS가 하나만 존재하는 경우 Grub 부팅 메뉴는 표시되지 않으며 시스템은 바로 기본 OS로 부팅됩니다.
시스템 OS가 하나만 설치되 있음에도 불구하고 Grub 부팅 메뉴를 표시하려면 이 구성줄의 시작 부분에 # 기호를 붙여 주석처리하고 GRUB_TIMEOUT= 구성의 설정값을 양의 정수(1 이상의 자연수)로 설정해주어야 합니다.
설정값이 0으로 설정되어 있음에도 불구하고 부팅 메뉴를 표시하려면 시스템이 부팅되자마자 Shift키를 누르고 있으면 됩니다.  GRUB 2서 부팅 과정 중에 중에 SHIFT 키가 눌린 것을 확인하면 메뉴가 표시된다.

 

설정값이 N(양의 정수)인 경우

부팅 과정이 일시 중단되고 지정한 수의 초 시간동안 빈화면 또는 지정된 스플래시 이미지가 표시됩니다.

지정된 시간이 지나면 부팅 과정이 진행되며 이때 메뉴는 표시되지 않습니다.

지정된 시간 내에 아무 키나 누르면 메뉴가 표시됩니다.

이때 메뉴는 GRUB_TIMEOUT= 구성에서 설정한 시간 동안 메뉴가 표시됩니다.

 

GRUB_HIDDEN_TIMEOUT_QUIET=true/false

GRUB_HIDDEN_TIMOUT 기능을 사용할 때 빈 화면에 카운트다운 타이머를 표시할지 결정합니다.

설정값을 true로 설정하면 카운터가 표시되지 않습니다.

설정값을 false로 설정하면 GRUB_HIDDEN_TIMEOUT 값 기간 동안 빈 화면에 표시됩니다.


 GRUB_TIMEOUT_STYLE=menu/hidden

이 옵션을 설정하지 않거나 'menu'로 설정하면 GRUB에서 메뉴를 표시한 다음 기본 항목을 부팅하기 전에 ‘GRUB_TIMEOUT’에 설정된 시간 초과가 만료 될 때까지 기다립니다.

키를 누르면 타임 아웃이 중단됩니다.

 

이 옵션이 ‘countdown’또는‘hidden’으로 설정되어 있으면 메뉴를 표시하기 전에 GRUB는 ‘GRUB_TIMEOUT’에 설정된 타임 아웃이 만료될 때까지 기다립니다.

이 시간 내에 ESC를 누르면 메뉴가 표시되고 입력을 기다립니다.

메뉴 항목과 관련된 핫키를 누르면 관련 메뉴 항목이 즉시 부팅됩니다.

이러한 상황이 발생하기 전에 시간 초과가 만료되면 기본 항목이 부팅됩니다.

'카운트 다운'의 경우 남은 시간을 한 줄로 표시합니다. 


GRUB_TIMEOUT=n

OS가 부팅되기 전 메뉴가 표시되는 시간(초)을 설정합니다.
이 구성은 GRUB_HIDDEN_TIMOUT 구성이 만료될 때 시작됩니다.
이 값을 -1로 설정하면 사용자가 선택할 때까지 메뉴가 표시됩니다.
단일 OS 시스템에서는 기본적으로 이 설정이 사용되지 않고 메뉴가 표시되지 않습니다.

부팅때마다 항상 메뉴를 표시하려면 아래와 같이 구성해주어야 합니다.

# GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=1 이상의 정수

 

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

메뉴 항목에서 설명이 포함된 이름을 검색합니다. (Ubuntu, Xubuntu, Debian 등)

더 많은 정보를 제공하는 메뉴 항목 제목을 생성하는 데 사용됩니다.

 

GRUB_CMDLINE_LINUX_DEFAULT="splash/quiet splash/..."

이 줄은 모든 항목을  'linux' 줄(GRUB 레거시 행의 "kernel" 행)의 끝 부분에 가져 옵니다. 

이때 항목은 일반 모드 끝에만 추가됩니다.
부팅 프로세스를 텍스트로 확인하시려면  "quiet splash"를 제거하십시오.

축약된 텍스트 출력과 함께 Grub 이미지를 보시려면 "splash"를 사용하십시오.

 

GRUB_CMDLINE_LINUX=""

일반모드와 복구 모드 모두에 설정값을 리눅스 커맨드 라인 끝에 덧붙입니다.

이것은 특정 옵션의 인수를 커널에 전달할 때 사용됩니다.

 

#GRUB_TERMINAL=console

그래픽 터미널을 비활성화하려면 주석 처리(#)를 제거하십시오.

GRUB 2 메뉴가 너무 크거나 읽을 수 없는 경우 도움이 될 수 있습니다.

GRUB_HIDDEN_TIMEOUT 기능을 사용할 때도 도움이 될 수 있습니다. 

 

#GRUB_DISABLE_LINUX_UUID="true"

GRUB가 "root=UUID=xxx" 매개 변수를 Linux에 전달하지 않도록하려면 주석 처리를 제거하십시오.
검색 라인은 여전히 UUID를 사용합니다.

이 옵션이 활성화되면 Linux 라인은 /dev/sdXY 규칙을 사용합니다. 

 

#GRUB_GFXMODE=640x480

GRUB 2는 사용자에게 최상의 화면 결과를 보여줄 것이라 여기는 메뉴 해상도를 자동으로 결정해 적용합니다.

이 줄의 주석 처리(#)를 제거만 한다면 해상도가 640x480으로 설정됩니다.

주석처리 제거와 함께 설정값을 다른 GRUB 호환 설정 해상도로 변경할 수도 있습니다.

특정 해상도로 설정할 때 색상 비트 심도를 추가하여 지정할 수도 있습니다.

예를 들면 1280x1024x24 또는 640x480x32입니다.

이 설정은 부팅되는 운영 체제의 해상도가 아닌 부팅 메뉴 디스플레이에만 적용됩니다.

 

사용자는 여러 해상도를 추가 할 수도 있습니다. GRUB 2가 첫 번째 항목을 사용할 수없는 경우 다음 설정을 시도합니다. 설정은 쉼표로 구분됩니다. 

예 : 1280x1024x16,800x600x24,640x480.

 

당연한 말이지만 스플래시 이미지를 사용하는 경우 최상의 결과를 얻으려면 해상도 설정과 스플래시 이미지 크기가 호환되어야합니다.

update-grub을 실행할 때 "not found" 메시지를 표시하는 경우 색상 비트 심도를 추가하거나 변경해보십시오.

GRUB 2에서 사용할 수 있는 해상도는 GRUB 2 명령 줄에 videoinfo를 입력하여 표시할 수 있습니다.

기본 GRUB 2 메뉴 화면이 표시 될 때 "c"를 입력하면 명령 줄에 액세스 할 수 있습니다.

이 행이 주석 처리(#)되거나 해상도를 사용할 수없는 경우 GRUB 2는 /etc/grub.d/00_header에 의해 결정된 기본 설정을 사용합니다.
GRUB 1.99 (Natty)에서는 해상도가 지정되지 않은 경우 GRUB에서 '최적'해상도를 선택합니다. 

 

#GRUB_DISABLE_RECOVERY=true

  "Recovery" 모드 커널 옵션이 메뉴에 나타나지 않도록하려면 주석을 제거하십시오).

하나의 커널에 대해서만 "복구"옵션을 원하면 /etc/grub/40_custom에 특수 항목을 만드십시오. 

 

#GRUB_INIT_TUNE="480 440 1"

주석 기호(#)를 제거하면 GRUB 2가 Grub 2 메뉴 표시 직전에 단일 신호음을 재생할 수 있습니다.

피치/지속 시간 값을 확장하여 더 복잡한 곡을 작곡하여 재생할 수 있습니다.

형식 : tempo [pitch1 duration1] [pitch2 duration2] ...

템포는 한 번 설정되면 모든 지속 시간 설정에 적용됩니다.

소리의 지속시간은 60/tempo의 결과입니다. tempo가 60이고 duration이 1이면 1초의 신호음이 울립니다.

tempo가 480이고 duration 이 1이면 0.125 초의 신호음이 울립니다.
긴 곡을 만들면 메뉴 표시가 지연됩니다.

 

온라인 설명서는 터미널에 info grub --index-search play를 입력하여 사용할 수 있습니다.

 

GRUB_BACKGROUND=

'gfxterm'그래픽 터미널에 사용할 배경 이미지를 설정합니다. 

배경 이미지를 설정하고자 하는 경우 이미지의 전체 경로를 적어줍니다. 

이 옵션의 값은 부팅시 GRUB에서 읽을 수있는 이미지 파일이어야 합니다.

GRUB에서 지원하는 이미지 파일 확장자 형식은 .png, .tga, .jpg 또는 .jpeg입니다.. 

화면에 맞게 필요한 경우 이미지 크기가 조정됩니다. 

자세한 내용 및 기타 옵션은 위의 스플래시 이미지 구성을 참조하시면 됩니다.

 

GRUB_DISABLE_OS_PROBER=true

일반적으로 grub-mkconfig는 설치된 경우 외부 os-prober 프로그램을 사용하여 동일한 시스템에 설치된 다른 운영 체제를 검색하고 적절한 메뉴 항목을 생성합니다. 

만약 설정값을 "true"로 지정하면 update-grub 명령을 실행하는 동안 Windows, Linux, OSX 및 Hurd를 포함한 운영 체제에 대한 다른 파티션의 os-prober 검사를 비활성화합니다. 즉, GRUB가 메뉴에 os-prober의 결과를 추가하는 것을 막는데 사용됩니다.