기술 가이드

커널 빌드 및 설치 가이드 (LILO 설정 포함)

4 min read 시스템 관리 업데이트됨 09 Oct 2025
Mandriva 커널 빌드 및 설치 가이드
Mandriva 커널 빌드 및 설치 가이드

개요

이 문서는 Mandriva 계열 시스템에서 소스에서 커널을 빌드하고, 생성된 RPM을 설치하며, mkinitrd로 초기 램디스크를 만들고 LILO 부트로더를 구성해 새 커널로 부팅하는 과정을 단계별로 설명합니다. 핵심 명령과 점검 목록, 실패 시 대처 방법과 수용 기준도 포함되어 있습니다.

중요: 아래 명령은 루트 권한으로 실행해야 합니다. 빌드와 설치는 시스템에 영향을 주므로 백업과 복구 수단을 준비하세요.

5. 커널 빌드

커널을 빌드하려면 다음 명령을 실행합니다:

make rpm

설명: make rpm은 현재 커널 소스 설정을 이용해 src.rpm과 아키텍처별 RPM 패키지를 생성합니다.

주의: 컴파일은 커널 설정과 CPU 성능에 따라 수십 분에서 수 시간까지 걸릴 수 있습니다. 중간에 실패하면 빌드 로그를 확인하고 필요한 의존성을 설치하세요.

6. 새 커널 설치

빌드가 성공하면 src.rpm과 일반 rpm 패키지가 생성됩니다. src.rpm은 보통 /usr/src/rpm/SRPMS/에 생성됩니다. 이름을 확인하려면:

ls -l /usr/src/rpm/SRPMS/

예시: 시스템에 따라 kernel-2.6.18.3default-1.src.rpm 같은 이름일 수 있습니다.

아키텍처별 바이너리 RPM은 /usr/src/rpm/RPMS/i386/, /usr/src/rpm/RPMS/i586/, /usr/src/rpm/RPMS/i686/, /usr/src/rpm/RPMS/x86_64/ 등 위치에 생성됩니다. 예를 들어 i386 폴더를 확인하려면:

ls -l /usr/src/rpm/RPMS/i386/

찾은 RPM 파일(예: kernel-2.6.18.3default-1.i386.rpm)을 설치하려면 해당 디렉터리로 이동 후 설치하세요:

cd /usr/src/rpm/RPMS/i386/
rpm -ivh kernel-2.6.18.3default-1.i386.rpm

설치 팁: 설치한 RPM을 다른 Mandriva 시스템으로 복사하여 동일하게 설치하면 해당 시스템에서도 재컴파일할 필요가 없습니다.

다음으로 새 커널에 필요한 초기 램디스크(initrd)를 생성합니다. 그렇지 않으면 대개 시스템이 새 커널로 부팅하지 못합니다. 예:

mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default

설명: 첫 번째 인수는 생성될 initrd 이미지 경로, 두 번째는 커널 버전(또는 이미지 이름)입니다.

7. LILO 부트 로더 구성

새 커널이 부팅되도록 LILO를 구성해야 합니다.

우선 /boot의 내용을 확인해 새 커널 이미지(vmlinuz-*)와 initrd 이미지를 찾습니다:

ls -l /boot

그런 다음 /etc/lilo.conf를 편집합니다. 기존에 정상적으로 부팅되는 커널 항목(stanza)을 참고하여 새 항목을 추가하세요. 새 항목은 가능한 맨 위에 두고 label 값은 고유하게 지정합니다(예: linux-2.6.18.3-default). default 항목에 같은 라벨 이름을 넣으면 시스템 재시작 시 새 커널이 기본으로 부팅됩니다.

vi /etc/lilo.conf

예: 기존 lilo.conf(추가 전)

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

그리고 새 항목을 추가한 후 예시(추가 후):

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux-2.6.18.3-default"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-2.6.18.3-default
        label="linux-2.6.18.3-default"
        root=/dev/sda6
        initrd=/boot/initrd-2.6.18.3-default.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

편집을 마쳤으면 다음을 실행하여 LILO를 적용합니다:

lilo

그런 다음 시스템을 재부팅합니다:

shutdown -r now

부팅 후 새 커널이 사용되는지 확인하려면:

uname -r

출력 예:

2.6.18.3-default

부팅에 실패하면 시스템을 재부팅한 뒤 LILO 메뉴가 나타날 때 이전(작동하는) 커널을 선택하여 부팅하세요. 문제를 해결한 뒤 /etc/lilo.conf에서 실패한 커널 항목을 제거하고 다시 lilo를 실행해야 합니다.

LILO 부팅 메뉴 스크린샷

8. 링크

점검 체크리스트 (역할 기반)

