LinuxSir.cn,穿越时空的Linuxsir!

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

从U盘上启动,做initrd文件怎么这么难

[复制链接]
发表于 2007-10-29 21:47:06 | 显示全部楼层 |阅读模式
安装的系统是debian 4.0r1 amd64
有一块硬盘/dev/sda,插入的U盘是/dev/sdb

1 系统安装在U盘上,可以从U盘启动 (initrd文件为initrd.img-2.6.18-5-amd64)

2 硬盘上装同样的系统,自已编译2.6.23.1的内核,用mkinitrd.yaird做initrd文件,可以启动新内核

3 将硬盘上编译的kernel拷到U盘上,再怎么做initrd文件都不能从U盘启动新内核了。
   错误在initrd文件 上。错误信息显示:已释放了ramdisk占用的内存,不能找到/init文件
   可是init文件明明在啊!

我又把能从U盘正常启动的initrd.img-2.6.18-5-amd64文件解开自己再产生一遍,结果是同样的错误,说找不到/init文件
我是这么做的:

解开:
mkdir /boot/tmp
cd  /boot/tmp
zcat ../initrd.img-2.6.18-5-amd64 |cpio -id
生成:
find . -depth | cpio -ovH newc |gzip -9 > ../myinitrd.img

然后,启动时使用myinitrd.img,就有了不能找到/init的错误

难道是生成initrd文件的方法不对?

鼓捣了两天了还不行,搜了贴子也没找到答案,请高手们帮帮忙
发表于 2007-10-30 04:46:45 | 显示全部楼层
相信看了这两篇会对你有帮助:

http://www.linuxsir.cn/bbs/showthread.php?t=236435

http://www.linuxsir.cn/bbs/showthread.php?t=306603

头一篇最直接,第二篇则采用二次启动的方式,两者都行

如果用 Debian 的工具來生成 initrd,請留意加入必需的內核模塊:

http://www.linuxsir.cn/bbs/showthread.php?t=189080
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 22:31:43 | 显示全部楼层
谢谢d00m3d!参考上面几个帖子,关于initrd的我再试试

我也试过不用initrd,把需要的编译进内核,但是启动时还是找不到U盘,只能找到硬盘,屏幕上已经显示到探测到USB的信息。
与帖子 http://www.linuxsir.cn/bbs/showthread.php?t=236435中你的步骤相比,
我没有把这两项编译进去
      <*> USB Human Interface Device (full HID) support
               这个相当於 CONFIG_USB_HID (亦即是 usbhid)
       <*> OHCI HCD support
               这个相当於 CONFIG_USB_OHCI_HCD (亦即是 ohci-hcd)
另外启动时没有加rootdelay=8
不知是不是这个原因,明天再试一下
回复 支持 反对

使用道具 举报

发表于 2007-10-31 00:52:59 | 显示全部楼层
哪些選項是有意思的,何以做一半不做一半 :ask
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-3 12:15:55 | 显示全部楼层
不加入这两项是因为我正用的2.6.18的内核是作为模块编译的,而我用lsmod查看发现
只加载了uhci和ehci,说明不需要ohci

找不到U盘的原因确实是因为没有rootdelay参数,加上之后,在等待时显示发现了U盘

找不到/init文件是因为做initrd文件时使用了如下命令:
find . -depth | cpio -ovH newc |gzip -9 > ../myinitrd.img
去掉find的-dept选项就可以了
find . | cpio -ovH newc |gzip -9 > ../myinitrd.img
回复 支持 反对

使用道具 举报

发表于 2007-11-3 12:17:21 | 显示全部楼层
So, you have solved your problem, haven't you?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-3 22:36:29 | 显示全部楼层
谢谢!是的,关于initrd和从U盘启动的问题解决了。
但我的最终问题还没解决:在没有软驱,Debian 4.0r1也发现不了硬盘的
IBM 服务器上安装debian。糟糕的是服务器不支持从USB硬盘启动,昨天
问了IBM服务支持说只支持USB软驱启动。我只好把内核和grub刻在光盘上
启动,但这不是一两次就能成功的,现在已刻了6张了。我想下一步查查
grub for dos, 看能不能把linux中的initrd和内核拷到windows中启动。
回复 支持 反对

使用道具 举报

发表于 2007-11-5 17:18:57 | 显示全部楼层
你可以用虚拟机+光盘镜像来尝试啊,不用每次都刻盘并重启真实的机器,那样好浪费时间+金钱的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-6 19:01:15 | 显示全部楼层
呵呵,虚拟机我从没用过,所以没想起来。
昨天试了一下wingrub,把kernel-img和initrd拷到C盘(ntfs), 在我自己的机器上可以引导
而在ibm服务器(2003 server)上却不行,选择用linux引导后就黑屏了,只有光标在左上角一闪
一闪的,真是郁闷啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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