개발 환경
$ sudo apt-get install build-essential bin86 kernel-package wget libncurses5
$ sudo apt-get install initramfs-tools
다른 리눅스에선 initrd 이미지를 생성할 때 mkinitrd 를 사용하였는데 우분투에선 initramfs-tools이란걸 사용한다.
이번 포스트에선 기존에 있는 .config 파일을 사용할 것이다. /usr/src/ 밑에 자신이 현재 사용하는 커널 디렉토리가 있다. 그곳에 있는 .config 파일을 새로 빌드할 linux source 디렉토리에 복사한다.
커널 빌드
$ make oldconfig
$ make
$ make modules
$ make modules_install
make가 완료되었다면 생성된 bzImage와 System.map을 /boot/에 복사해야 한다.
/linux-2.6.29/arch/x86/boot/bzImage
/linux-2.6.29/System.map
위 두 파일을 다음과 같은 이름으로 복사한다.
cp /linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29
cp /linux-2.6.29/System.map /boot/System.map-2.6.29
그런 후 initrd image를 생성해야 한다.
$ update-initramfs -c -k 2.6.29
커널 이미지는 준비가 되었고 실제 grub에 새로 생성한 커널로 부팅을 할 수 있게 등록을 해야한다.
/boot/grub/menu.lst
파일을 열어 보면 기존에 설정 된 목록이 있다. 적당히 복사하여 이미지 부분 버전만 수정하여 주면 된다.