Linux升級(jí)內(nèi)核工具安裝編譯
Linux升級(jí)還是比較常用的,于是我研究了一下Linux升級(jí),在這里拿出來和大家分享一下,希望對(duì)大家有用。因?yàn)楸救四懶?所以不敢體驗(yàn)把Windwos弄崩潰后,抱頭痛苦的感覺,所以還是在VMware下從Linux升級(jí)2.4.20Linux升級(jí)Linux升級(jí)到2.6.18,下面是本人的一些心得體會(huì),寫出來與大家分享~~
一.由于Linux升級(jí)在教育網(wǎng)下不借助任何加速工具
,上網(wǎng)真叫一個(gè)慢,所以想在Linux升級(jí)下與Windows共享文件夾,來使用先前下好的一些東東!要做到這點(diǎn),你需要以下幾步:
1. mount /dev/cdrom /mnt/cdrom
2. VM菜單有一個(gè)install vm tools進(jìn)行安裝
3. 之后/mnt/cdrom里面就會(huì)有兩個(gè)文件,一個(gè)是rpm文件,一個(gè)是*.tar.gz文件,把rpm文件安裝,再用tar解壓縮*.tar.gz的文件,如果是只讀的,那么就會(huì)提示出錯(cuò),考出來再解壓縮就可以了
4. 解壓縮后會(huì)有一個(gè)叫install*.pl的文件,直接執(zhí)行就會(huì)出現(xiàn)一些提示,一路回車
5. vm tools裝好后,到VM的setting里設(shè)置一下共項(xiàng)目錄就是了~~
6. /mnt/kgfs就會(huì)出現(xiàn)了,里面有剛才設(shè)置的共享目錄里面的內(nèi)容 設(shè)置好之后,你就可以看到在Windows下的一些你Linux升級(jí)內(nèi)核要用的文件了!
二 Linux升級(jí)內(nèi)核(這才是我們的重點(diǎn)),以下是攻略,本人親自試過,這個(gè)絕對(duì)沒錯(cuò):
一、準(zhǔn)備工作首先說明,
下面帶#號(hào)的行都是要輸入的命令行,且本文提到的所有命令行都在終端里輸入。啟動(dòng)Linux升級(jí) 系統(tǒng),并用根用戶登錄,進(jìn)入終端模式下。
1、查看Linux升級(jí) 內(nèi)核版本
# uname -a如果屏幕顯示的是2.6.x,說明你的已經(jīng)是2.6 的內(nèi)核,也用不著看下文了,該干什么干什么去吧!~~~如果顯示的是2.4.x,那恭喜你,闖關(guān)通過,趕快進(jìn)行下一步。
2、下載2.6 內(nèi)核源碼
下載地址:http://www.kernel.org/pub/Linux升級(jí)/kernel/v2.6/Linux升級(jí)-2.6.18.tar.bz2
3、下載內(nèi)核Linux升級(jí)工具
(1)下載module-init-tools-3.2.tar.bz2
http://www.kernel.org/pub/Linux升級(jí)/ ... t-tools-3.2.tar.bz2
(2)下載mkinitrd-4.1.18-2.i386.rpm
http://ayo.freshrpms.net/fedora/ ... d-4.1.18-2.i386.rpm
(3)下載lvm2-2.00.25-1.01.i386.rpm
http://ayo.freshrpms.net/fedora/ ... 00.25-1.01.i386.rpm
(4)下載device-mapper-1.00.19-2.i386.rpm
http://ayo.freshrpms.net/fedora/ ... -1.00.19-2.i386.rpm
(2.6.18 內(nèi)核和這4 個(gè)Linux升級(jí)工具我都有備份, 如果以上下載地址失效, 請(qǐng)到http://www.piaoyang.org/guestbook 留下你的郵箱,我給你發(fā)過去)
二、配置工作
好啦,2.6 內(nèi)核和4 個(gè)Linux升級(jí)工具都下載完了(少一個(gè)也不行,如果沒有下載齊全,請(qǐng)不要嘗試下面的步驟,Linux升級(jí)是不會(huì)成功的),下面回到Linux升級(jí) 系統(tǒng)中開始配置工作吧。
4、將下載好的內(nèi)核源碼包和4 個(gè)Linux升級(jí)工具都拷貝到/usr/src 文件夾下。怎么拷貝就不用我教了吧~~~~不會(huì)拷貝的去撞墻吧!~~呵呵!
5、拷貝完畢,開始解壓新內(nèi)核,具體操作請(qǐng)依次執(zhí)行以下命令:
# cd /usr/src (進(jìn)入到/usr/src 目錄下,如果已經(jīng)在/usr/src 目錄下,可不執(zhí)行該命令)
# rm –rf Linux升級(jí) (刪除Linux升級(jí) 文件夾。值得一提的是,如果內(nèi)核先前從未編譯過,則沒有這個(gè)文
件夾,此命令行可略過)
# tar jvxf Linux升級(jí)-2.6.18.tar.bz2 (解壓新內(nèi)核)
# ln -s Linux升級(jí)-2.6.18 Linux升級(jí) (重新生成Linux升級(jí) 文件夾)
6、安裝module-init-tools 工具
在/usr/src 目錄下,依次執(zhí)行下列命令:
# tar jvxf module-init-tools-3.2.tar.bz2 (解壓module-init-tools)
# cd module-init-tools-3.2 (由/usr/src 目錄進(jìn)入module-init-tools 目錄下)
#./configure --prefix=/
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.confv
7、安裝另外三個(gè)Linux升級(jí)工具
回到/usr/src 目錄下,依次執(zhí)行下列3 個(gè)命令來安裝另外三個(gè)Linux升級(jí)工具:
# rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,這里一定要加入--nodeps 參數(shù),下同)
# rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm
# rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm
如果不更新以上幾個(gè)Linux升級(jí)包,在后面編譯內(nèi)核時(shí)會(huì)提示以下錯(cuò)誤:
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
8、配置內(nèi)核選項(xiàng)。有點(diǎn)繁瑣,~~希望一次成功哦~~。
# cd Linux升級(jí)-2.6.18 (進(jìn)入到/usr/src/Linux升級(jí)-2.6.18 目錄下)
# make mrproper (該命令可確保源代碼目錄下沒有不正確的.o 文件)
# make menuconfig (配置內(nèi)核各選項(xiàng))
此時(shí)會(huì)出現(xiàn)一個(gè)圖形界面,列出了所有的內(nèi)核配置選項(xiàng),有的選項(xiàng)下還有子選項(xiàng),你可以用方向鍵來選擇,用Y 鍵來確定。經(jīng)過我多次試驗(yàn),大多數(shù)選項(xiàng)默認(rèn)就行,以下幾個(gè)選項(xiàng)必須選擇(請(qǐng)認(rèn)真核對(duì)下面每一個(gè)選項(xiàng),否則編譯很有可能前功盡棄):
(1)Loadable Module support 選項(xiàng)中, 選上“Module unloading” 和“Automatic kernel moduleloading”這兩項(xiàng);
(2)Device Drivers--->Block Devices 中選上“Loopback device support”;
Device Drivers--->Multi-device support(RAID and LVM)處要選上“device mapper support”;
Device Drivers--->Graphics support,一定要選上“ Support for frame buffer devices”;
Device Drivers --->USB support --->選上“USB Mass Storage support”(如果是在實(shí)環(huán)境中,想
要更多USB 支持,就全選吧。我的是在虛擬機(jī)中,用不著了)
Device Drivers --->;Network device support --->Ethernet (10 or 100Mbit) ---><*> AMD PCnet32
PCI support
(3)File system--->(以下9 個(gè)選項(xiàng)是關(guān)于ext2 和ext3 文件系統(tǒng)配置,全部選上)
Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBB (ext3) debugging support
File system--->DOS/FAT/NT Filesystems --->選上“NTFS file system support”;
注意:ext2 和ext3 文件系統(tǒng)配置很重要,也是必需的,如果對(duì)Ext3、Ext2 文件的支持直接編譯進(jìn)內(nèi)核,在你reboot 時(shí)機(jī)器就會(huì)當(dāng)?shù)?,出現(xiàn)如下錯(cuò)誤信息:kernel panic : no init found ,try passing init = option to kernel.....或者是:
VFS:Cannot open root device "hdxy" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
或者是:
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed
Kernel panic – not syncing: No init found. Try passing init = option to kernel
(我的機(jī)器就是在重啟之后出現(xiàn)第三種錯(cuò)誤,進(jìn)不去系統(tǒng),郁悶死,只好重裝了~~~如果依照本文做完所有步驟,當(dāng)你重啟Linux升級(jí) 系統(tǒng)后,若不幸進(jìn)不去2.6.18 內(nèi)核,你會(huì)發(fā)現(xiàn)你的出錯(cuò)信息就是上面三種了~~~哈!)
(4)如果你在vmware 下編譯內(nèi)核,硬盤用的是scsi 的,以下三個(gè)選項(xiàng)必選:
Device Drivers ---><*>SCSI device support (此項(xiàng)不選的話,下面兩項(xiàng)就選擇不上)
Device Drivers ---><*>SCSI device support ---><*>SCSI disk support
Device Drivers---><8>SCSI device support--->SCSI low-level drivers---><*>; BusLogic SCSI
support
三、編譯工作
OK,繁雜的配置工作完成了,至此,編譯前的準(zhǔn)備工作都做好了!
9、開始編譯啦……
在/usr/src/Linux升級(jí)-2.6.18 目錄下,執(zhí)行以下命令即可編譯。編譯需要一段時(shí)間,給自己倒杯茶耐心等候吧!
# make dep (建立編譯時(shí)所需的從屬文件。注意:如果內(nèi)核從未編譯過,此步可跳過)
# make clean (清除內(nèi)核編譯的目標(biāo)文件。注意:如果內(nèi)核從未編譯過,此步可跳過)
# make bzImage (注意大小寫。這一步才是真正編譯內(nèi)核)
內(nèi)核編譯成功后, 會(huì)在/usr/src/Linux升級(jí)/arch/i386/boot 目錄中生成一個(gè)新內(nèi)核的映像文件bzImage。如果用make zImage 編譯,內(nèi)核很大的話,系統(tǒng)會(huì)提示你使用make bzImage 命令來編譯,所以我直接用make bzImage 來編譯。
# make modules (編譯可加載模塊)
# make modules_install (安裝可加載模塊)
安裝成功后,系統(tǒng)會(huì)在/lib/modules 目錄下生成一個(gè)2.6.18 子目錄,里面存放著新內(nèi)核的所有可加載模塊。# make install (安裝新內(nèi)核)注意:make install 的時(shí)候可能會(huì)出現(xiàn)如下錯(cuò)誤信息:No module BusLogic found for kernel 2.4.12 mkinitrd failed此問題一般只出現(xiàn)在SCSI 硬盤+VMWARE+REDHAT 架構(gòu)中,因?yàn)锽usLogic 被編譯進(jìn)了
內(nèi)核而不是一個(gè)module 的形式(2.4 內(nèi)核的Buslog ic 模塊即使靜態(tài)編譯進(jìn)內(nèi)核也不行)。
解決方式是直接將BusLogic.o 文件復(fù)制過去:# cp /usr/src/Linux升級(jí)-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi不過別忘記,復(fù)制過后再執(zhí)行一下make install。這一步若卡住了,下面的都無法進(jìn)行,如果看本文檔還是沒有解決問題,就來我的網(wǎng)上留言本求助吧,進(jìn)http://www.piaoyang.org ,點(diǎn)“留言本”即可,我會(huì)及時(shí)看到你的求助信息的。
四、啟動(dòng)新內(nèi)核
10、將新內(nèi)核和System.map 文件拷貝到/boot 目錄下,依次執(zhí)行以下命令:
# cp /usr/src/Linux升級(jí)-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18
# cp /usr/src/Linux升級(jí)-2.6.18/System.map /boot/System.map-2.6.18
# cd /boot (進(jìn)入boot 目錄)
# rm –rf System.map (刪除原來的連接)
# ln –s System.map-2.6.18 System.map (重新建立連接)
11、修改Grub 啟動(dòng)管理器
如果沒有錯(cuò)誤的話, 下面開始修改grub 配置文件(不要告訴我你用的lilo)在/boot 目錄下,執(zhí)行以下命令:# new-kernel-pkg --mkinitrd --depmod --install 2.6.18 (這時(shí)候你的/boot 下會(huì)生成一個(gè)initrd-2.4.18.img,并且你的grub.conf 文件也作了相應(yīng)更改)# df (查看根目錄在那個(gè)分區(qū),下一步要用到。注意,這里根分區(qū)不時(shí)boot 的那個(gè)50M 的分區(qū),而一般是你最大的那個(gè)分區(qū),也就是“/”,千萬不要搞錯(cuò)哦。
我的為/dev/hda2)# vi /grub/grub.conf進(jìn)入grub.conf 文件,找到如下信息:
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux升級(jí) (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root= LABEL=/
initrd /initrd-2.6.18.img
做兩處修改:
(1) 將default=1 改為default=0(不改的話也可以,只不過重啟之后會(huì)默認(rèn)進(jìn)入2.4 內(nèi)核)
(2) 將kernel 行的“LABEL=/”換成根目錄所在的分區(qū)(上一步查看的就是)
此步很重要,修改錯(cuò)誤將可能導(dǎo)致進(jìn)不去系統(tǒng),我把我修改后的grub.conf 文件列出來,不明之處,可以對(duì)照修改:
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux升級(jí) (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root=/dev/hda2
initrd /initrd-2.6.18.img
title Red Hat Linux升級(jí) (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
12,OK,大功告成!趕快重啟,看看Linux升級(jí)后的2.6 內(nèi)核吧~~~~其實(shí),做做到這些并不難,關(guān)鍵是要細(xì)心加耐心!
【編輯推薦】