Linux 에서 커널 부팅 옵션이 활성화되었는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 특정 커널 부팅 옵션이 활성화되었는지 확인하는 방법을 배우게 됩니다. 이를 달성하기 위한 세 가지 주요 방법을 살펴볼 것입니다.

먼저, 현재 부팅 세션 동안 커널에 전달된 명령줄 인수를 보기 위해 cat /proc/cmdline 명령을 사용합니다. 다음으로, 이러한 부팅 옵션 중 일부가 어디에서 구성되는지 이해하기 위해 /etc/default/grub에 위치한 GRUB 구성 파일을 검토합니다. 마지막으로, dmesg 명령을 사용하여 부팅 로그를 검사하여 커널이 부팅 옵션을 어떻게 해석하고 적용했는지 확인합니다. 이러한 단계를 완료함으로써 Linux 시스템의 부팅 프로세스를 진단하고 이해하는 데 필요한 실질적인 기술을 습득하게 됩니다.

cat /proc/cmdline으로 부팅 옵션 확인

이 단계에서는 Linux 시스템이 시작될 때 사용된 부팅 옵션을 확인하는 방법을 살펴봅니다. 이 정보는 /proc 파일 시스템 내의 특수 파일에 저장됩니다.

/proc 파일 시스템은 프로세스 및 기타 시스템 정보를 제공하는 Linux 의 가상 파일 시스템입니다. 디스크에 실제 파일을 포함하지 않고 커널의 데이터 구조를 보여주는 창을 제공합니다.

우리가 관심 있는 파일은 /proc/cmdline입니다. 이 파일에는 부팅 시 커널에 전달된 명령줄 인수가 포함되어 있습니다. 이러한 인수는 커널의 동작과 감지하는 하드웨어에 영향을 줄 수 있습니다.

이 파일의 내용을 보려면 cat 명령을 사용합니다. cat 명령은 파일의 내용을 표시하는 데 사용되는 간단한 유틸리티입니다.

터미널이 아직 열려 있지 않다면 엽니다. 데스크탑 왼쪽의 Xfce 터미널 아이콘을 클릭하여 열 수 있습니다.

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

cat /proc/cmdline

다음과 유사한 출력을 볼 수 있습니다.

BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7

정확한 출력은 시스템 구성에 따라 다르지만, 부팅되는 커널 이미지 (BOOT_IMAGE), 루트 파일 시스템 위치 (root=), 그리고 ro (초기 읽기 전용 파일 시스템), quiet, splash와 같은 다른 옵션을 보여줍니다.

이러한 부팅 옵션을 이해하는 것은 부팅 문제를 해결하거나 특정 커널 동작을 구성하는 데 도움이 될 수 있습니다.

/proc/cmdline은 커널에 의해 생성된 동적 파일이므로, 그 내용은 현재 부팅 세션을 반영합니다.

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

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

이전 단계에서는 커널이 시작된 커널에 전달된 명령줄 인수를 살펴보았습니다. 이제 이러한 인수 중 일부가 어디에서 시작되었는지 살펴보겠습니다: GRUB 구성 파일입니다.

GRUB (GRand Unified Bootloader) 는 부트 로더입니다. 주요 역할은 운영 체제 커널을 메모리에 로드하고 제어를 전달하는 것입니다. GRUB 구성 파일은 부팅 메뉴 옵션, 기본 운영 체제 및 커널 매개변수를 결정합니다.

많은 Linux 시스템에서 GRUB 의 기본 구성 파일은 /etc/default/grub입니다. 이 파일에는 실제 GRUB 부팅 메뉴 구성을 생성하는 데 사용되는 설정이 포함되어 있습니다.

cat 명령을 다시 사용하여 이 파일의 내용을 확인합니다.

터미널이 아직 열려 있지 않다면 엽니다.

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

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 booting from a full graphics screen using grub-gfxpayload
#GRUB_GFXPAYLOAD_LINUX=keep

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

## The resolution used on graphical terminal
## needs to be in the format e.g. 640x480 or 800x600 or 1024x768
## and your graphics card needs to support it. A list of all available resolutions can
## be found with 'videoinfo' command in grub.
#GRUB_GFXMODE=640x480

## Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_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"

GRUB_CMDLINE_LINUX_DEFAULT로 시작하는 줄을 찾습니다. 여기에 나열된 옵션 (예: "quiet splash") 은 부팅 시 커널에 전달되는 경우가 많으며, 이전 단계에서 cat /proc/cmdline의 출력에서 보았을 수 있습니다.

이 파일은 부팅할 때마다 수동으로 입력하지 않고도 기본 커널 매개변수를 구성할 수 있으므로 중요합니다.

중요 참고 사항: 실제 시스템에서 이 파일을 변경하는 경우, 일반적으로 변경 사항을 실제 부팅 구성 파일 (/boot/grub/grub.cfg) 에 적용하기 위해 sudo update-grub을 실행해야 합니다. 그러나 이 랩 환경에서는 파일을 검사하기만 합니다.

계속 진행하려면 **계속 (Continue)**을 클릭하십시오.

dmesg 로 부팅 로그 검토

이 마지막 단계에서는 dmesg 명령을 사용하여 커널 링 버퍼 메시지를 살펴보겠습니다. 커널 링 버퍼는 부팅 프로세스 중에 발생하는 하드웨어 감지, 장치 드라이버 및 시스템 이벤트에 대한 정보를 포함하여 커널의 메시지를 저장합니다.

dmesg 명령은 이러한 메시지를 표시하는 데 사용됩니다. 하드웨어 문제를 진단하거나 시스템 시작 중에 발생한 상황을 이해하는 데 중요한 도구입니다.

터미널이 아직 열려 있지 않다면 엽니다.

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

dmesg

이 명령은 잠재적으로 매우 긴 메시지 목록을 출력합니다. 이러한 메시지는 커널이 시스템의 하드웨어 및 소프트웨어와 초기화하고 상호 작용할 때 생성됩니다.

다음과 유사한 출력을 볼 수 있습니다 (정확한 출력은 크게 다를 수 있습니다).

[    0.000000] Linux version ... (buildd@lcy02-amd64-...) (gcc-...) #...-Ubuntu SMP ...
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
...
[    1.234567] usbcore: registered new interface driver usbfs
[    1.234567] usbcore: registered new interface driver hub
[    1.234567] usbcore: registered new device driver usb
...

출력에는 /proc/cmdline에서 본 것과 유사하게 커널 버전과 명령줄 인수가 포함되어 있습니다.

dmesg의 출력은 방대할 수 있으므로, 화면별로 보려면 less 또는 more와 같은 페이저 (pager) 로 파이프하는 것이 유용합니다.

다음 명령을 시도해 보십시오.

dmesg | less

이제 화살표 키를 사용하여 출력을 위아래로 스크롤할 수 있습니다. q를 눌러 less를 종료합니다.

grep을 사용하여 "error" 또는 하드웨어 장치 이름과 같은 특정 키워드를 검색하여 출력을 필터링할 수도 있습니다.

예를 들어, USB 장치와 관련된 메시지를 보려면 다음을 수행합니다.

dmesg | grep -i usb

이 명령은 "usb"를 포함하는 줄만 표시합니다 (-i 플래그로 인해 대소문자를 구분하지 않음).

dmesg 출력을 탐색하는 것은 Linux 시스템 관리 및 문제 해결을 위한 기본적인 기술입니다.

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

요약

이 랩에서는 /proc/cmdline 파일을 검사하여 Linux 에서 커널 부팅 옵션이 활성화되었는지 확인하는 방법을 배웠습니다. 이 파일은 현재 부팅 세션 동안 커널에 전달된 명령줄 인수에 대한 동적 보기를 제공하여 시스템이 어떻게 시작되었는지와 초기 구성에 대한 통찰력을 제공합니다.

또한 시스템이 시작되기 전에 커널 부팅 매개변수를 정의하는 주요 위치인 GRUB 구성 파일 /etc/default/grub을 살펴봄으로써 이러한 부팅 옵션의 소스를 탐색하기 시작했습니다.