LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2016|回复: 22

关于initrd的问题 创建img文件失败!!求助!!!!!!!!!

[复制链接]
发表于 2003-11-9 16:13:15 | 显示全部楼层 |阅读模式
我看了http://www.linuxsir.cn/bbs/showthread.php?s&threadid=16742的帖子
lalakao兄的问题我也遇到了 他说通过如下的方法解决了
解决方法如下:
1.编译安装内核及内核模块
make mrproper
make menuconfig
这一步的要点是:
a)在“Block devices”配置节中“RAM disk support”设定为built-in方式("<*>"),这时会出现“Initial RAM disk (initrd) support”选项,选中它("
  • ")。
    b)在“SCSI support”配置节中的“SCSI low-level drivers”子配置节中选择相应的SCSI设备(我选择了所有Adaptec的支持,以module方式("<M>"))。
    c)选择最下面的“Save Configuration to an Alternate File ”把当前配置保存到一个文件中以便以后的调整和使用。
    make bzImage && make modules && make modules_install
    在编译和安装模块过程中会出现一些奇怪的问题。重新执行make menuconfig调整一下配置选项即可。
    cp arch/i386/boot/bzImage /boot/lfskernel && cp System.map /boot
    2.生成initrd映像文件
    initrd提供了系统启动时加载一个RAM文件系统的能力,该RAM系统被临时加载为root文件系统,然后载入一些必要的内核模块(如SCSI支持时),一旦最终的root分区被加载,RAM系统即被卸除。详细见内核源码目录下的Documentation/initrd.txt。
    因我chroot的LFS系统中无initrd命令,转到宿主系统MDK8.2下
    ln -s /lib/modules/2.4.20 $LFS/lib/modules/2.4.20
    mkinitrd initrd-lfs.img 2.4.20 && cp initrd-lfs.img $LFS/boot
    3.然后修改lilo.conf加入对LFS内核的支持,我的配置如下:
    image=/boot/lfskernel
    label=lfs
    root=/dev/sda2
    initrd=/boot/initrd-lfs.img
    read-only
    然后执行lilo -v
    4.一个需注意的地方是:在reboot前必须手工在LFS的root分区中建立一个空目录/initrd供上面生成的initrd-lfs.img在系统boot时挂载用。
    5.在$LFS/etc/modules.conf中需加入如下内容:
    probeall scsi_hostadapter aic7xxx
    alias scsi_hostadapter aic7xxx


  • 我在执行第二步 生成initrd映像文件  的时候遇到了问题  怎么也无法创建img文件 总说什么No module BusLogic found for kernel 2.4.19
    我用的红帽8 lfs使用的是lfs-packages-cvs-20021023-1707 我是在vmware里
    我就差做img文件支持scsi这一步了  前面都是安文档一步一步做的(包括目录设置)

    请指导一下具体怎么做??
     楼主| 发表于 2003-11-10 19:13:05 | 显示全部楼层
    是不是加上Buslogic就可以解决啊!
    在那个SCSI low-level drivers这个里面有。


    __________________
    ALA


    最后由 afterain 在 11-09-2003 15:02 编辑
    发表于 2003-11-10 19:31:42 | 显示全部楼层
    提示都给了,那是当然喽,呵呵
     楼主| 发表于 2003-11-10 21:24:23 | 显示全部楼层
    斑竹还在吗??编译内核的时候我选择了Buslogic了 可是还是出
    No module BusLogic found for kernel 2.4.19
    lfs里还没有mkinitrd必须转到红帽里
    做img文件的时候需要主意什么????
    那个2.4.19的目录应该是哪个???/lib/moduls里的还是/mnt/lfs/lib/moduls里的???

    lalakao兄弟的命令是不是写错啦
    ln -s /lib/modules/2.4.20 $LFS/lib/modules/2.4.20
    这样写是不是反了啊??
    mkinitrd 是按目录去生成img文件么?还是按系统正在使用的内核??lfs的内核和现在用的红帽不是一个啊???
    发表于 2003-11-10 21:59:41 | 显示全部楼层
    别用initrd.
     楼主| 发表于 2003-11-10 22:08:09 | 显示全部楼层
    可是我在vmware里啊,它用的不是scsi设备么  不用initrd启动不了啊
     楼主| 发表于 2003-11-10 23:08:26 | 显示全部楼层
    晕了  我在红帽8(内核是2.4.18-14)升级了内核升到2.4.19了
    可是mkinitrd的时候还是说
    No module BusLogic found for kernel 2.4.19

    启动的时候我看到还是2.4.18.14
    到底怎么回事呢??
    发表于 2003-11-11 01:04:15 | 显示全部楼层
    不用initrd就行了,你直接把需要的驱动,编译进内核里.
    知道为什么要用initrd么?是因为内核太大的话,不方便,而我们只用为自己的硬件编译内核,不会太大的.所以可以直接把所需要的驱动编进内核.
    在不知道什么是模块和initrd的时候,就别用模块和initrd.
    发表于 2003-11-11 01:40:22 | 显示全部楼层
    不需要用initrd的,都是被RH惯坏了
     楼主| 发表于 2003-11-11 02:25:51 | 显示全部楼层
    哦 这样啊  我看的其他的帖子说的好像用initrd才能识别scsi设备 我再去试试!谢谢两位斑竹!!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表