Linux重建初始ramdisk镜像

时间:2020-01-09 10:43:08  来源:igfitidea点击:

问题描述:我认为我缺少一些驱动程序,或者我的初始ramdisk因运行内核而损坏了,如何在Linux下重建初始ramdisk镜像?

解决方法:如果您已将新的硬件设备(例如SCSI或者FibreChannel控制器)添加到服务器,则需要ramdisk,因为ramdisk包含初始化硬件驱动程序所需的模块(即驱动程序)。
如果您修改了/etc/modprob.conf(或者modules.conf)文件,则需要执行名为mkinitrd的特殊脚本。

mkinitrd脚本构建了一个目录结构,该目录结构可用作initrd根文件系统。
然后,它使用mkcramfs生成包含该目录结构的镜像,可以使用initrd机制加载该镜像。
指定内核版本的内核模块将放置在目录结构中。
如果省略version,则默认为当前正在运行的内核的版本。

找出您的内核版本:

# uname -r

2.6.15.4备份现有的ram磁盘:

# cp /boot/initrd.$(uname -r).img /root

要创建初始ramdisk镜像,请以root用户身份输入以下命令:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)
# ls -l /boot/initrd.$(uname -r).img

您可能需要修改grub.conf以指出正确的ramdisk镜像,请确保grub.conf文件中存在以下行:

initrd /boot/initrd.img-2.6.15.4.img

当系统使用由mkinitrd命令创建的initrd镜像引导时,linuxrc将等待通过mkinitrd.conf配置的一段时间,在此期间,可以通过按Enter中断它。
之后,将加载中指定的模块。