데비안은 우분투와 친구사이라 같을줄 알았는데,
조금 다르고, 그것도 아주 중요한 부분에서,
차이점을 보여서 처음엔 좀 당황했었습니다.
시작하겠습니다.
00 커널소스다운로드
# cd /usr/src
/usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.32-rc5.tar.bz2
/usr/src # tar xvjf linux-2.6.32-rc5.tar.bz2
/usr/src # ln -s linux-2.6.32-rc5 linux
00 컴파일도구들, 패키지설치,
# apt-get install kernel-package
# apt-get install libncurses5-dev
# apt-get install fakeroot
# apt-get install zlib1g-dev
# apt-get install libssl-dev
00 컴파일설정
# cp /boot/config-xxxx /usr/src/linux/.config
이것은 이전의 컨피그를 재활용하려는 것입니다.
새롭게 구성하려면, 안해도 됩니다.
# make menuconfig
구성작업을 합니다.
00 컴파일 실행
# make-kpkg --initrd --revision=k2 binary-arch
이렇게하면, kernel_image, kernel_image_mysql, header_image 이렇게 3개의 .deb화일이
/usr/src/에 만들어지는데, 아마도 인베이드리눅서들이 쓰는 방법같고,
dpkg로 설치할때도 3개를 따로따로 모두 해주어야합니다.
그래서 인베이드리눅서가 아닌이상,
아래와 같이 단순하게 하여, .deb화일을 1개만 만듭니다.
# make-kpkg --initrd --revision=k2 kernel_image
이것을 실행 시키면, 2-3시간이 걸립니다.
에러없이 제대로 작업이 됐다면, /usr/src/안에 .deb화일이 만들어졌습니다.
00 컴파일된 이미지를 설치합니다.
dpkg -i kernel-image-2.6.32-rc5.deb
여기서 /boot 폴더안으로 들어가 봅니다.
cd /boot
그런데, initrd이미지가 안만들어지는 경우가 있습니다.
내_데비안에서 그런일이 일어나는 바람에 웹을 엄청나게
뒤졌으나, 한국사이트는 물론이고, 외국사이트에도,
몇년전의 lilo시절의 문장들만 있고, 이것은 없었습니다.
그러다 어떻게 어떤 외국사이트에 비슷한 사례를 발견하고는,
힌트를 얻어서 해봤더니 돼더군요,
그래서 그것을 소개합니다.
데비안계열은 다른것은 모두 자동으로 잡아주는데,
initrd_image를 안만들고, /boot/grub/grub.cfg화일안의 내용에도 역시
initrd_image를 안적어놨습니다.
그래서, 먼저 /boot로 들어가서는,
# cd /boot
# mkinitramfs -o initrd.img-2.6.32-rc5 2.6.32-rc5 엔터침
이렇게하여, initrd.img-2.6.32-rc5를 수동으로 만들어놓고는,
/boot/grub/grub.cfg 문장을 nano로 열어서,
이전의 initrd커널이미지문장을 복사해서,
새로작업한 커널문장에다 붙여넣기한후에
겨우 새로운 커널로 부팅할수 있었습니다.
그리고 한번, /lib/modules/폴더안을 살펴보기 바랍니다.
그곳에 각커널별로 모듈들이 모여있습니다.
이상입니다.
댓글 없음:
댓글 쓰기