建立一個新的起始用 RAM 磁碟映像

假如你更換了底板,或者把碟盤移至另一個系統,它可能會由於起始用的 RAM 磁碟映像(initrd)內欠缺合適的驅動程式而無法啟動。

<!> 註:此文章只適用於 CentOS-5 或更早版本。CentOS-6 採用 dracutinitramfs。請參閱 man dracut上游的部署指南

在修複模式下啟動

請執行以下步驟:

  1. 以 CentOS 的安裝碟開機(例如首張 CD 或 DVD)。
  2. boot: 提示符輸入 linux rescue

  3. 以讀寫模式掛載所有檔案系統。

建立新的 initrd

  1. 把根目錄改為你硬盤上的正式根目('/')並建立 initrd。(這個範例採用截至本文最新版的 CentOS 5.5 內核。請按你現有的內核作出修改。)
    mount --bind /proc /mnt/sysimage/proc
    mount --bind /dev /mnt/sysimage/dev
    mount --bind /sys /mnt/sysimage/sys
    chroot /mnt/sysimage
    cd /boot
    mv initrd-2.6.18-194.32.1.el5.img initrd-2.6.18-194.32.1.el5.old.img
    mkinitrd initrd-2.6.18-194.32.1.el5.img 2.6.18-194.32.1.el5
     
    要是你正在利用 Xen 監督器把一台實體機器遷移至虛擬機器,請將上述最後一個指令改為:
    mkinitrd --with-xenblk initrd-2.6.18-194.32.1.el5xen.img 2.6.18-194.32.1.el5xen
     

    還有很多選項可供應用,例如手動地加入為未被載入的模塊。詳情請參閱 man mkinitrd。視乎安裝的細節,你可能會須要修改 /boot/grub/grub.conf 及/或 /etc/fstab。這關乎你在檔案內採用的是 LABEL 及/或 UUID 還是實體裝置,而它的複雜情度已不宜在一篇提示與技巧文章內詳細討論。

  2. 重新開機
    cd /
    sync; sync; sync
    telinit 6
     


這頁的英文版由 PhilSchaffner 建立及維護。歡迎其他 Wiki 貢獻者作出更正、添加或修改。

本頁的靈感來自這個 論壇議題。該議題內備有更多討論。

Translation of revision 8

zh-tw/TipsAndTricks/CreateNewInitrd (last edited 2012-03-28 02:23:50 by TimothyLee)