LinuxSir.cn,穿越时空的Linuxsir!

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

找不到update-grub[已解决]

[复制链接]
发表于 2009-10-22 19:56:38 | 显示全部楼层 |阅读模式
编译完内核,安装生成image和headers软件包的时候出现以下错误:

  1. ……………………
  2. Running postinst hook script update-grub.
  3. User postinst hook script [update-grub] failed to execute: No such file or directory
  4. dpkg: error processing linux-image-2.6.29.6 (--install):
  5. subprocess installed post-installation script returned error exit status 255
  6. Errors were encountered while processing:
  7. linux-image-2.6.29.6
复制代码

我运行

  1. #update-grub
复制代码

错误提示

  1. bash: update-grub: command not found
复制代码

请问,update-grub属于哪个软件包呢?谢谢!
发表于 2009-10-22 20:09:00 | 显示全部楼层
手动修改一下GRUB引导吧,虽然麻烦点,但能学点东西也不错。顺便把VI温习一遍,何乐而不为呢?呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-22 20:21:53 | 显示全部楼层
Post by 1562269;2039075
手动修改一下GRUB引导吧,虽然麻烦点,但能学点东西也不错。顺便把VI温习一遍,何乐而不为呢?呵呵


问题是我的安装过程没有顺利完成,还并没有在/boot中产生相应的initrd.img。
回复 支持 反对

使用道具 举报

发表于 2009-10-22 20:36:12 | 显示全部楼层
我编译的时候也没产生,你自己可以手动做一个命令:mkinitrd -o
你也可以上网查查……
回复 支持 反对

使用道具 举报

发表于 2009-10-22 21:22:30 | 显示全部楼层
update-grub 所在的包为grub-pc 或者grub-legacy
如果想装gurb2, 就装grub-pc, 如果想装grub1, 就装grub-legacy

要想查看某个文件所在的软件包, 或者包包含的文件, 可以去
http://packages.debian.org/
回复 支持 反对

使用道具 举报

发表于 2009-10-23 08:49:18 | 显示全部楼层
Post by blue_stone;2039098
update-grub 所在的包为grub-pc 或者grub-legacy
如果想装gurb2, 就装grub-pc, 如果想装grub1, 就装grub-legacy

要想查看某个文件所在的软件包, 或者包包含的文件, 可以去
http://packages.debian.org/


如果某个文件已经安装在系统里了,可以用dpkg(相对后者快些)查看,没有的话用apt-file。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-23 20:27:38 | 显示全部楼层
谢谢楼上的各位建议,通过安装grub-pc,我获得了update-grub,看了一些资料,得知linux启动并非一定需要initrd的,那是后话,我想这次还是把initrd弄弄完。
但是在我运行以下命令时:

  1. #mkinitrd.yaird -o config-2.6.29.6 2.6.29.6
复制代码

出现错误提示:

  1. yaird error: can't open kernel config file /boot/config-2.6.29.6 (fatal)
复制代码

何解?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-23 20:41:58 | 显示全部楼层
抱歉,是我命令用错了,惭愧……
改成

  1. mkinitrd.yaird -o /boot/initrd.img-2.6.29.6  2.6.29.6
复制代码

出现以下提示:

  1. yaird error: bad device link in /sys/block/hda (fatal)
复制代码

我的磁盘分区是/hdb的,和这个有关吗?该在哪里进行修改使得顺利生成initrd?谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-23 20:58:44 | 显示全部楼层
我在换主板之前磁盘分区是hda的,后来发现不能启动,自己到fstab里改成hdb才好的。看了一下/etc/yaird/里的两个配置文件,貌似只有Templates.cfg里面有下面几句:

  1. !mkbdev () {
  2.                         !       mksymdev "$1" "/sys/block/$2/dev" b
  3.                         !}
  4.                         !
  5. …………
  6. !      cat /sys/block/*/${resume#/dev/}/dev > \
  7.                         !        /sys/power/resume
复制代码

里面隐约有和错误提示中的/sys/block/hda 相关的东西。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-23 21:37:29 | 显示全部楼层
我去重新执行了

  1. make-kpkg --initrd --append-to-version=-simon kernel_image kernel_headers
复制代码


以前我编译内核采用这种方法安装生成的deb后,会生成initrd,毕竟是跟了--initrd参数,真奇怪,居然要自己mkinitrd.yaird产生initrd,而像版主说的那样,这些脚本并非无往而不利的,initrd真是棘手。过几天试试抛弃initrd编译内核。
回复 支持 反对

使用道具 举报

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

本版积分规则

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