虛擬機器RedHat9 linux2.4核心升級為linux 2.6

來源:互聯網
上載者:User
 

虛擬機器RedHat9 linux2.4核心升級為linux 2.6

前期準備:

1.去linux的官方網站上下一個linux 2.6的核心!http://www.kernel.org;

2.安裝一個modules-init-tools-3.0.tar.gz工具包,因為2.4.x的modutils工具包已經不適合新的2.6.x核心,必須將它升級到modele-init-tools工具包。可以到
http://www.kernel.org/pub/linux/utils/kernel/modele-init-tools-3.0.tar.gz下載

3.安裝modele-init-tools工具包
#configure --prefix=/
#make moveold (將原來的工具程式改名,這樣還可繼續使用原來的2.4.x核心)
#make all install

#./generate-modprobe.conf /etc/modprobe.conf(產生2.6.x核心的新設定檔)

 

4.安裝Mkinitrd 4.1.18-2 工具包,將目前的目錄切換到mkinitrd-4.1.18-2.i386.rpm、device-mapper-1.00.19-2.i386.rpm和lvm2-2.00.25-1.01.i386.rpm的下載目錄(三個檔案最好在同一目錄)下,依次執行如下命令(注意,這裡是有序的執行):

rpm -ivh --nodeps --force device-mapper-1.00.19-2.i386.rpm

rpm -ivh --nodeps --force lvm2-2.00.25-1.01.i386.rpm

rpm -ivh --nodeps --force mkinitrd-4.1.18-2.i386.rpm

5.安裝binutils-2.17.tar.gz,(這個是升級虛擬機器中的LINUX所必備的),依次執行如下命令:

tar zxf binutils-2.17.tar.gz

cd binutils-2.17

./configure

make

make install

(以上的東東也可以在http://download.chinaunix.net/disc/linux/下載,我試過了,挺快)

6.在升級之前,還要確定以下一些軟體不低於以下的版本:
Name:         Minimum version:     How to find version:
Gnu C Compiler       2.95.3          gcc--version
Gnu Make             3.78            make--version
binutils             2.12            ld-v
util-linux           2.10o           fdformat--version
module-init-tools    0.9.9           depmod-V
procps               2.0.9           ps--version
(參見“Documentation/Change”中的最新更新)

 

接下來正式開始升級:

1.     #tar xzvf linux-2.6.20.tar.gz /usr/src/
       #./configure   //產生Makefile檔案,如果已經有Makefile這步就沒必要了
       #make menuconfig    //開始配置核心
    關於menuconfig中的配置,以下幾點值得注意:

o 關於"Loadable Module support"選項, 一定要選上"Module unloading"和"Automatic kernel module loading"這兩個選項.
o 關於"Processor type and features"選項, 一定要選上"Preemptible Kernel"選項, 這是2.6.x核心優於2.4.x核心的重要原因之一.
o 關於"Device Driver"的主菜單裡配置以下內容:
                       o 關於"Block Devices"的配置, 一定要選上對loopback和ramdisk的支援.
                    o 關於"Multi-device support(RAID and LVM)", 要選上"device mapper".
                    o 關於"Input device support", 記得要選上"Keyboards"和"Mice"的支援.
                    o 關於"Graphics support", 要選上對frame buffer的支援.
                    o 關於sound選項裡,與ALSA有關的, 要選上"OSS API emulation"選項. OSS可以不用了.
                    o 關於USB, 能選的都選上
o關於檔案系統,常用的幾種一定要選上,比如
                    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
     注意1:另外,如果使用虛擬機器的一定要把sics的驅動選擇上

    配製好核心後儲存退出(儲存的名字推薦使用預設的.config,這樣做的好處是在下次再menuconfig時,它會自動自動裝載這次.config中的配置), 然後就可以直接編譯了, "make dep"這一步在2.6已經不需要了.

接下來可以開始編譯了:
    # make bzImage
注意2:在這一步快要完成時可能會出現一下錯誤提示:
....
  OBJCOPY arch/i386/boot/compressed/vmlinux.bin
BFD: Warning: Writing section `.bss' to huge (ie negative) file offset 0xc0277000.
objcopy: arch/i386/boot/compressed/vmlinux.bin: File truncated
make[2]: *** [arch/i386/boot/compressed/vmlinux.bin] Error 1
make[1]: *** [arch/i386/boot/compressed/vmlinux] Error 2
make: *** [bzImage] Error 2

解決辦法:
在arch/i386/Makefile裡面做一些修改:
將OBJCOPYFLAGS改成如下的:
OBJCOPYFLAGS := -O binary --change-section-lma .bss-0xc0000000 -R .note -R .comment -S
然後重新make bzImage     OK!

    # make modules
    # make modules_install
    # cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi
注意3:這一步用於解決SCSI硬碟+VMWARE+REDHAT架構中,因為BusLogic被編譯進了核心而不是一個module的形式(2.4核心的Buslogic模組即使靜態編譯進核心也不行)。解決方式是直接將BusLogic.o檔案複製過去.(如果不是SCSI硬碟+VMWARE+REDHAT架構中上面的拷貝可以省略)

    # make install
核心編譯到此就完全結束了,若想要成功啟動核心,還要做一些後續的工作。依次執行如下命令:
   # cp /usr/src/linux-2.6.20.14/arch/i386/boot/bzImage
   # /boot/vmlinuz-2.6.20.14
   # cp /usr/src/linux-2.6.20.14/System.map /boot/System.map-2.6.20.14
   # cd /boot
   # mkdir backup
儲存原來的System.map和vmlinuz到backup中。
接下來:
   # rm -rf System.map(刪除原有的核心啟動串連)
   # rm -rf vmlinux
   # ln -s System.map-2.6.20.14 System.map(設定新的核心啟動串連)
   # ln -s vmlinuz-2.6.20.14 vmlinuz

若你的Linux為GRUB啟動,則還要修改相應的開機檔案:
   # cd /boot
   # new-kernel-pkg --mkinitrd --depmod --install 2.6.20.14

   # df(該命令查看根分區,即標識為“/”的分區,看好後要記住它的名字,假設為/dev/sda1)
   # gedit /boot/grub/grub.conf
在彈出的編輯視窗中,將“default=1”改為“default=0”,並將“kernel”行的“LABEL=/”改為上一步所查看的分區,按我們上一步的假設,改完以後的“kernel”行應該是下面的樣子:
kernel /vmlinuz-2.6.20.14 ro root=/dev/sda1
好了,整個核心升級大功告成!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.