Linux 重建初始 ramdisk 映像
问:我想我缺少一些驱动程序或者我的初始 ramdisk 已损坏,无法运行内核,如何在 Linux 下重建初始 ramdisk 映像?
答:如果您在服务器上添加了新的硬件设备(如 SCSI 或光纤通道控制器),则需要 ramdisk,因为 ramdisk 包含初始化硬件驱动程序所需的模块(即驱动程序)。如果您修改了 /etc/modprob.conf(或 modules.conf)文件,则需要执行名为 mkinitrd 的特殊脚本。
mkinitrd 脚本构建一个可用作 initrd 根文件系统的目录结构。然后,它使用 mkcramfs 生成包含该目录结构的映像,可以使用 initrd 机制加载该映像。指定内核版本的内核模块将放置在目录结构中。如果省略版本,则默认为当前正在运行的内核版本。
找出您的内核版本:
# uname -r
2.6.15.4
备份现有的 RAM 磁盘:
# cp /boot/initrd.$(uname -r).img /root
要创建初始 RAM 磁盘映像,请以 root 用户身份键入以下命令:
您可能需要修改 grub.conf 以指向正确的 RAM 磁盘映像,请确保 grub.conf 文件中存在以下行:
当系统使用 mkinitrd 命令创建的 initrd 映像启动时,linuxrc 将等待通过 mkinitrd.conf 配置的一段时间,在此期间,可以通过按 ENTER 键中断。此后,将加载指定的模块。
# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)
# ls -l /boot/initrd.$(uname -r).img
initrd /boot/initrd.img-2.6.15.4.img