Tuesday, March 29, 2011

客製 Fedora Core 14 initramfs


cp /boot/initramfs-2.6.35.6-45.fc14.x86_64.img .
mkdir ./temp
cd ./temp
gunzip < ../initramfs-2.6.35.6-45.fc14.x86_64.img | cpio -i


修改完後, 重新打包出新的 initramfs

find | cpio -H newc -o | gzip -9 > ../initramfs-2.6.35.6-45.fc14.x86_64-XXXX.img

Friday, March 18, 2011

CentOS 5.5 自己 build kernel

由於CentOS 5.5的kernel實在太舊了 (Version 2.6.18-194, 沒記錯的話是 2007年2月)
紀錄一下升級kernel的步驟
1. 安裝build kernel所需的套件

#yum groupinstall “Development Tools” && yum install ncurses-devel


2. 抓取要使用的kernel source

#cd /usr/src
#wget “http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.35/linux-2.6.35.11.tar.bz2″
#bunzip2 linux-2.6.35.11.tar.bz2
#tar xf linux-2.6.35.11.tar
#ln -s linux-2.6.35.11 linux
#cd linux


3. 利用舊的kernel config來build kernel

#cp /boot/config-`uname -r` /usr/src/linux/.config
#cd /usr/src/linux
#make menuconfig

選取 'Load an alternate Configuration File' 將 .config load 進來

在 'General Setup' 選取
'enable deprecated sysfs features to support old userspace tools'

不選的話會在開機過程 switchroot 的時候 fail, 選取之後 save config


4. build kernel

#make rpm

如果過程沒問題的話, 等一段時間後 rpm 會被做出來,

5. install kernel

#rpm -ivh /usr/src/redhat/RPMS/i386/kernel-2.6.35.11-1.i386.rpm

rpm檔的名字不一定跟上面相同 (depend on 你的機器), 安裝完後我們檢查一下

#rpm -qa | grep -i kernel


6. build initrd image

#mkinitrd /boot/initrd-2.6.35.11.img 2.6.35.11


7. 修改 grub

#vim /boot/grub/menu.lst


剩下就不多說了