Linux 에서 커널 설정 옵션이 설정되었는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 특정 커널 설정 옵션이 Linux 에서 설정되었는지 확인하는 다양한 방법을 살펴봅니다. 먼저, /proc/config.gz 파일을 검사하여 파일이 존재할 경우 zcat을 사용하여 커널 설정을 압축 해제하고 봅니다. 이 파일에는 현재 실행 중인 커널을 빌드하는 데 사용된 설정 옵션이 포함되어 있습니다.

/proc/config.gz을 사용할 수 없는 경우, /boot/ 디렉토리에서 커널 설정 파일을 확인합니다. 특히 config-*라는 이름의 파일을 찾습니다. 이는 커널 설정을 확인하는 대체 방법을 제공합니다. 마지막으로, dmesg 에서 설정 로그를 검사합니다.

zcat /proc/config.gz로 커널 설정 확인

이 단계에서는 zcat 명령과 /proc/config.gz 파일을 사용하여 커널 설정을 확인하는 방법을 살펴봅니다. 커널 설정은 커널에 어떤 기능이 내장되는지를 결정하며, 이를 이해하는 것은 디버깅 및 사용자 정의에 도움이 될 수 있습니다.

먼저, /proc/config.gz가 무엇인지 이해해 보겠습니다. 이는 현재 실행 중인 커널을 빌드하는 데 사용된 커널 설정 옵션을 포함하는 gzipped 파일입니다. 그러나 커널 빌드 설정에 따라 항상 존재하지 않을 수 있습니다.

파일이 존재하는지 확인하려면 다음 명령을 사용하십시오.

ls -l /proc/config.gz

파일이 존재하면 다음과 유사한 출력을 볼 수 있습니다.

-r-------- 1 root root [占位符: 파일 크기] [占位符: 날짜] /proc/config.gz

파일이 존재하지 않으면 오류 메시지가 표시됩니다.

ls: cannot access '/proc/config.gz': No such file or directory

파일이 존재하면 zcat을 사용하여 압축을 풀고 내용을 볼 수 있습니다. zcat은 gzipped 파일의 압축을 풀고 출력을 표준 출력으로 인쇄하는 명령줄 유틸리티입니다.

커널 설정을 보려면 다음 명령을 실행하십시오.

zcat /proc/config.gz | less

이 명령은 zcat /proc/config.gz의 출력을 less 명령으로 파이프하여 설정 파일을 스크롤할 수 있도록 합니다.

CONFIG_로 시작하는 긴 설정 옵션 목록이 표시됩니다. 예를 들면 다음과 같습니다.

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

q를 눌러 less를 종료합니다.

/proc/config.gz가 존재하지 않으면 다음 단계로 진행하여 /boot/config-*를 확인해야 합니다.

/boot/config-*에서 설정 확인

이 단계에서는 /boot/ 디렉토리에서 커널 설정 파일을 확인합니다. 이는 커널 설정이 저장되는 또 다른 일반적인 위치입니다. 파일 이름은 일반적으로 config-*이며, 여기서 *는 커널 버전을 나타냅니다.

먼저, /boot/ 디렉토리의 파일을 나열하여 config-* 파일이 있는지 확인해 보겠습니다. 다음 명령을 사용하십시오.

ls -l /boot/config-*

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

-rw------- 1 root root [占位符: 파일 크기] [占位符: 날짜] /boot/config-[占位符: kernel version]

config-* 파일이 보이면 커널 설정이 해당 파일에 저장되어 있음을 의미합니다. config-* 파일이 보이지 않으면 커널 설정이 /boot/의 표준 위치에 저장되어 있지 않음을 의미합니다.

config-* 파일의 내용을 보려면 cat 명령을 사용할 수 있습니다. [占位符: kernel version]을 파일 이름의 실제 커널 버전으로 바꿉니다. 예를 들어, 파일 이름이 /boot/config-5.15.0-76-generic인 경우 명령은 다음과 같습니다.

cat /boot/config-5.15.0-76-generic | less

이 명령은 cat /boot/config-[占位符: kernel version]의 출력을 less 명령으로 파이프하여 설정 파일을 스크롤할 수 있도록 합니다.

CONFIG_로 시작하는 긴 설정 옵션 목록이 표시됩니다. 예를 들면 다음과 같습니다.

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

q를 눌러 less를 종료합니다.

config-* 파일이 여러 개 있는 경우 uname -r 명령을 사용하여 커널 버전을 확인할 수 있습니다.

uname -r

그러면 시스템에서 현재 실행 중인 커널 버전이 출력됩니다. 그런 다음 이 정보를 사용하여 볼 올바른 config-* 파일을 선택할 수 있습니다.

dmesg 에서 설정 로그 검토

이 단계에서는 dmesg 명령을 사용하여 커널 로그를 검사하여 커널 설정에 대한 정보를 찾습니다. dmesg는 커널의 메시지 버퍼를 출력하는 명령줄 유틸리티입니다. 이 버퍼에는 부팅 시 커널 설정에 대한 세부 정보를 포함하여 하드웨어, 드라이버 및 기타 시스템 이벤트에 대한 정보가 포함되어 있습니다.

커널 로그를 보려면 다음 명령을 사용하십시오.

dmesg | less

이 명령은 dmesg의 출력을 less 명령으로 파이프하여 로그를 스크롤할 수 있도록 합니다.

커널 설정 정보는 일반적으로 부팅 프로세스 중에 로그의 시작 부분에 인쇄됩니다. 로그를 필터링하고 설정 관련 메시지를 찾으려면 grep 명령을 사용할 수 있습니다.

"config"를 포함하는 줄을 검색하려면 다음 명령을 시도하십시오.

dmesg | grep config | less

이 명령은 dmesg의 출력을 grep config로 파이프하여 "config"라는 단어가 포함된 줄을 필터링한 다음 결과를 less로 파이프하여 쉽게 볼 수 있도록 합니다.

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

[占位符: 시간戳] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[占位符: kernel version] root=UUID=[占位符: UUID] ro quiet splash  vt.handoff=7
[占位符: 시간戳]  Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[占位符: kernel version] root=UUID=[占位符: UUID] ro quiet splash vt.handoff=7
[占位符: 시간戳]  DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS [占位符: BIOS version] 04/01/2014

특정 설정 옵션을 검색할 수도 있습니다. 예를 들어, CONFIG_EXT4_FS가 활성화되어 있는지 확인하려면 다음 명령을 사용하십시오.

dmesg | grep CONFIG_EXT4_FS

옵션이 활성화되어 있으면 다음과 유사한 줄이 표시됩니다.

[占位符: 시간戳]  EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

옵션이 활성화되어 있지 않으면 출력이 표시되지 않습니다.

dmesg 출력을 검사하여 커널 설정을 확인하고 누락되거나 잘못된 설정 옵션과 관련된 잠재적인 문제를 식별할 수 있습니다.

q를 눌러 less를 종료합니다.

요약

이 랩에서는 Linux 에서 커널 설정을 확인하는 방법을 살펴보았습니다. 먼저 zcat /proc/config.gz를 통해 커널 설정에 접근하려 시도했습니다. 이 파일에는 현재 실행 중인 커널을 빌드하는 데 사용된 커널 설정 옵션이 포함되어 있지만, 해당 파일의 존재 여부는 커널 빌드 설정에 따라 달라진다는 것을 알게 되었습니다. ls -l을 사용하여 파일의 존재 여부를 확인하고, 파일이 있는 경우 zcatless로 파이프하여 내용을 보았습니다.

/proc/config.gz를 찾을 수 없는 경우, 랩에서는 다음 단계로 진행하도록 안내합니다. 다음 단계는 /boot/ 디렉토리에서 커널 설정 파일 (일반적으로 config-*로 이름 지정됨) 을 확인하는 것입니다.