歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 使用RPM包對RedHat進行內核升級

使用RPM包對RedHat進行內核升級

日期:2017/2/27 9:26:33   编辑:更多Linux
  1.准備工作  1.1.確定是否要進行內核升級    通常需要進行內核升級是為了:    a.支持新安裝的硬件設備:比如您剛買了一塊新的聲卡,但是當前的內核沒有提供其驅動,而新版本內核可以驅動該聲卡。    b.當前的系統內核被發現有安全漏洞,需要升級到新的版本進行修復。    1.2.確定所需下載的rpm包    首先通過以下命令確定系統當前所安裝的內核包:    # rpm -qa grep kernel  kernel-source-2.4.2-2  kernel-headers-2.4.2-2  kernel-2.4.2-2    我們需要下載這三個包的新版本,以及以下三個非內核包的新版本:    [root@test update]# rpm -qa grep init  initscripts-5.83-1  mkinitrd-3.0.10-1  SysVinit-2.78-17    1.3.獲取新版本內核rpm包    從FTP://updates.redhat.com/7.1/en/os/i386/獲取以上六個個包的新版本的rpm包,也就是:    kernel-source-2.4.3-12.i386.rpm  kernel-headers-2.4.3-12.i386.rpm  kernel-2.4.3-12.i386.rpm  SysVinit-2.78-17.i386.rpm    因為當前RedHat只發布了SysVinit-2.78-17.i386.rpm,所以就只下載了這個包。    1.4.檢驗新版本內核rpm包    為了保證下載過程不出錯,使用以下命令對下載的包進行校驗:    # rpm -K --nogpg *rpm  kernel-2.4.3-12.i386.rpm: md5 OK  kernel-headers-2.4.3-12.i386.rpm: md5 OK  kernel-source-2.4.3-12.i386.rpm: md5 OK  SysVinit-2.78-17.i386.rpm: md5 OK    如果校驗結果為OK,說明傳輸過程沒問題,所下載的rpm包是完整的。就可以接著做下一步,如果rpm不完整,請重新下載一次,最好使用支持斷點續傳的下載工具進行下載。    1.5.制作應急啟動盤    使用以下命令制作一張系統啟動盤,以便在系統升級失敗後可以啟動及恢復老系統:    # mkbootdisk --device /dev/fd0 2.4.2-2  Insert a disk in /dev/fd0. Any information on the disk will be lost.  Press <Enter> to continue or ^C to abort:    2.4.2-2是當前的系統內核版本,可以使用以下命令進行確定:    # uname -r  2.4.2-2    2.升級內核  2.1.升級非內核rpm包:    #rpm –Uvh SysVinit-2.78-17.i386.rpm    2.2.升級內核源碼rpm包:    # rpm -Uvh kernel-source-2.4.3-12.i386.rpm kernel-headers-2.4.3-12.i386.rpm  Preparing... ########################################### [100%]  1:kernel-source ###########################################  [ 50%]  2:kernel-headers ###########################################  [100%]    2.3.升級內核rpm包:    # rpm -Uvh kernel-2.4.3-12.i386.rpm  Preparing... ########################################### [100%]  1:kernel ########################################### [100%]    2.4.重新配置初始化RAM盤    如果系統中有SCSI設備,並且正在使用SCSI設備驅動模塊,則必須重新配置初始化RAM盤,如果沒有SCSI設備,可以直接跳到第5個步驟。    判斷系統中是否有SCSI設備驅動模塊的方法:    # more /etc/modules.conf grep scsi  alias scsi_hostadapter megaraid  alias scsi_hostadapter1 sym53c8xx  alias scsi_hostadapter2 sym53c8xx    也即,如果這個命令有輸出時,表明您的系統正在使用SCSI設備驅動模塊,這時我們就必須重新配置初始化RAM盤。    所謂的RAM盤通常是用來駐留模塊的,這些模塊必須在內核訪問相關設備(通常是SISC設備)前載入RAM盤中。    首先,查看/boot下的文件,以獲取剛才安裝的內核版本:    # ls -l /boot/  total 3408  …  -rwxr-xr-x 1 root root 2174722 Jun 9 01:57 vmLinux-2.4.3-12  lrwxrwxrwx 1 root root 16 Jul 26 22:56 vmlinuz -> vmlinuz-2.4.3-12  …    可見,我們新的內核版本是2.4.3-12,我們使用以下命令來創建新的RAM盤:    #mkinitrd initrd-2.4.3.img 2.4.3-12  2.5.更新lilo信息    更新您的lilo.conf文件如下所示:    image=/boot/vmlinuz-<新安裝的內核版本號>  label=linux  root=<您的/分區>  initrd=/boot/initrd-<RAM盤的版本號>  read-only    我的機器上的lilo.conf更新文件如下:    # more /etc/lilo.conf  boot=/dev/hda  map=/boot/map  install=/boot/boot.b  prompt  timeout=50  message=/boot/message  linear  default=linux    image=/boot/vmlinuz-2.4.3-12  label=linux  read-only  root=/dev/hda1    更新完成後,別忘了執行lilo使其生效。然後就可以重新啟動了。




Copyright © Linux教程網 All Rights Reserved