创建一个新的初始化用 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
