• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chaosuper85

            C++博客 首頁 新隨筆 聯系 聚合 管理
              118 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

            昨天開始就想要升級Redhat Linux 9.0的內核--2.14.20的

            找了個網頁,本來想升成2.6.24的,不成功!

            后來照樣畫葫蘆,升2.6.18的,照網頁一樣的來,成功了!

            不過還是想升級2.6.24的,又不行,有時間再做了!

            下面把網頁的貼出來,供借鑒。

            我的環境是vmware下的Redhat Linux 9.0的


            連不上網頁的同志們見下面:

            一、準備工作
            首先說明,下面帶#號的行都是要輸入的命令行,且本文提到的所有命令行都在終端里輸入。啟動Linux系統,并用根用戶登錄,進入終端模式下。

            1、查看Linux內核版本# uname -a
            如果屏幕顯示的是2.6.x,說明你的已經是2.6的內核,也用不著看下文了,該干什么干什么去吧!如果顯示的是2.4.x,那恭喜你,闖關通過,趕快進行下一步。

            2、下載2.6內核源碼
            下載地址:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2

            3、下載內核升級工具
            (1)下載module-init-tools-3.2.tar.bz2
            http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
            (2)下載mkinitrd-4.1.18-2.i386.rpm
            http://ayo.freshrpms.net/Fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm
            (3)下載lvm2-2.00.25-1.01.i386.rpm
            http://ayo.freshrpms.net/Fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm
            (4)下載device-mapper-1.00.19-2.i386.rpm
            http://ayo.freshrpms.net/Fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm

            二、配置工作
            好啦,2.6內核和4個升級工具都下載完了(少一個也不行,如果沒有下載齊全,請不要嘗試下面的步驟,升級是不會成功的),下面回到Linux系統中開始配置工作吧。

            4、將下載好的內核源碼包和4個升級工具都拷貝到/usr/src文件夾下。怎么拷貝就不用我教了吧~~~~不會拷貝的去撞墻吧!~~呵呵!

            5、拷貝完畢,開始解壓新內核,具體操作請依次執行以下命令:

            # cd /usr/src (進入到/usr/src目錄下,如果已經在/usr/src目錄下,可不執行該命令)
            # rm –rf linux (刪除linux文件夾。值得一提的是,如果內核先前從未編譯過,則沒有這個文件夾,此命令行可略過)
            # tar jvxf linux-2.6.18.tar.bz2 (解壓新內核)
            # ln -s linux-2.6.18 linux (重新生成linux文件夾)

            6、安裝module-init-tools工具
            在/usr/src目錄下,依次執行下列命令:
            # tar jvxf module-init-tools-3.2.tar.bz2 (解壓module-init-tools)
            # cd module-init-tools-3.2 (由/usr/src目錄進入module-init-tools目錄下)
            #./configure --prefix=/
            # make moveold
            # make all install
            #./generate-modprobe.conf /etc/modprobe.conf

            7、安裝另外三個升級工具
            回到/usr/src目錄下,依次執行下列3個命令來安裝另外三個升級工具:
            # rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,這里一定要加入--nodeps參數,下同)
            # rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm
            # rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm

            如果不更新以上幾個升級包,在后面編譯內核時會提示以下錯誤:
            mkinitrd failed
            make[1]: *** [install] Error 1
            make: *** [install] Error 2

            8、配置內核選項。有點繁瑣,~~希望一次成功哦~~。
            # cd linux-2.6.18 (進入到/usr/src/linux-2.6.18目錄下)
            # make mrproper (該命令可確保源代碼目錄下沒有不正確的.o文件)
            # make menuconfig (配置內核各選項)

            此時會出現一個圖形界面,列出了所有的內核配置選項,有的選項下還有子選項,你可以用方向鍵來選擇,用Y鍵來確定。經過我多次試驗,大多數選項默認就行,以下幾個選項必須選擇(請認真核對下面每一個選項,否則編譯很有可能前功盡棄):

            (1)Loadable Module support選項中,選上“Module unloading”和“Automatic kernel module loading”這兩項;
            (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”(如果是在實環境中,想要更多USB支持,就全選吧。我的是在虛擬機中,用不著了)
            Device Drivers --->;Network device support --->Ethernet (10 or 100Mbit) ---><*> AMD PCnet32 PCI support
            (3)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
            File system--->DOS/FAT/NT Filesystems --->選上“NTFS file system support”;

            注意:
            ext2和ext3文件系統配置很重要,也是必需的,如果對Ext3、Ext2文件的支持直接編譯進內核,在你reboot時機器就會當掉,出現如下錯誤信息:

            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

            (我的機器就是在重啟之后出現第三種錯誤,進不去系統,郁悶死,只好重裝了,如果依照本文做完所有步驟,當你重啟Linux系統后,若不幸進不去2.6.18內核,你會發現你的出錯信息就是上面三種了~~~哈!)

            (4)如果你在vmware下編譯內核,硬盤用的是scsi的,以下三個選項必選:
            Device Drivers ---><*>SCSI device support (此項不選的話,下面兩項就選擇不上)
            Device Drivers ---><*>SCSI device support ---><*>SCSI disk support
            Device Drivers---><8>SCSI device support--->SCSI low-level drivers---><*>; BusLogic SCSI support

            三、編譯工作
            OK,繁雜的配置工作完成了,至此,編譯前的準備工作都做好了!

            9、開始編譯啦……
            在/usr/src/linux-2.6.18目錄下,執行以下命令即可編譯。編譯需要一段時間,給自己倒杯茶耐心等候吧!
            # 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子目錄,里面存放著新內核的所有可加載模塊。
            # make install (安裝新內核)

            注意:
            make install的時候可能會出現如下錯誤信息:
            No module BusLogic found for kernel 2.4.12
            mkinitrd failed
            此問題一般只出現在SCSI硬盤+VMWARE+REDHAT架構中,因為BusLogic被編譯進了內核而不是一個module的形式(2.4內核的Buslogic模塊即使靜態編譯進內核也不行)。解決方式是直接將BusLogic.o文件復制過去:
            # cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi
            不過別忘記,復制過后再執行一下make install。這一步若卡住了,下面的都無法進行。

            四、啟動新內核
            10、將新內核和System.map文件拷貝到/boot目錄下,依次執行以下命令:
            # cp /usr/src/linux-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18
            # cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18
            # cd /boot (進入boot目錄)

            # rm –rf System.map (刪除原來的連接)
            # ln –s System.map-2.6.18 System.map (重新建立連接)

            11、修改Grub啟動管理器
            如果沒有錯誤的話, 下面開始修改grub配置文件(不要告訴我你用的lilo)
            在/boot目錄下,執行以下命令:
            # new-kernel-pkg --mkinitrd --depmod --install 2.6.18 (這時候你的/boot下會生成一個initrd-2.4.18.img,并且你的grub.conf文件也作了相應更改)

            # df (查看根目錄在那個分區,下一步要用到。注意,這里根分區不時boot的那個50M的分區,而一般是你最大的那個分區,也就是“/”,千萬不要搞錯哦。我的為 /dev/hda2)

            # vi /grub/grub.conf
            進入grub.conf文件,找到如下信息:
            default=1
            timeout=10
            splashimage=(hd0,0)/grub/splash.xpm.gz
            title Red Hat Linux (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(不改的話也可以,只不過重啟之后會默認進入2.4內核)
            (2) 將kernel行的“LABEL=/”換成根目錄所在的分區(上一步查看的就是)
            此步很重要,修改錯誤將可能導致進不去系統,我把我修改后的grub.conf文件列出來,不明之處,可以對照修改:
            default=0
            timeout=10
            splashimage=(hd0,0)/grub/splash.xpm.gz
            title Red Hat Linux (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 (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,大功告成!趕快重啟,看看升級后的2.6內核吧。

            根據以上內容重啟后有如下問題:

            A 不能上網

            #vi /etc/modules.config

            修改第一行如下:

            alias eth0 pcnet32

            重新激活網卡就行了。

            posted on 2009-08-04 19:43 chaosuper 閱讀(285) 評論(0)  編輯 收藏 引用
            久久精品成人| 麻豆精品久久精品色综合| 日韩亚洲国产综合久久久| 免费精品久久天干天干| 久久精品中文无码资源站| 一本色道久久88加勒比—综合| 久久精品中文字幕有码| 中文字幕日本人妻久久久免费 | 欧美国产成人久久精品| 精品久久久久久久无码| 久久91精品国产91久| 日本精品久久久中文字幕| 一本一本久久A久久综合精品| 色成年激情久久综合| 亚洲AV成人无码久久精品老人| 99久久人人爽亚洲精品美女| 色欲久久久天天天综合网精品| 久久www免费人成看国产片| 久久99精品久久久久久久久久| 久久精品极品盛宴观看| 色综合久久88色综合天天| 久久国产乱子伦免费精品| 亚洲综合熟女久久久30p| 日本久久中文字幕| 久久久亚洲精品蜜桃臀| 国产三级精品久久| 国内精品伊人久久久久网站| 国产午夜免费高清久久影院| 国产免费久久精品99re丫y| 久久久人妻精品无码一区 | 国产精品久久久久久福利69堂| 亚洲一区精品伊人久久伊人| 久久久精品国产亚洲成人满18免费网站 | 精品久久久久久久久久中文字幕 | 亚洲国产精品久久久天堂| 亚州日韩精品专区久久久| 国内精品久久久久久久涩爱| 国产亚洲美女精品久久久| 久久青青国产| 久久只有这精品99| 亚洲国产美女精品久久久久∴|