亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1202 | 回復(fù): 0
打印 上一主題 下一主題

用kexec迅速切換內(nèi)核 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-11-07 18:12 |只看該作者 |倒序瀏覽

作者:d00m3d
來自: LinuxSir.Org
聲明:本文旨在技術(shù)探討,任何人如因本文而引起任何損毀,資料及精神損失等,或一切問題,本人絕不負(fù)責(zé),You are at your own risks!
前言
很早以前就希望實現(xiàn)如何不重置起動(冷起動 System reboot)就使用新建成或者測試不同版本的內(nèi)核,這個話題好像比較少人探討,我以前曾經(jīng)提問過,http://www.linuxsir.org/bbs/showthread.php?t=211738
也很感謝有兄弟提供正面的回覆,可是因為當(dāng)時水平有限,未能成功。今天為了紀(jì)念 linuxsir 重光,特書本文以示熱烈慶祝,歡賀一番:)

部驟

首先,有兩個先要滿足條件(Pre-requisites):
1.  內(nèi)核版本必需為 2.6.13 或以上,因為自該版本起內(nèi)置了 kexec 系統(tǒng)呼叫的程序。
2.  系統(tǒng)需要安裝 kexec-tools
內(nèi)核方面,主流發(fā)行版的內(nèi)核其實都已加入支持,所以用發(fā)行版內(nèi)核的話,基本不用擔(dān)心支援問題。
只要檢查 /boot/config-2.6.xxxxxxxx 就知道了
egrep KEXEC /boot/config-2.6.xxxxxxx
或者
cat /boot/config-2.6.xxxxxxx |grep KEXEC
答案是 y 便行。
如果內(nèi)核是自己動手編譯的話,請謹(jǐn)記加入 kexec 系統(tǒng)呼叫的支援:
Processor type and features --->
  • kexec system call (EXPERIMENTAL)
    至於安裝 kexec-tools 方面,可以編譯源碼或者用發(fā)行版提供的:
    如要編譯就先下載 kexec-tools 源碼,可以到內(nèi)核官方網(wǎng)站,路徑是:
    http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/
    今天為止,最新版本是 2.0.0:
    http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-2.0.0.tar.bz2
    tar xf kexec-tools-2.0.0.tar.bz2
    cd kexec-tools-2.0.0
    ./configure --prefix=/usr
    make
    再以 root 身分執(zhí)行
    make install
    以上會把下列東西安裝:
    /usr/lib/kexec-tools/kexec_test
    /usr/sbin/kdump
    /usr/sbin/kexec
    一般發(fā)行版或教材都是將命令放在 /sbin 里的,沒關(guān)系,就移一下吧:
    mv /usr/sbin/kdump /sbin/kdump
    mv /usr/sbin/kexec /sbin/kexec
    如果用發(fā)行版的就簡單一點,直接 apt-get,yum 回來,比如:
    apt-get install kexec-tools 或 emerge -av kexec-tools 之類,總之就是為了加入 /sbin/kexec 這個系統(tǒng)命令。
    如果一切順利,現(xiàn)在就有戲了。先檢查一下 /boot 里安裝了哪些內(nèi)核:
    d00m3d@BlackMesa:~$ ll /boot
    total 11224
    -rw-rw-r-- 1 root root  794675 Sep 24  2007 System.map-2.6.22.7
    -rw-rw-r-- 1 root root  853714 Jan 26  2008 System.map-2.6.24
    -rw-rw-r-- 1 root root  858565 Sep 16 16:13 System.map-2.6.25.14
    -rw-rw-r-- 1 root root  856752 May 27 13:15 System.map-2.6.25.4
    -rw-rw-r-- 1 root root   44436 Sep 24  2007 config-2.6.22.7
    -rw-rw-r-- 1 root root   47026 Jan 26  2008 config-2.6.24
    -rw-rw-r-- 1 root root   54631 Sep 16 16:13 config-2.6.25.14
    -rw-rw-r-- 1 root root   54581 May 21 10:49 config-2.6.25.4
    drwxr-xr-x 2 root root    4096 May 28 09:06 grub
    -rw-rw-r-- 1 root root 1866424 Sep 24  2007 lfskernel-2.6.22.7
    -rw-rw-r-- 1 root root 1947800 Jan 26  2008 lfskernel-2.6.24
    -rw-rw-r-- 1 root root 2024732 Sep 16 16:13 lfskernel-2.6.25.14
    -rw-rw-r-- 1 root root 2017244 May 27 13:15 lfskernel-2.6.25.4
    d00m3d@BlackMesa:~$
    再檢查下 /boot/grub/menu.lst 里加載內(nèi)核的語句,如:
    title LFS-SVN-20060528, kernel 2.6.25.4
    root (hd0,5)
    kernel /boot/lfskernel-2.6.25.4  root=/dev/sda6 ro nomce vga=0x317
    boot
    這是待加載內(nèi)核 2.6.25.4 的內(nèi)容及相關(guān)選項。
    要用 /sbin/kexec 加載另一內(nèi)核,語法是:
    kexec -l  --append=""
    也就是將內(nèi)核映像的名稱跟選項對號入座,我的情況就寫成:
    kexec -l /boot/lfskernel-2.6.25.4 --append="root=/dev/sda6 ro nomce vga=0x317"
    即可加載。
    我一直不喜歡使用 ramdisk 或者 initramfs 之類,所以沒有 initrd,如果系統(tǒng)需要使用 initrd,就將其正確路徑加入便行,如:
    kexec -l /boot/lfskernel-2.6.25.4 --append="root=/dev/sda6 ro nomce vga=0x317" --initrd=xxxxxxxxxxx
    想重啟內(nèi)核,就以 kexec -e 來切換。執(zhí)行情況如下:
    d00m3d@BlackMesa:~$
    d00m3d@BlackMesa:~$ su -
    Password:
    root@BlackMesa:~#
    root@BlackMesa:~# kexec -l /boot/lfskernel-2.6.25.4 --append="root=/dev/sda6 ro nomce vga=0x317"
    setup_linux_vesafb: 1024x768x16 @ e0000000 +300000
    root@BlackMesa:~# cat /proc/version
    Linux version 2.6.25.14 (d00m3d@BlackMesa) (gcc version 4.3.2 (GCC) ) #1 SMP PREEMPT Tue Sep 16 16:10:50 HKT 2008
    root@BlackMesa:~#
    當(dāng)前內(nèi)核是 2.6.25.14,準(zhǔn)備切換成 2.6.25.4
    root@BlackMesa:~# kexec -e
    經(jīng)過一輪熱起動系統(tǒng)設(shè)置後,系統(tǒng)會再次進(jìn)入登陸狀態(tài)。重新登陸:
    BlackMesa login: root
    Password:
    Last login: Wed May 28 09:40:34 +0800 2008 on tty1.
    No mail.
    root@BlackMesa:~#
    root@BlackMesa:~# cat /proc/version
    Linux
    version 2.6.25.4 (d00m3d@BlackMesa) (gcc version 4.3.1 20080523
    (prerelease) (GCC) ) #1 SMP PREEMPT Tue May 27 12:33:36 HKT 2008
    root@BlackMesa:~#
    嘿嘿,大功告成!
    補充一句,新加載的內(nèi)核也可以是:
    1. 當(dāng)前內(nèi)核本身,不停變更都可以的
    2. 或者是舊版沒有編入 kexec 系統(tǒng)呼叫支援的內(nèi)核,只不過 warm boot 啟動後再無法執(zhí)行 /sbin/kexec 去變更另一版了
    結(jié)語
    很多時候,冷啟動重啟系統(tǒng)是很討厭的,花時甚長,有了 /sbin/kexec,只要當(dāng)前內(nèi)核加入了 kexec 系統(tǒng)呼叫的支援,就能隨意切換另一版本的內(nèi)核,對經(jīng)常調(diào)試內(nèi)核或想嘗鮮的人提供了方便,好不快哉!
    d00m3d 敬上
    (2008年9月25日 Linuxsir 重光紀(jì)念)
    參考文獻(xiàn)
    http://www.ibm.com/developerworks/linux/library/l-kexec.html
    http://gentoo-wiki.com/TIP_kexec
    http://code.google.com/p/atv-bootloader/wiki/Understandingkexec
    PS:還有其他小貼士集合在此 【毀滅小貼士】集合 :)
    http://www.linuxsir.org/bbs/thread329032.html

                   
                   
                   

    本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/1127/showart_1386505.html
  • 您需要登錄后才可以回帖 登錄 | 注冊

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報專區(qū)
    中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP