VMware上Linux核心build方法 網路上關於vmware上linux核心build的文章很多,主要問題在於buildc成功後無法正常啟動核心,這是vmware的一個bug,目前沒有見到好的解決辦法。以下核心build並成功運行,關鍵主要在於:VMware使用ide硬碟。 環境配置 VMware6:6.01 build-55017 Hard driver: IDE RHLS 5 Kernel version:2.6.18.8 Build procedures 1. 下載核心 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.8.tar.bz2 2. 解壓 # cd /usr/src/ # tar –jxvf linux-2.6.18.8.tar.bz2 # ln –s linux-2.6.18.8 linux # cd linux 3. 配置 # make mrproper (該命令可確保原始碼目錄下沒有不正確的.o檔案,如果是新解壓的核心,此步可免) # make menuconfig (配置核心各選項) 下面的配置建議選上: 由於在vmware中使用類比的SCSI硬碟和AMD PCnet32網卡,因此需要“SCSI disk support”、“BusLogin SCSI support”、“AMD PCnet32 PCI support”的支援,最好編譯進核心,而不是編譯為核心模組[U1] 。 [U1]“Device Drivers --->SCSI device support” set as * firstly Device Drivers --->SCSI device support ---><*> SCSI disk support Device Drivers --->SCSI device support --->SCSI low-level drivers ---> <*> BusLogic SCSI support Device Drivers ---> Networking support --->Ethernet (10 or 100Mbit) ---> <*> AMD PCnet32 PCI support 如果編譯為模組,initrd則是必須的,否則啟動過程中會出現“VFS:unable to mounting root fs”.程式包mkinitrd依賴於程式包device-mapper,而程式包device-mapper又依賴於lvm2,因此需要同時下載mkinitrd、device-mapper、lvm2程式包。 EXT3也是必須編譯進核心,而不能編譯為模組 File system--->(以下9個選項是關於ext2和ext3檔案系統配置,全部選上) 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 4. 開始編譯 在/usr/src/linux-2.6.18.8目錄下,執行以下命令即可編譯。編譯需要一段時間,給自己倒杯茶耐心等候吧! # make dep (建立編譯時間所需的從屬檔案。注意:如果核心從未編譯過,此步可跳過) # make clean (清除核心編譯的目標檔案。注意:如果核心從未編譯過,此步可跳過) # make bzImage (注意大小寫。這一步才是真正編譯核心) 核心編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中產生一個新核心的映像檔案bzImage。如果用make zImage編譯,核心很大的話,系統會提示你使用make bzImage命令來編譯,所以我直接用make bzImage來編譯。 # make modules (編譯可載入模組) # make modules_install (安裝可載入模組) 安裝成功後,系統會在/lib/modules目錄下產生一個2.6.18.8子目錄,裡面存放著新核心的所有可載入模組。 # make install (安裝新核心) 5. ok了,你可以用命令reboot重啟了,重啟之後選擇那個2.6.18.8的核心版本就行了。