当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [已解决] 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-10 19:55 

注册: 2008-11-17 22:01
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
win+ubuntu双系统,由于后来重装winxp搞的原grub失效。
起初看到简单的方法是找个grub4dos,然后找个读linux文件格式的工具,把menu.lst拷过来就ok。结果发现找了几个工具都认不出原来的linux分区。
接着找了张livecd(是Kubuntu的,不知道有没有影响),拷贝那个grub下的menu.list回去到grub4dos那里,失败。
然后在grub4dos那个启动菜单下按c进入命令行,root (hd0, "tab" ... 是能看到linux那个分区的(是6),但是root (hd0,6)后setup(hd0)出错说找不到stage1。进livecd系统以后mount了那个分区后/boot/grub/stage1是有的。但是在这个终端下用sudo grub,find /boot/grub/stage1找不到。
之后google半天找到这个:http://skies123.gofreeserve.com/2009/01/slove-grub-startup-problem-in-ubuntu/
我的grub版本是0.97,文件格式ext2,用里面的方法3:
sudo mount /dev/sdaX /mnt
sudo grub-install /dev/sda –root-directory=/mnt
提示的却不是OK而是...or not a block device。

折腾很长时间了,求助大家了


最后由 einstl 编辑于 2009-03-14 10:58,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-10 20:12 
头像

注册: 2009-03-07 22:13
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
我感觉应该是:
1)用live CD进入ubuntu,运行grub,执行命令:
root (hd0,6) //如果linux的分区确实是6的话
setup (hd0)//这是把grub引导程序写入MBR

2)修改/boot/grub/menu.lst,添加:
title windows XP
root (hd0,0)
makeacttive
chainloader+1


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-10 20:22 

注册: 2009-03-09 21:45
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
你把menu.list内容贴出来给大家看看


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-11 8:47 

注册: 2008-11-17 22:01
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
title Ubuntu 8.10, kernel 2.6.27-8-generic
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/vmlinuz-2.6.27-8-generic root=UUID=066e64f2-034b-4248-86be-e980661bfd6d ro quiet splash
initrd /boot/initrd.img-2.6.27-8-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-8-generic (recovery mode)
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/vmlinuz-2.6.27-8-generic root=UUID=066e64f2-034b-4248-86be-e980661bfd6d ro single
initrd /boot/initrd.img-2.6.27-8-generic

title Ubuntu 8.10, kernel 2.6.27-7-generic
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=066e64f2-034b-4248-86be-e980661bfd6d ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic
quiet

title Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=066e64f2-034b-4248-86be-e980661bfd6d ro single
initrd /boot/initrd.img-2.6.27-7-generic

title Ubuntu 8.10, memtest86+
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1

;;;;;;;;;;;;;;;
后来试了试把前面加上root (hd0,6) 也不行的,提示Error 2 : "Bad file or directory type"


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-11 9:15 

注册: 2008-11-17 22:01
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
old_fish 写道:
我感觉应该是:
1)用live CD进入ubuntu,运行grub,执行命令:
root (hd0,6) //如果linux的分区确实是6的话
setup (hd0)//这是把grub引导程序写入MBR

2)修改/boot/grub/menu.lst,添加:
title windows XP
root (hd0,0)
makeacttive
chainloader+1

;;;;;;;;
这样的话到setup那句话的时候就报错了
提示找不到/grub/stage1


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-11 16:55 

注册: 2009-03-09 21:45
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
我这两天也在搞grub4dos启动,根据我的经验,楼主可以这样操作:

1.COPY三个文件(grldr,grub.exe,menu.lst)到C盘根目录

2.编辑C盘下boot.ini文件,增加一行 C:\GRLDR="Ubuntu"(冒号里随便写什么)

3.编辑你的menu.lst
在缺少root的地方增加root即可

我看你的menu.lst里部分内容是这样的:
title Ubuntu 8.10, kernel 2.6.27-8-generic
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/vmlinuz-2.6.27-8-generic root=UUID=066e64f2-034b-4248-86be-e980661bfd6d ro quiet splash
initrd /boot/initrd.img-2.6.27-8-generic
quiet

那么在title后加一行变成这样:
title Ubuntu 8.10, kernel 2.6.27-8-generic
root (hd*,*)
uuid 066e64f2-034b-4248-86be-e980661bfd6d
kernel /boot/vmlinuz-2.6.27-8-generic root=UUID=066e64f2-034b-4248-86be-e980661bfd6d ro quiet splash
initrd /boot/initrd.img-2.6.27-8-generic
quiet

注,root (hd*,*)是指你的系统所在位置,第一个硬盘的第一个分区为root (hd0,0),以此类推

这样修改后我想应该可以从grub4dos启动了


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-12 10:43 
头像

注册: 2009-01-11 16:05
帖子: 301
送出感谢: 2
接收感谢: 11
einstl 写道:
old_fish 写道:
我感觉应该是:
1)用live CD进入ubuntu,运行grub,执行命令:
root (hd0,6) //如果linux的分区确实是6的话
setup (hd0)//这是把grub引导程序写入MBR

2)修改/boot/grub/menu.lst,添加:
title windows XP
root (hd0,0)
makeacttive
chainloader+1

