[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 自定义Debian光盘加入non-free驱动,成功安装但是出现问题



这应该是list设定的问题,不过 gmail 有一个 lab 工具,可以把回复换为回复所有,去试试吧。



在 2011年3月15日 下午1:18,Feng Lu <0000@mininews.info> 写道:
> gmail 总是容易把maillist的邮件只回复给发信人……
>
> ---------- 已转发邮件 ----------
> 发件人: Feng Lu <0000@mininews.info>
> 日期: 2011年3月15日 下午1:17
> 主题: Re: 自定义Debian光盘加入non-free驱动,成功安装但是出现问题
> 收件人: Shell Xu <shell909090@gmail.com>
>
>
> 好吧,事情再一次杯具了……这样做的仍然不行,还是找不到驱动。但是在出错的busybox中(initramfs),在
> /lib/modules/xxxx/kernel/drivers/scsi 下是有megaraid_sas.ko 文件了的
>
> 另外发现,Debian 6.0 live光盘可以直接识别 IBM x3650的硬盘,安装光盘应该也行,但是仍然需要另外加载 non-free 的
> bnx2 驱动,这个难度要小一些。
>
> 在 2011年3月14日 下午7:59,Shell Xu <shell909090@gmail.com>写道:
>>
>> 完整性上说,最好增加depmod计算。
>>
>> 在 2011年3月14日 下午6:36,Feng Lu <0000@mininews.info>写道:
>>>
>>> 谢谢,经过试验
>>> 用你的办法,bnx2的驱动可以,但是 megaraid_sas 根本不在源中,所以不可行。
>>>
>>> 后来我想了个办法自己加了个脚本,在安装完后不重启,进入 busybox执行,应该可行,在自己机器上测试成功,明天去单位了再试一次
>>>
>>> install.sh
>>>
>>> #!/bin/sh
>>>
>>> cp megaraid_sas.ko /lib/modules/"`uname -r`"/kernel/drivers/scsi/
>>> echo megaraid_sas >> /etc/initramfs-tools/modules
>>> cp megaraid_sas.initramfs-tools.hook
>>> /usr/share/initramfs-tools/hooks/megaraid_sas
>>> chmod +x /usr/share/initramfs-tools/hooks/megaraid_sas
>>> update-initramfs -u -v > initrd.log
>>>
>>> 其中 megaraid_sas.initramfs-tools.hook 文件内容如下
>>> #!/bin/sh
>>>
>>> PREREQ=""
>>>
>>> prereqs()
>>> {
>>>         echo "$PREREQ"
>>> }
>>>
>>> case $1 in
>>> prereqs)
>>>         prereqs
>>>         exit 0
>>>         ;;
>>> esac
>>>
>>> . /usr/share/initramfs-tools/hook-functions
>>>
>>> cp /lib/modules/"`uname -r`"/kernel/drivers/scsi/megaraid_sas.ko
>>> $DESTDIR/lib/modules/"`uname -r`"/kernel/drivers/scsi/
>>>
>>> manual_add_modules megaraid_sas
>>>
>>> 在本地机器上测试时能正确地把 megaraid_sas 打包进 initrd 中,希望明天也行
>>>
>>>
>>>
>>>
>>>
>>>
>>> 在 2011年3月14日 上午10:31,Shell Xu <shell909090@gmail.com>写道:
>>>>
>>>>
>>>> 就我所知,光盘安装后产生的initrd是一个叫做mkinitrd的脚本打出来的,这个脚本属于initramfs-tools,利用/etc/initramfs-tools/modules来进行initrd的生成的。
>>>>
>>>> 这个过程,是在安装目标机器并完成配置后进行的。当grub完成安装后,会自动更新。使用的/etc/initramfs-tools/modules是目标机的。
>>>> 自然整个过程中是不会理会你的initrd中的ko的。
>>>>
>>>> 我的常规做法,是当系统安装完成后,不重启系统,而保持挂载状态进入busybox。chroot后直接apt-get,将需要的包安装上去。修改/etc/initramfs-tools/modules,然后再手工update-initramfs。然后再启动,问题就解决了。
>>>> 如果你要将这个过程自动化,就得看如何定制安装过程了。
>>>>
>>>> 在 2011年3月14日 上午10:20,Feng Lu <0000@mininews.info>写道:
>>>>>
>>>>> 操作步骤简述如下,(为避免邮件太长影响阅读,详情请移步 http://im0000.com/?p=1144 )
>>>>>
>>>>> 1、从安装光盘iso中取出 initrd.gz 并解压
>>>>> 2、向解压后的 initrd.gz 中灌入相应驱动
>>>>> 3、重新压制 initrd.gz 并放回iso中,重新生成md5码并生成ISO文件
>>>>> 4、刻录后顺利安装
>>>>> 5、安装后重启,不能进入系统,提示找不到(上面放入的)硬盘驱动
>>>>>
>>>>> 推测原因:
>>>>>
>>>>> 安装时的initrd和安装后系统的initrd并不一样,而是在安装过程中重新生成的,但是重新生成时,并不会把我们加的驱动一并打包到新的initrd中去。
>>>>>
>>>>> 目前的解决办法是,以光盘启动安装后的目标服务器,将硬盘里 /boot/
>>>>> 下的initrd文件拷贝出来,并参照上面的步骤将相应驱动再一次塞进initrd里,然后再拷贝回目标服务器的硬盘中,这样就能重新正常进行了。
>>>>>
>>>>> 请问有什么办法让自己加入的驱动自动添进安装后的 initrd 文件中吗?在iso里有没有一个什么列表之类的?
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 0000@MININEWS.INFO
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 无能者无所求,饱食而遨游,泛若不系之舟
>>>> blog: http://shell909090.com/blog/
>>>> twitter: http://twitter.com/shell909090
>>>>
>>>
>>>
>>>
>>> --
>>> 0000@MININEWS.INFO
>>>
>>
>>
>>
>> --
>> 无能者无所求,饱食而遨游,泛若不系之舟
>> blog: http://shell909090.com/blog/
>> twitter: http://twitter.com/shell909090
>>
>
>
>
> --
> 0000@MININEWS.INFO
>
>
>
>
> --
> 0000@MININEWS.INFO
>
>

Reply to: