사용 환경
VMware Workstation Pro 17
Ubuntu_24.04.3_LTS
참고 자료
리눅스 커널 취약점 분석을 위해 환경 구성을 하겠다.
원활한 환경 설정을 위해 vm 하드웨어는 다음과 같이 설정하였다.

disk 1테라 줬는데 오타로 인해 1019기가가 들어간듯 하다.
먼저 원활한 환경 구축을 위해 "로컬 - 가상머신" 간의 복사 붙여넣기를 설정 해주겠다.
sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools-desktop
위 두개의 명령어 실행 후 재부팅 하면 정상 작동 한다.
먼저 커널 소스 코드를 다운 받는다.
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.13.2.tar.xz
tar -xvf linux-6.13.2.tar.xz
cd linux-6.13.2
이어서 빌드를 위한 라이브러리를 설치한다.
sudo apt-get install -y bison bsdutils build-essential dash diffutils findutils flex gawk gcc git grep grub-pc gzip hostname ibus-table-cangjie-big ibus-table-cangjie3 ibus-table-cangjie5 init language-pack-en language-pack-en-base language-pack-gnome-en language-pack-gnome-en-base libchewing3 libchewing3-data libdw-dev libelf-dev libm17n-0 libmarisa0 libncurses-dev libopencc-data libopencc1.1 libotf1 libpinyin-data libpinyin15 libssl-dev linux-generic-hwe-24.04 login m17n-db make ncurses-base ncurses-bin open-vm-tools-desktop python3-netifaces ubuntu-desktop-minimal ubuntu-minimal ubuntu-restricted-addons ubuntu-standard ubuntu-wallpapers wbritish
다음은 설정 파일 복사를 위해 현재 커널 정보를 확인하고, 복사해온다.
uname -a
sudo cp /boot/config-6.14.0-28-generic ./.config

이어서 빌드 설정을 위해 아래 명령어를 실행한다.
make menuconfig

만약 "Your display is too small to run Menuconfig! It must be at least 19 lines by 80 columns." 이란 에러메시지가 나온다면 화면 크기를 키워주면 된다.
설정을 완료한 다음 몇 가지 설정은 해제해준다.
scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str SYSTEM_REVOCATION_KEYS ""
scripts/config --set-str SYSTEM_BLACKLIST_HASH_LIST ""

이어서 확인 해주면
grep -E 'SYSTEM_(TRUSTED|REVOCATION|BLACKLIST)_.*=' .config

잘 된 것 같다. 그럼 이제 컴파일 시작
make mrproper
make olddefconfig
make -j"$(nproc)"

음... 도와줘요 GPT
여전히 로그를 살펴보니까 debian/canonical-certs.pem를 찾고 있어서 에러가 뜨는 것 같다. 예전 설정 혹은 캐시가 남아있어서 에러가 발생할 가능성이 크기에 어디서 참조되는지 즉시 확인한다.

저게 뜨면 안 되는데 뭔가 있으니까 현재 설정 백업 해두고, 트리/캐시를 초기화 한 다음 아키텍쳐에 맞게 기본 defconfig로 시작후 키 경로를 비워두도록 한다.
이어서, 기본값 재적용 하고 다시 빌드 해보겠다.
사용한 명령어는 다음과 같다.
cp -a .config ../config.bak.$(date +%s)
make mrproper
make x86_64_defconfig
scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str SYSTEM_REVOCATION_KEYS ""
scripts/config --set-str SYSTEM_BLACKLIST_HASH_LIST ""
scripts/config --disable SYSTEM_TRUSTED_KEYRING
scripts/config --disable SYSTEM_REVOCATION_LIST
scripts/config --disable SYSTEM_BLACKLIST_KEYRING
scripts/config --disable MODULE_SIG
make olddefconfig
grep -R "canonical-.*\.pem" -n .config include/config/auto.conf include/generated/autoconf.h include/generated/rustc_cfg || echo "OK: no canonical pem refs"
grep -E 'SYSTEM_(TRUSTED|REVOCATION|BLACKLIST)_.*=' .config
make -j8

Kernel: arch/x86/boot/bzImage is ready (#1) 문구가 뜨면 성공한 것이다.
이어서 커널 이미지 설치하겠다.
sudo make install

vmlinuz-6.13.2가 설치 된 것을 알 수 있다.
이어서 커널 사용을 위해서는 GRUB 설정을 해줘야 한다.
먼저 GRUB 설정을 바꾸기 위해 다음과 같이 진행한다.
sudo vi /etc/default/grub
다음 부분들을 수정 해줘야 한다.
GRUB_TIMEOUT_STYLE=menu # 수정
GRUB_TIMEOUT=10 # 수정
GRUB_TERMINAL=console # 추가

저장 후
sudo update-grub
해당 명령어 실행 후 재부팅 하면 된다.

그러면 이런 화면이 뜨면 Advanced option for Ubuntu 클릭

설치한 커널 버전 클릭

Busybox 셸이 뜬듯 하다.
커널은 떴지만 루트 파일시스템을 못 마운트 해서 구조 모드로 떨어진 상태인듯 하다.
GPT한테 구조요청 하자
reboot -f
우선 리부팅 해서 이전 커널로 접속 하자.
2 시간정도 머리 싸매다가 GPT가 그냥 다시 빌드하라고 명령어 알려주길래 해보니까 된다.
cd ~/linux-6.13.2
# /dev가 자동으로 생기게
scripts/config --enable DEVTMPFS
scripts/config --enable DEVTMPFS_MOUNT
# 파일시스템/블록/SCSI 코어
scripts/config --enable EXT4_FS
scripts/config --enable SCSI
scripts/config --enable BLK_DEV_SD
# LSI Logic Parallel SCSI (Fusion MPT) 빌트인
scripts/config --enable FUSION
scripts/config --enable FUSION_SPI
# (VM 환경에 따라 여분도 빌트인 권장 — 있으면 사용, 없어도 문제 없음)
scripts/config --enable ATA
scripts/config --enable SATA_AHCI
make olddefconfig
make -j"$(nproc)"
sudo make modules_install
sudo make install
KVER=$(make -s kernelrelease)
sudo update-initramfs -c -k "$KVER"
sudo update-grub
sudo reboot
귀찮아서 복붙 해서 사용하니까 성공했다.

되었다 휴 이제 VM 복사해서 사용해야겠다.
'환경 구축' 카테고리의 다른 글
| [리눅스 커널 취약점 분석] 리눅스 커널 퍼징을 위한 Syzkaller 빌드 (0) | 2025.11.01 |
|---|---|
| [리눅스 커널 취약점 분석] 리눅스 커널 퍼징을 위한 qemu, BusyBox 빌드 (0) | 2025.11.01 |
| [리눅스 커널 취약점 분석] 리눅스 커널 퍼징용 커널 빌드 (0) | 2025.11.01 |