시스템 관리자:

  • /usr/src/rpm/SRPMS와 /usr/src/rpm/RPMS/*에서 빌드된 파일 확인
  • rpm -ivh로 RPM 설치
  • mkinitrd로 initrd 생성
  • /etc/lilo.conf 편집 후 lilo 실행
  • 재부팅 및 uname -r 확인

운영자(현장):

  • 재부팅 시 콘솔 접근 확보
  • 이전 커널로 부팅 가능한지 확인
  • 부팅 불가 시 로그(Serial, dmesg 없음) 확보

개발자/빌드 담당:

  • 빌드 실패 시 빌드 로그와 의존성 확인
  • .config 설정과 모듈 의존성 점검

수용 기준

  • 시스템이 재부팅되어 사용자 세션을 정상적으로 시작할 것
  • uname -r이 새 커널 버전을 표시할 것
  • 필수 모듈(예: 파일시스템, 디스크 컨트롤러)이 정상적으로 로드될 것
  • 복구 시 이전 커널로 부팅 가능할 것

트러블슈팅(자주 발생하는 문제와 해결책)

  1. 커널이 부팅되지 않음

    • 원인: 잘못된 initrd, 잘못된 root 디바이스, 잘못된 label
    • 해결: mkinitrd로 올바른 initrd 생성, /etc/lilo.conf의 image/initrd/root 값을 확인, lilo 재실행
  2. 잘못된 아키텍처의 RPM 설치

    • 원인: i386용을 x86_64에 설치하거나 반대의 경우
    • 해결: 올바른 아키텍처의 RPM을 사용하거나 해당 아키텍처에서 재빌드
  3. lilo 실행 시 오류

    • 원인: /boot 파티션 경로 문제 또는 map 파일 충돌
    • 해결: /boot 마운트 상태 확인, map 파일 및 boot 장치 설정 검토
  4. 모듈 관련 문제(네트워크, 디스크 등)

    • 원인: .config에 필요한 드라이버가 내장되지 않았거나 initrd에 포함되지 않음
    • 해결: 커널 설정에서 드라이버를 내장(built-in)하거나 initrd에 모듈 추가 후 재생성

대체 접근법

  • 미리 빌드된 공식/서드파티 커널 RPM을 사용하는 방법: 빠르지만 커널이 시스템 맞춤 구성이 아닐 수 있음.
  • GRUB 사용: GRUB이 시스템에 설치되어 있다면 /etc/grub.conf 또는 /boot/grub/grub.cfg를 편집해 새 커널을 추가할 수 있음.
  • dracut 사용: mkinitrd 대신 dracut을 사용하는 배포판도 있음(시스템에 따라 다름).

간단한 방법론(순서 요약)

  1. 소스에서 make rpm 실행
  2. /usr/src/rpm/RPMS/에서 RPM 설치
  3. mkinitrd로 initrd 생성
  4. /etc/lilo.conf에 새 image 항목 추가 및 default 갱신
  5. lilo 실행
  6. 재부팅 및 uname -r로 확인

테스트 케이스

  • TC1: RPM 설치 후 /boot에 vmlinuz-버전 파일 존재 확인
  • TC2: mkinitrd로 생성된 initrd 파일이 /boot에 존재하고 크기가 0이 아님
  • TC3: lilo 실행 시 오류 없이 완료
  • TC4: 재부팅 후 uname -r이 새 버전 출력
  • TC5: 부팅 불가 시 LILO 메뉴에서 이전 커널로 부팅 가능

한 줄 용어집

  • RPM: Red Hat 계열 패키지 포맷
  • src.rpm: 소스 패키지 RPM
  • initrd: 초기 램디스크(커널 부팅 시 필요한 초기 파일 시스템)
  • LILO: Linux Loader(구형 부트로더)
  • mkinitrd: initrd 이미지를 생성하는 툴

요약

  • make rpm으로 패키지를 만들고 rpm으로 설치하세요.
  • mkinitrd로 initrd를 생성한 뒤 /etc/lilo.conf에 새 항목을 추가하고 lilo를 실행하세요.
  • 재부팅 후 uname -r로 새 커널을 확인하세요. 문제가 생기면 LILO 메뉴에서 이전 커널로 복구하세요.
공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Gmail·Outlook·Thunderbird에서 이메일을 평문으로 읽는 방법
이메일

Gmail·Outlook·Thunderbird에서 이메일을 평문으로 읽는 방법

Midjourney 구독 취소 방법 — 단계별 가이드
가이드

Midjourney 구독 취소 방법 — 단계별 가이드

인스타그램 AR 필터 제작 가이드: Spark AR과 Banuba
AR 마케팅

인스타그램 AR 필터 제작 가이드: Spark AR과 Banuba

구글 검색 다크 모드 활성화 방법
가이드

구글 검색 다크 모드 활성화 방법

Windows PC에서 Pokémon GO 플레이 가이드
게임 가이드

Windows PC에서 Pokémon GO 플레이 가이드

shred로 하드 드라이브 영구 삭제
리눅스 보안

shred로 하드 드라이브 영구 삭제