;;;;;;;;
这样的话到setup那句话的时候就报错了
提示找不到/grub/stage1


也遇到了这个问题,情况是这样的,要重新分区安装arch,原来装的是xp,gentoo双系统,当在win下把最后的ntfs分区调整大小,添加了两个新分区后,进不了系统,好像提示grub error 17之类的。要重新安装grub,就遇到上述问题
解决办法是:用fdisk将两个新分区删除,再安装grub,正常没报错,然后再用fdisk添加两个分区hda9,hda10。安装arch。
好奇怪的问题。
grub 0.97


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-13 9:12 

注册: 2008-11-17 22:01
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
bigsun 写道:
einstl 写道:
old_fish 写道:
我感觉应该是:
1)用live CD进入ubuntu,运行grub,执行命令:
root (hd0,6) //如果linux的分区确实是6的话
setup (hd0)//这是把grub引导程序写入MBR

2)修改/boot/grub/menu.lst,添加:
title windows XP
root (hd0,0)
makeacttive
chainloader+1

;;;;;;;;
这样的话到setup那句话的时候就报错了
提示找不到/grub/stage1


也遇到了这个问题,情况是这样的,要重新分区安装arch,原来装的是xp,gentoo双系统,当在win下把最后的ntfs分区调整大小,添加了两个新分区后,进不了系统,好像提示grub error 17之类的。要重新安装grub,就遇到上述问题
解决办法是:用fdisk将两个新分区删除,再安装grub,正常没报错,然后再用fdisk添加两个分区hda9,hda10。安装arch。
好奇怪的问题。
grub 0.97

可是我当初重装win的时候并没有改变分区大小,还有没提示grub error 17
ps. 最近有时候ubuntu论坛等不上去……不知为何


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-13 10:27 

注册: 2007-12-31 11:40
帖子: 389
送出感谢: 0 次
接收感谢: 0 次
用live CD进入ubuntu用分区编辑器查看/分区所在,另一方法把boot文件复制到C盘然后:
root (hd0,0)
setup (hd0)


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-14 9:34 

注册: 2008-11-17 22:01
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
1234qw 写道:
用live CD进入ubuntu用分区编辑器查看/分区所在,另一方法把boot文件复制到C盘然后:
root (hd0,0)
setup (hd0)

能看到分区6为原linux系统分区,但是setup的时候出错,find /boot/grub/stage1也找不到

是不是stage那个文件坏了,难道只能重装系统了?


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-14 10:21 

注册: 2008-05-03 23:42
帖子: 3681
送出感谢: 4
接收感谢: 6
你的 ubuntu 是什么版本,8.10?
livecd 又是什么版本,8.04?
找的 grub4dos 又是什么版本,0.4.3?

8.04 的 livecd 不能用来修复 8.10 的 grub
grub4dos 0.4.3 也不能读取 8.10 的 ext 分区
这都是由于 8.10 使用了与以往不同的 ext 格式

引用:
起初看到简单的方法是找个grub4dos,然后找个读linux文件格式的工具,把menu.lst拷过来就ok。结果发现找了几个工具都认不出原来的linux分区。

你受到了误导。你不必从 linux 分区拷贝任何文件。如果已经拷贝了 menu.lst,现在把它们删除,确保只有 linux 分区里有唯一的 menu.lst,然后到 http://download.gna.org/grub4dos/ 下载最新的 grub4dos,目前是 grub4dos-0.4.4-2009-03-07.zip ,解开后只需要里面的一个文件, grldr,放在 c 盘根目录,如果有旧版本的 grldr,请用新版覆盖,然后在 boot.ini 里添加 c:\grldr=ubuntu 就可以了。如果没有改动过 linux 分区里的文件,应该就能启动了。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 求助——修复grub出现error 15, 但/boot/grub/stage1确实还在
帖子发表于 : 2009-03-14 10:56 

注册: 2008-11-17 22:01
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
billbear 写道:
你的 ubuntu 是什么版本,8.10?
livecd 又是什么版本,8.04?
找的 grub4dos 又是什么版本,0.4.3?

8.04 的 livecd 不能用来修复 8.10 的 grub
grub4dos 0.4.3 也不能读取 8.10 的 ext 分区
这都是由于 8.10 使用了与以往不同的 ext 格式

引用:
起初看到简单的方法是找个grub4dos,然后找个读linux文件格式的工具,把menu.lst拷过来就ok。结果发现找了几个工具都认不出原来的linux分区。

你受到了误导。你不必从 linux 分区拷贝任何文件。如果已经拷贝了 menu.lst,现在把它们删除,确保只有 linux 分区里有唯一的 menu.lst,然后到 http://download.gna.org/grub4dos/ 下载最新的 grub4dos,目前是 grub4dos-0.4.4-2009-03-07.zip ,解开后只需要里面的一个文件, grldr,放在 c 盘根目录,如果有旧版本的 grldr,请用新版覆盖,然后在 boot.ini 里添加 c:\grldr=ubuntu 就可以了。如果没有改动过 linux 分区里的文件,应该就能启动了。


:em11 搞定了!把menu.lst删掉,把grldr换成新的就好了。非常感谢

开始自己没把ubuntu是810而livecd是804的问题提出来真是不应该,原来以为这东西无所谓的……


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译