一、獲取核心原始碼
二、解壓核心原始碼
首先以root帳號登入,然後進入/usr/src子目錄。如果使用者在安裝Linux時,安裝了核心的原始碼,則會發現一個linux-x.y.z的子目錄。該目錄下存放著核心x.y.z的原始碼。此外,還會發現一個指向該目錄的連結linux。刪除該連線,然後將新核心的原始檔複製到/usr/src目錄中,並解壓:
#tarzxvfLinux-2.3.14.tar.gz
檔案釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了核心2.3.14的全部原始碼。將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi連結到/usr/src/linux/include目錄下的對應目錄中。
#cd/usr/include
#rm-Rfasmlinux
#ln-s/usr/src/linux/include/asm-i386asm
#ln-s/usr/src/linux/include/linuxlinux
#ln-s/usr/src/linux/include/scsiscsi
#cd/usr/src/linux
#makemrproper
三.增量補丁
有時不需要完全重新安裝,只需打增量補丁,類似升級,在核心原始碼樹根目錄執行:
patch-p1<../patch-x.y.z
四.核心原始碼樹目錄:
arch:包含和硬體體系結構相關的程式碼,每種平臺佔一個相應的目錄。和32位PC相關的程式碼存放在i386目錄下,其中比較重要的包括kernel(核心核心部分)、mm(記憶體管理)、math-emu(浮點單元模擬)、lib(硬體相關工具函式)、boot(載入程式)、pci(PCI匯流排)和power(CPU相關狀態)。
block:部分塊裝置驅動程式。
crypto:常用加密和雜湊演算法(如AES、SHA等),還有一些壓縮和CRC校驗演算法。
Documentation:關於核心各部分的通用解釋和註釋。
drivers:裝置驅動程式,每個不同的驅動佔用一個子目錄。
fs:各種支援的檔案系統,如ext、fat、ntfs等。
include:標頭檔案。其中,和系統相關的標頭檔案被放置在linux子目錄下。
init:核心初始化程式碼(注意不是系統引導程式碼)。
ipc:程序間通訊的程式碼。
kernel:核心的最核心部分,包括程序排程、定時器等,和平臺相關的一部分程式碼放在arch/*/kernel目錄下。
lib:庫檔案程式碼。
mm:記憶體管理程式碼,和平臺相關的一部分程式碼放在arch/*/mm目錄下。
net:網路相關程式碼,實現了各種常見的網路協議。
scripts:用於配置核心檔案的指令碼檔案。
security:主要是一個SELinux的模組。
sound:常用音訊裝置的驅動程式等。
usr:實現了一個cpio。
在i386體系下,系統引導將從arch/i386/kernel/head.s開始執行,並進而轉移到init/main.c中的main()函式初始化核心。
五.配置核心
核心配置方法有三種:
(1)命令列:makeconfig
(2)選單模式的配置介面:makemenuconfig
(3)Xwindow:makexconfig
Linux的核心配置程式提供了一系列配置選項。對於每一個配置選項,使用者可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支援或裝置驅動程式編譯進核心;"m"表示將相應特性的支援或裝置驅動程式編譯成可載入模組,在需要時,可由系統或使用者自行加入到核心中去;"n"表示核心不提供相應特性或驅動程式的支援。由於核心的配置選項非常多,本文只介紹一些比較重要的選項。
1、Codematurityleveloptions(程式碼成熟度選項)
Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)[N/y/?]如果使用者想要使用還處於測試階段的程式碼或驅動,可以選擇“y”。如果想編譯出一個穩定的核心,則要選擇“n”。
2、Processortypeandfeatures(處理器型別和特色)
(1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX)[PPro/6x86MX]選擇處理器型別,預設為Ppro/6x86MX。
(2)、MaximumPhysicalMemory(1GB,2GB)[1GB]核心支援的最大記憶體數,預設為1G。
(3)、Mathemulation(CONFIG_MATH_EMULATION)[N/y/?]協處理器模擬,預設為不模擬。
(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)[N/y/?]
選擇該選項,系統將生成/proc/mtrr檔案對MTRR進行管理,供Xserver使用。
(5)、Symmetricmulti-processingsupport(CONFIG_SMP)[Y/n/?]選擇“y”,核心將支援對稱多處理器。
3、Loadablemodulesupport(可載入模組支援)
(1)、Enableloadablemodulesupport(CONFIG_MODULES)[Y/n/?]選擇“y”,核心將支援載入模組。
(2)、Kernelmoduleloader(CONFIG_KMOD)[N/y/?]選擇“y”,核心將自動載入那些可載入模組,否則需要使用者手工載入。
4、Generalsetup(一般設定)
(1)、Networkingsupport(CONFIG_NET)[Y/n/?]該選項設定是否在核心中提供網路支援。
(2)、PCIsupport(CONFIG_PCI)[Y/n/?]該選項設定是否在核心中提供PCI支援。
(3)、PCIaccessmode(BIOS,Direct,Any)[Any]該選項設定Linux探測PCI裝置的方式。選擇“BIOS”,Linux將使用BIOS;選擇“Direct”,Linux將不透過BIOS;選擇“Any”,Linux將直接探測PCI裝置,如果失敗,再使用BIOS。
(4)Parallelportsupport(CONFIG_PARPORT)[N/y/m/?]選擇“y”,核心將支援平行口。
5、PlugandPlayconfiguration(即插即用裝置支援)
(1)、PlugandPlaysupport(CONFIG_PNP)[Y/m/n/?]選擇“y”,核心將自動配置即插即用裝置。
(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)[Y/m/n/?]選擇“y”,核心將自動配置基於ISA匯流排的即插即用裝置。
6、Blockdevices(塊裝置)
(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)[Y/m/n/?]選擇“y”,核心將提供對軟盤的支援。
(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)[Y/m/n/?]選擇“y”,核心將提供對增強IDE硬碟、CDROM和磁帶機的支援。
7、Networkingoptions(網路選項)
(1)、Packetsocket(CONFIG_PACKET)[Y/m/n/?]選擇“y”,一些應用程式將使用Packet協議直接同網路裝置通訊,而不透過核心中的其它中介協議。
(2)、Networkfirewalls(CONFIG_FIREWALL)[N/y/?]選擇“y”,核心將支援防火牆。
(3)、TCP/IPnetworking(CONFIG_INET)[Y/n/?]選擇“y”,核心將支援TCP/IP協議。
(4)TheIPXprotocol(CONFIG_IPX)[N/y/m/?]選擇“y”,核心將支援IPX協議。
(5)、AppletalkDDP(CONFIG_ATALK)[N/y/m/?]選擇“y”,核心將支援AppletalkDDP協議。
8、SCSIsupport(SCSI支援)
如果使用者要使用SCSI裝置,可配置相應選項。
9、Networkdevicesupport(網路裝置支援)
Networkdevicesupport(CONFIG_NETDEVICES)[Y/n/?]選擇“y”,核心將提供對網路驅動程式的支援。
10、Ethernet(10or100Mbit)(10M或100M乙太網)
在該項設定中,系統提供了許多網絡卡驅動程式,使用者只要選擇自己的網絡卡驅動就可以了。此外,使用者還可以根據需要,在核心中加入對FDDI、PPP、SLIP和無線LAN(WirelessLAN)的支援。
11、Characterdevices(字元裝置)
(1)、Virtualterminal(CONFIG_VT)[Y/n/?]選擇“y”,核心將支援虛擬終端。
(2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)[Y/n/?]
選擇“y”,核心可將一個虛擬終端用作系統控制檯。
(3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)[Y/m/n/?]
選擇“y”,核心將支援序列口。
(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)[N/y/?]
選擇“y”,核心可將一個序列口用作系統控制檯。
12、Mice(滑鼠)
PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)[Y/n/?]如果使用者使用的是PS/2滑鼠,則該選項應該選擇“y”。
13、Filesystems(檔案系統)
(1)、Quotasupport(CONFIG_QUOTA)[N/y/?]選擇“y”,核心將支援磁碟限額。
(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)[Y/m/n/?]選擇“y”,核心將提供對automounter的支援,使系統在啟動時自動mount遠端檔案系統。
(3)、DOSFATfssupport(CONFIG_FAT_FS)[N/y/m/?]選擇“y”,核心將支援DOSFAT檔案系統。
(4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)[Y/m/n/?]
選擇“y”,核心將支援ISO9660CDROM檔案系統。
(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)[N/y/m/?]
選擇“y”,使用者就可以以只讀方式訪問NTFS檔案系統。
(6)、/procfilesystemsupport(CONFIG_PROC_FS)[Y/n/?]/proc是存放Linux系統執行狀態的虛擬檔案系統,該項必須選擇“y”。
(7)、Secondextendedfssupport(CONFIG_EXT2_FS)[Y/m/n/?]EXT2是Linux的標準檔案系統,該項也必須選擇“y”。
14、NetworkFileSystems(網路檔案系統)
(1)、NFSfilesystemsupport(CONFIG_NFS_FS)[Y/m/n/?]選擇“y”,核心將支援NFS檔案系統。
(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)
選擇“y”,核心將支援SMB檔案系統。
(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)
選擇“y”,核心將支援NCP檔案系統。
15、PartitionTypes(分割槽型別)
該選項支援一些不太常用的分割槽型別,使用者如果需要,在相應的選項上選擇“y”即可。
16、Consoledrivers(控制檯驅動)
VGAtextconsole(CONFIG_VGA_CONSOLE)[Y/n/?]選擇“y”,使用者就可以在標準的VGA顯示方式下使用Linux了。
17、Sound(聲音)
Soundcardsupport(CONFIG_SOUND)[N/y/m/?]選擇“y”,核心就可提供對音效卡的支援。
18、Kernelhacking(核心監視)
MagicSysRqkey(CONFIG_MAGIC_SYSRQ)[N/y/?]選擇“y”,使用者就可以對系統進行部分控制。一般情況下選擇“n”。
六、編譯核心
(一)、建立編譯時所需的從屬檔案
#makedep
(二)、清除核心編譯的目標檔案
#makeclean
(三)、編譯核心
#makezImage
核心編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新核心的映像檔案zImage。如果編譯的核心很大的話,系統會提示你使用makebzImage命令來編譯。這時,編譯程式就會生成一個名叫bzImage的核心映像檔案。
(四)、編譯可載入模組
如果使用者在配置核心時設定了可載入模組,則需要對這些模組進行編譯,以便將來使用insmod命令進行載入。
#makemodules
#makemodelus_install
編譯成功後,系統會在/lib/modules目錄下生成一個2.3.14子目錄,裡面存放著新核心的所有可載入模組。
七、啟動新核心
(一)、將新核心和System.map檔案複製到/boot目錄下
#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14
#cp/usr/src/linux/System.map/boot/System.map-2.3.14
#cd/boot
#rm-fSystem.map
#ln-sSystem.map-2.3.14System.map
(二)、配置/etc/lilo.conf檔案。在該檔案中加入下面幾行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
(三)、使新配置生效
#/sbin/lilo
(四)、重新啟動系統
#/sbin/reboot
新核心如果不能正常啟動,使用者可以在LILO:提示符下啟動舊核心。然後查出故障原因,重新編譯新核心即可。
一、獲取核心原始碼
二、解壓核心原始碼
首先以root帳號登入,然後進入/usr/src子目錄。如果使用者在安裝Linux時,安裝了核心的原始碼,則會發現一個linux-x.y.z的子目錄。該目錄下存放著核心x.y.z的原始碼。此外,還會發現一個指向該目錄的連結linux。刪除該連線,然後將新核心的原始檔複製到/usr/src目錄中,並解壓:
#tarzxvfLinux-2.3.14.tar.gz
檔案釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了核心2.3.14的全部原始碼。將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi連結到/usr/src/linux/include目錄下的對應目錄中。
#cd/usr/include
#rm-Rfasmlinux
#ln-s/usr/src/linux/include/asm-i386asm
#ln-s/usr/src/linux/include/linuxlinux
#ln-s/usr/src/linux/include/scsiscsi
#cd/usr/src/linux
#makemrproper
三.增量補丁
有時不需要完全重新安裝,只需打增量補丁,類似升級,在核心原始碼樹根目錄執行:
patch-p1<../patch-x.y.z
四.核心原始碼樹目錄:
arch:包含和硬體體系結構相關的程式碼,每種平臺佔一個相應的目錄。和32位PC相關的程式碼存放在i386目錄下,其中比較重要的包括kernel(核心核心部分)、mm(記憶體管理)、math-emu(浮點單元模擬)、lib(硬體相關工具函式)、boot(載入程式)、pci(PCI匯流排)和power(CPU相關狀態)。
block:部分塊裝置驅動程式。
crypto:常用加密和雜湊演算法(如AES、SHA等),還有一些壓縮和CRC校驗演算法。
Documentation:關於核心各部分的通用解釋和註釋。
drivers:裝置驅動程式,每個不同的驅動佔用一個子目錄。
fs:各種支援的檔案系統,如ext、fat、ntfs等。
include:標頭檔案。其中,和系統相關的標頭檔案被放置在linux子目錄下。
init:核心初始化程式碼(注意不是系統引導程式碼)。
ipc:程序間通訊的程式碼。
kernel:核心的最核心部分,包括程序排程、定時器等,和平臺相關的一部分程式碼放在arch/*/kernel目錄下。
lib:庫檔案程式碼。
mm:記憶體管理程式碼,和平臺相關的一部分程式碼放在arch/*/mm目錄下。
net:網路相關程式碼,實現了各種常見的網路協議。
scripts:用於配置核心檔案的指令碼檔案。
security:主要是一個SELinux的模組。
sound:常用音訊裝置的驅動程式等。
usr:實現了一個cpio。
在i386體系下,系統引導將從arch/i386/kernel/head.s開始執行,並進而轉移到init/main.c中的main()函式初始化核心。
五.配置核心
#cd/usr/src/linux
核心配置方法有三種:
(1)命令列:makeconfig
(2)選單模式的配置介面:makemenuconfig
(3)Xwindow:makexconfig
Linux的核心配置程式提供了一系列配置選項。對於每一個配置選項,使用者可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支援或裝置驅動程式編譯進核心;"m"表示將相應特性的支援或裝置驅動程式編譯成可載入模組,在需要時,可由系統或使用者自行加入到核心中去;"n"表示核心不提供相應特性或驅動程式的支援。由於核心的配置選項非常多,本文只介紹一些比較重要的選項。
1、Codematurityleveloptions(程式碼成熟度選項)
Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)[N/y/?]如果使用者想要使用還處於測試階段的程式碼或驅動,可以選擇“y”。如果想編譯出一個穩定的核心,則要選擇“n”。
2、Processortypeandfeatures(處理器型別和特色)
(1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX)[PPro/6x86MX]選擇處理器型別,預設為Ppro/6x86MX。
(2)、MaximumPhysicalMemory(1GB,2GB)[1GB]核心支援的最大記憶體數,預設為1G。
(3)、Mathemulation(CONFIG_MATH_EMULATION)[N/y/?]協處理器模擬,預設為不模擬。
(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)[N/y/?]
選擇該選項,系統將生成/proc/mtrr檔案對MTRR進行管理,供Xserver使用。
(5)、Symmetricmulti-processingsupport(CONFIG_SMP)[Y/n/?]選擇“y”,核心將支援對稱多處理器。
3、Loadablemodulesupport(可載入模組支援)
(1)、Enableloadablemodulesupport(CONFIG_MODULES)[Y/n/?]選擇“y”,核心將支援載入模組。
(2)、Kernelmoduleloader(CONFIG_KMOD)[N/y/?]選擇“y”,核心將自動載入那些可載入模組,否則需要使用者手工載入。
4、Generalsetup(一般設定)
(1)、Networkingsupport(CONFIG_NET)[Y/n/?]該選項設定是否在核心中提供網路支援。
(2)、PCIsupport(CONFIG_PCI)[Y/n/?]該選項設定是否在核心中提供PCI支援。
(3)、PCIaccessmode(BIOS,Direct,Any)[Any]該選項設定Linux探測PCI裝置的方式。選擇“BIOS”,Linux將使用BIOS;選擇“Direct”,Linux將不透過BIOS;選擇“Any”,Linux將直接探測PCI裝置,如果失敗,再使用BIOS。
(4)Parallelportsupport(CONFIG_PARPORT)[N/y/m/?]選擇“y”,核心將支援平行口。
5、PlugandPlayconfiguration(即插即用裝置支援)
(1)、PlugandPlaysupport(CONFIG_PNP)[Y/m/n/?]選擇“y”,核心將自動配置即插即用裝置。
(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)[Y/m/n/?]選擇“y”,核心將自動配置基於ISA匯流排的即插即用裝置。
6、Blockdevices(塊裝置)
(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)[Y/m/n/?]選擇“y”,核心將提供對軟盤的支援。
(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)[Y/m/n/?]選擇“y”,核心將提供對增強IDE硬碟、CDROM和磁帶機的支援。
7、Networkingoptions(網路選項)
(1)、Packetsocket(CONFIG_PACKET)[Y/m/n/?]選擇“y”,一些應用程式將使用Packet協議直接同網路裝置通訊,而不透過核心中的其它中介協議。
(2)、Networkfirewalls(CONFIG_FIREWALL)[N/y/?]選擇“y”,核心將支援防火牆。
(3)、TCP/IPnetworking(CONFIG_INET)[Y/n/?]選擇“y”,核心將支援TCP/IP協議。
(4)TheIPXprotocol(CONFIG_IPX)[N/y/m/?]選擇“y”,核心將支援IPX協議。
(5)、AppletalkDDP(CONFIG_ATALK)[N/y/m/?]選擇“y”,核心將支援AppletalkDDP協議。
8、SCSIsupport(SCSI支援)
如果使用者要使用SCSI裝置,可配置相應選項。
9、Networkdevicesupport(網路裝置支援)
Networkdevicesupport(CONFIG_NETDEVICES)[Y/n/?]選擇“y”,核心將提供對網路驅動程式的支援。
10、Ethernet(10or100Mbit)(10M或100M乙太網)
在該項設定中,系統提供了許多網絡卡驅動程式,使用者只要選擇自己的網絡卡驅動就可以了。此外,使用者還可以根據需要,在核心中加入對FDDI、PPP、SLIP和無線LAN(WirelessLAN)的支援。
11、Characterdevices(字元裝置)
(1)、Virtualterminal(CONFIG_VT)[Y/n/?]選擇“y”,核心將支援虛擬終端。
(2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)[Y/n/?]
選擇“y”,核心可將一個虛擬終端用作系統控制檯。
(3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)[Y/m/n/?]
選擇“y”,核心將支援序列口。
(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)[N/y/?]
選擇“y”,核心可將一個序列口用作系統控制檯。
12、Mice(滑鼠)
PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)[Y/n/?]如果使用者使用的是PS/2滑鼠,則該選項應該選擇“y”。
13、Filesystems(檔案系統)
(1)、Quotasupport(CONFIG_QUOTA)[N/y/?]選擇“y”,核心將支援磁碟限額。
(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)[Y/m/n/?]選擇“y”,核心將提供對automounter的支援,使系統在啟動時自動mount遠端檔案系統。
(3)、DOSFATfssupport(CONFIG_FAT_FS)[N/y/m/?]選擇“y”,核心將支援DOSFAT檔案系統。
(4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)[Y/m/n/?]
選擇“y”,核心將支援ISO9660CDROM檔案系統。
(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)[N/y/m/?]
選擇“y”,使用者就可以以只讀方式訪問NTFS檔案系統。
(6)、/procfilesystemsupport(CONFIG_PROC_FS)[Y/n/?]/proc是存放Linux系統執行狀態的虛擬檔案系統,該項必須選擇“y”。
(7)、Secondextendedfssupport(CONFIG_EXT2_FS)[Y/m/n/?]EXT2是Linux的標準檔案系統,該項也必須選擇“y”。
14、NetworkFileSystems(網路檔案系統)
(1)、NFSfilesystemsupport(CONFIG_NFS_FS)[Y/m/n/?]選擇“y”,核心將支援NFS檔案系統。
(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)
選擇“y”,核心將支援SMB檔案系統。
(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)
選擇“y”,核心將支援NCP檔案系統。
15、PartitionTypes(分割槽型別)
該選項支援一些不太常用的分割槽型別,使用者如果需要,在相應的選項上選擇“y”即可。
16、Consoledrivers(控制檯驅動)
VGAtextconsole(CONFIG_VGA_CONSOLE)[Y/n/?]選擇“y”,使用者就可以在標準的VGA顯示方式下使用Linux了。
17、Sound(聲音)
Soundcardsupport(CONFIG_SOUND)[N/y/m/?]選擇“y”,核心就可提供對音效卡的支援。
18、Kernelhacking(核心監視)
MagicSysRqkey(CONFIG_MAGIC_SYSRQ)[N/y/?]選擇“y”,使用者就可以對系統進行部分控制。一般情況下選擇“n”。
六、編譯核心
(一)、建立編譯時所需的從屬檔案
#cd/usr/src/linux
#makedep
(二)、清除核心編譯的目標檔案
#makeclean
(三)、編譯核心
#makezImage
核心編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新核心的映像檔案zImage。如果編譯的核心很大的話,系統會提示你使用makebzImage命令來編譯。這時,編譯程式就會生成一個名叫bzImage的核心映像檔案。
(四)、編譯可載入模組
如果使用者在配置核心時設定了可載入模組,則需要對這些模組進行編譯,以便將來使用insmod命令進行載入。
#makemodules
#makemodelus_install
編譯成功後,系統會在/lib/modules目錄下生成一個2.3.14子目錄,裡面存放著新核心的所有可載入模組。
七、啟動新核心
(一)、將新核心和System.map檔案複製到/boot目錄下
#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14
#cp/usr/src/linux/System.map/boot/System.map-2.3.14
#cd/boot
#rm-fSystem.map
#ln-sSystem.map-2.3.14System.map
(二)、配置/etc/lilo.conf檔案。在該檔案中加入下面幾行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
(三)、使新配置生效
#/sbin/lilo
(四)、重新啟動系統
#/sbin/reboot
新核心如果不能正常啟動,使用者可以在LILO:提示符下啟動舊核心。然後查出故障原因,重新編譯新核心即可。