mkinitrd基本用法

引言:当你明白到mkinitrd是一个脚本,无法执行--with的时候,就应该研究这个脚本,到底干了些什么,在SUSE版本下无法生成initrd.img,在redhat中是可以的,证明SUSE系统无法使用with参数。

(这是本人的一个水平问题,mkinitrd在suse系统上没有with这个用法,应该是在redhat上采用了,但是redhat现在使用的都是dracut,即使使用mkinitrd实际上也是调用了dracut程序)详细的mkinitrd将在后续文章说明,实际上在本博客中说明了CentOS的dracut的用法和mkinitrd在SLES系统中的用法请查询)

1):/boot # mkinitrd --with=megaraid
/sbin/mkinitrd: illegal option -- -
2):/boot # mkinitrd -with=megaraid
/sbin/mkinitrd: illegal option -- w
3):/boot # mkinitrd -with=<megaraid>
-bash: syntax error near unexpected token `newline'

4)mkinitrd -o /boot/initrd-`uname -r`

尝试使用-o看可不可以

 

功能说明:建立要载入ramdisk的映像文件。

语  法:mkinitrd [-fv][--omit-scsi-modules][--version][--preload=<模块名称>][--with=<模块名称>][映像文件][Kernel 版本]

补充说明:mkinitrd可建立映像文件,以供Linux开机时载入ramdisk。

参  数:
  -f   若指定的映像问家名称与现有文件重复,则覆盖现有的文件。
 -v  执行时显示详细的信息。
  --omit-scsi-modules   不要载入SCSI模块。
  --preload=<模块名称>   指定要载入的模块。
  --with=<模块名称>   指定要载入的模块。
  --version   显示版本信息。

 

疑问:

鸟哥的私房菜有一个实例,但是和上面没有区别,为什么没有执行成功
摘抄:

RHEL4u5内核不支持新的Qlogic 4G FC HBA卡。于是在官方下载驱动,编译成模块。

1、下载驱动并编译,这一步看驱动的Readme。

2、生成initrd文件:

mkinitrd -v --with=qla2xxx_conf --with=qla2xxx --with=qla2400 initrd.img 2.6.9-55.0.9.ELsmp

其中,qla2xxx_conf,qla2xxx,qla2400是编译好的驱动模块,2.6.9-55.0.9.ELsmp是内核版本

3、复制生成的initrd文件到/boot目录,并修改grub.conf加载之(或直接覆盖相应的文件)

4、重启系统,成功识别磁盘阵列!

 

网上疑问资料:

修改/etc/modprobe.conf like:
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter megaraid_sas
alias ipv6 off
alias net-pf-10 off
alias scsi_hostadapter2 pata_oldpiix

mkinitrd -v --force-scsi-probe -f /boot/initrd-2.6.32.36.img 2.6.32.36 --builtin ehci-hcd --builtin ohci-hcd --builtin uhci-hcd --fstab=/etc/fstab

 

场景说明:目前遇到的瓶颈是如何正确的将raid驱动模块加载到内存中,当linux开机的过程中识别到
硬盘正确的挂载。mkinitrd --preload预加载raid模块

 


你可能感兴趣的:(with,raid,mkinitrd)