快速修復(fù)一個(gè)Panic的Linux內(nèi)核的技巧

    感謝腳本之家網(wǎng)友 鳶一雨音 的投稿

    寫這篇文章是有原因的。愛(ài)掏網(wǎng) - it200.com為了配置完全的靜默啟動(dòng),筆者對(duì)自己的工作計(jì)算機(jī)上運(yùn)行的Linux執(zhí)行了不當(dāng)?shù)膍kinitcpio操作,原因是忽略了mkinitcpio.conf文件中的一處邏輯錯(cuò)誤。愛(ài)掏網(wǎng) - it200.com這使得mkinitcpio生產(chǎn)了新的內(nèi)核文件,但這個(gè)內(nèi)核文件不能正常工作。愛(ài)掏網(wǎng) - it200.com重啟的時(shí)候,內(nèi)核啟動(dòng)中止于Panic狀態(tài)。愛(ài)掏網(wǎng) - it200.com

    一般情況下,新內(nèi)核不能正常工作時(shí),可以通過(guò)使用initramfs內(nèi)核文件的fallback版本來(lái)臨時(shí)啟動(dòng)系統(tǒng),甚至可以直接將fallback版本覆蓋回去以回退更改,但這次要命的是,mkinitcpio同時(shí)修改了vmlinuz內(nèi)核文件,而且vmlinuz沒(méi)有fallback版本。愛(ài)掏網(wǎng) - it200.com對(duì)于一般用戶,可以直接重裝系統(tǒng)解決;但是筆者的工作站環(huán)境配置相當(dāng)復(fù)雜,這意味著除了可能損失我的工作文件之外,我還需要花費(fèi)大量額外的時(shí)間來(lái)重配開(kāi)發(fā)環(huán)境。愛(ài)掏網(wǎng) - it200.com

    注意本教程之“修復(fù)”,指“嘗試回退毀滅性的人為更改”,故不可用于恢復(fù)不知原因的內(nèi)核崩潰。愛(ài)掏網(wǎng) - it200.com

    一、從LiveCD啟動(dòng)并查看磁盤

    憑著兼職Linux服務(wù)器運(yùn)維那段時(shí)間積累的經(jīng)驗(yàn),我立即想到可以用LiveCD啟動(dòng)來(lái)獲得一個(gè)臨時(shí)的、用于修復(fù)內(nèi)核的Linux環(huán)境。愛(ài)掏網(wǎng) - it200.com

    筆者使用的是Arch Linux 64位版,所以我從從Arch Linux的LiveCD啟動(dòng)。愛(ài)掏網(wǎng) - it200.com正確進(jìn)入LiveCD內(nèi)建的root用戶之后,我們需要查看自己的主硬盤的設(shè)備名。愛(ài)掏網(wǎng) - it200.com執(zhí)行fdisk -l,在筆者的情況下,我的主硬盤、掛載至根目錄的分區(qū)對(duì)應(yīng)的設(shè)備文件是/dev/sdb2。愛(ài)掏網(wǎng) - it200.com

    二、chroot至硬盤上的系統(tǒng)根目錄

    要chroot到硬盤上的系統(tǒng)根目錄,并能正常調(diào)用硬盤上的系統(tǒng)組件對(duì)硬盤上的系統(tǒng)作出更改,我們首先要手動(dòng)掛載硬盤上的根分區(qū)。愛(ài)掏網(wǎng) - it200.com執(zhí)行(我的設(shè)備文件是/dev/sdb2):

    mount /dev/sdb2 /mnt

    先不要急。愛(ài)掏網(wǎng) - it200.com這時(shí)候chroot到/mnt雖然能進(jìn)入硬盤上主系統(tǒng)的bash,但是你幾乎不能正確完成任何復(fù)雜的任務(wù),因?yàn)檫€有一些重要的目錄沒(méi)有掛載。愛(ài)掏網(wǎng) - it200.com我們執(zhí)行指令,分別掛載proc目錄、/sys目錄、/dev目錄和/run目錄。愛(ài)掏網(wǎng) - it200.com進(jìn)入/mnt,分別執(zhí)行:

    mount -t proc proc proc/

    mount --rbind /sys sys/

    mount --rbind /dev dev/

    mount --rbind /run run/

    這些目錄的作用分別是:

    proc目錄:虛擬的、Procfs格式的文件系統(tǒng),用于存放進(jìn)程狀態(tài)文件(在Linux下,這些文件表面看起來(lái)都是文本文件,實(shí)際上是進(jìn)程狀態(tài)的文件映射);

    /sys目錄:對(duì)于Arch Linux,這是一個(gè)類似proc目錄的、Sysfs格式的虛擬文件系統(tǒng),用于儲(chǔ)存連接到系統(tǒng)的設(shè)備文件;對(duì)于傳統(tǒng)Unix和類Unix,它是一個(gè)指向內(nèi)核代碼樹的軟鏈接;

    /dev目錄:儲(chǔ)存設(shè)備文件,比如你的硬盤就是/dev/sdXY之類的;

    /run目錄:存放最近的啟動(dòng)之后系統(tǒng)的部分信息;

    掛載了這些東西之后,我們可以chroot到我們的主硬盤的根目錄了:

    chroot /mnt

    后悔藥++。愛(ài)掏網(wǎng) - it200.com對(duì)于我來(lái)說(shuō),我只需要修改mkinitcpio.conf文件并重新執(zhí)行mkinitcpio操作,就能重新生成正確的內(nèi)核文件。愛(ài)掏網(wǎng) - it200.com一般的,如果是錯(cuò)誤地修改了配置導(dǎo)致的內(nèi)核Panic,這個(gè)環(huán)境可以解決大部分問(wèn)題。愛(ài)掏網(wǎng) - it200.com

    三、一些技巧

    1、許多配置文件在LiveCD里的那個(gè)系統(tǒng)里有正確的版本或范本,如果不記得正常的時(shí)候是什么樣子的,可以參照一下它們;

    2、對(duì)于Arch Linux,可以在不chroot到/mnt的情況下,直接使用pacstrap指令對(duì)/mnt這個(gè)掛載點(diǎn)進(jìn)行軟件包管理;

    3、可以在兩個(gè)tty下操作,這樣在chroot到/mnt下之后依然能從LiveCD的文件系統(tǒng)里向/mnt轉(zhuǎn)移文件。愛(ài)掏網(wǎng) - it200.com

    本教程應(yīng)該對(duì)大部分Linux發(fā)行版都可用,希望能對(duì)部分Linux用戶產(chǎn)生幫助。愛(ài)掏網(wǎng) - it200.com

    相關(guān)推薦:

    Linux系統(tǒng)怎么配置雙顯卡?

    聲明:所有內(nèi)容來(lái)自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評(píng)論
    更多 網(wǎng)友評(píng)論0 條評(píng)論)
    暫無(wú)評(píng)論

    返回頂部

    主站蜘蛛池模板: 一区二区国产在线播放| 国产精品亚洲一区二区在线观看| 亚洲天堂一区二区三区| 国产成人高清亚洲一区91| 亚洲一区免费观看| 中文字幕在线一区| 一区二区手机视频| 一区二区精品在线观看| 亚洲av无码一区二区三区在线播放 | 日韩三级一区二区三区| 78成人精品电影在线播放日韩精品电影一区亚洲 | 久久国产午夜精品一区二区三区| 国产精品久久一区二区三区| 亚洲av无码不卡一区二区三区| 亚洲国产一区二区视频网站| 动漫精品一区二区三区3d | 中文字幕在线精品视频入口一区| 精品一区二区三区在线视频观看| 精品国产一区二区三区在线 | 少妇精品无码一区二区三区 | 91福利国产在线观看一区二区 | 日韩在线视频不卡一区二区三区 | 国模吧一区二区三区精品视频| 中文字幕乱码人妻一区二区三区| 国产免费一区二区三区| 亚洲性无码一区二区三区| 亚洲码欧美码一区二区三区| 亚洲中文字幕一区精品自拍| 国产成人久久一区二区不卡三区| 日韩视频免费一区二区三区| 国产一区风间由美在线观看| 夜夜爽一区二区三区精品| 国产伦精品一区二区三区在线观看| 国产精品一区二区综合| 武侠古典一区二区三区中文| 精品久久久久中文字幕一区| 亚洲av无码一区二区三区乱子伦| 久久伊人精品一区二区三区| 国产怡春院无码一区二区| 四虎永久在线精品免费一区二区| 日韩人妻无码一区二区三区综合部|