建立一個新的起始用 RAM 磁碟映像
假如你更換了底板,或者把碟盤移至另一個系統,它可能會由於起始用的 RAM 磁碟映像(initrd)內欠缺合適的驅動程式而無法啟動。
註:此文章只適用於 CentOS-5 或更早版本。CentOS-6 採用 dracut 及 initramfs。請參閱 man dracut 及上游的部署指南。
在修複模式下啟動
請執行以下步驟:
- 以 CentOS 的安裝碟開機(例如首張 CD 或 DVD)。
在 boot: 提示符輸入 linux rescue。
- 以讀寫模式掛載所有檔案系統。
建立新的 initrd
- 把根目錄改為你硬盤上的正式根目('/')並建立 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 還是實體裝置,而它的複雜情度已不宜在一篇提示與技巧文章內詳細討論。
- 重新開機
cd / sync; sync; sync telinit 6
這頁的英文版由 PhilSchaffner 建立及維護。歡迎其他 Wiki 貢獻者作出更正、添加或修改。
本頁的靈感來自這個 論壇議題。該議題內備有更多討論。
Translation of revision 8
