快速修復一個Panic的Linux內核的技巧

    感謝腳本之家網友 鳶一雨音 的投稿

    寫這篇文章是有原因的。愛掏網 - it200.com為了配置完全的靜默啟動,筆者對自己的工作計算機上運行的Linux執行了不當的mkinitcpio操作,原因是忽略了mkinitcpio.conf文件中的一處邏輯錯誤。愛掏網 - it200.com這使得mkinitcpio生產了新的內核文件,但這個內核文件不能正常工作。愛掏網 - it200.com重啟的時候,內核啟動中止于Panic狀態。愛掏網 - it200.com

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

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

    一、從LiveCD啟動并查看磁盤

    憑著兼職Linux服務器運維那段時間積累的經驗,我立即想到可以用LiveCD啟動來獲得一個臨時的、用于修復內核的Linux環境。愛掏網 - it200.com

    筆者使用的是Arch Linux 64位版,所以我從從Arch Linux的LiveCD啟動。愛掏網 - it200.com正確進入LiveCD內建的root用戶之后,我們需要查看自己的主硬盤的設備名。愛掏網 - it200.com執行fdisk -l,在筆者的情況下,我的主硬盤、掛載至根目錄的分區對應的設備文件是/dev/sdb2。愛掏網 - it200.com

    二、chroot至硬盤上的系統根目錄

    要chroot到硬盤上的系統根目錄,并能正常調用硬盤上的系統組件對硬盤上的系統作出更改,我們首先要手動掛載硬盤上的根分區。愛掏網 - it200.com執行(我的設備文件是/dev/sdb2):

    mount /dev/sdb2 /mnt

    先不要急。愛掏網 - it200.com這時候chroot到/mnt雖然能進入硬盤上主系統的bash,但是你幾乎不能正確完成任何復雜的任務,因為還有一些重要的目錄沒有掛載。愛掏網 - it200.com我們執行指令,分別掛載proc目錄、/sys目錄、/dev目錄和/run目錄。愛掏網 - it200.com進入/mnt,分別執行:

    mount -t proc proc proc/

    mount --rbind /sys sys/

    mount --rbind /dev dev/

    mount --rbind /run run/

    這些目錄的作用分別是:

    proc目錄:虛擬的、Procfs格式的文件系統,用于存放進程狀態文件(在Linux下,這些文件表面看起來都是文本文件,實際上是進程狀態的文件映射);

    /sys目錄:對于Arch Linux,這是一個類似proc目錄的、Sysfs格式的虛擬文件系統,用于儲存連接到系統的設備文件;對于傳統Unix和類Unix,它是一個指向內核代碼樹的軟鏈接;

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

    /run目錄:存放最近的啟動之后系統的部分信息;

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

    chroot /mnt

    后悔藥++。愛掏網 - it200.com對于我來說,我只需要修改mkinitcpio.conf文件并重新執行mkinitcpio操作,就能重新生成正確的內核文件。愛掏網 - it200.com一般的,如果是錯誤地修改了配置導致的內核Panic,這個環境可以解決大部分問題。愛掏網 - it200.com

    三、一些技巧

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

    2、對于Arch Linux,可以在不chroot到/mnt的情況下,直接使用pacstrap指令對/mnt這個掛載點進行軟件包管理;

    3、可以在兩個tty下操作,這樣在chroot到/mnt下之后依然能從LiveCD的文件系統里向/mnt轉移文件。愛掏網 - it200.com

    本教程應該對大部分Linux發行版都可用,希望能對部分Linux用戶產生幫助。愛掏網 - it200.com

    相關推薦:

    Linux系統怎么配置雙顯卡?

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 看电影来5566一区.二区| 国产精品无码一区二区在线观一| 三上悠亚亚洲一区高清| 激情亚洲一区国产精品| 亲子乱AV视频一区二区| 国产精品亚洲一区二区三区 | 国产精品福利一区二区| 国产在线精品一区二区在线观看| 北岛玲在线一区二区| 99在线精品一区二区三区| 一区二区三区视频在线| 中文日韩字幕一区在线观看| 福利一区二区在线| 天天躁日日躁狠狠躁一区| 亚洲一区二区三区丝袜| 91视频一区二区三区| 亚洲香蕉久久一区二区| 免费无码VA一区二区三区| 久久免费国产精品一区二区| 伊人色综合一区二区三区| 中文字幕无码一区二区免费| 成人精品视频一区二区三区| 久久久久人妻一区精品果冻| 无码欧精品亚洲日韩一区夜夜嗨| 又紧又大又爽精品一区二区| 精品中文字幕一区二区三区四区| 日韩精品一区在线| 精品一区二区三区视频| 成人在线一区二区| 人妻少妇AV无码一区二区| 国内国外日产一区二区| 国产色综合一区二区三区 | 色狠狠一区二区三区香蕉| 无码少妇一区二区三区浪潮AV| 亚洲av无码一区二区三区不卡| 亚洲国产精品一区二区第一页| 蜜臀AV一区二区| 国产一区视频在线免费观看| 久久精品国产一区二区三区| 国产自产V一区二区三区C| 精品不卡一区二区|