确实有点诡异,总结一下
用easybcd安了一个grub,但在grub命令行下输入kernel /boot/vmlinuz-2.6.27-7-generic ro quiet splash的时候,都出现bad file or directory
这个错误一般是你输入的是个目录,而不是文件,比如,输入了 kernel /boot 。但是你确实没有输错啊,而且,
cat (hd0,8)/
Bad file or directory type
这个就有点不寻常了,我想不出。
我先装过一遍,而且是用grub作的引导,但是里有个vista的选项选了进不去
这个也有点奇怪。
我在c盘的根目录下写menu.lst是有效果的,而且我U盘安装ubuntu的时候就是用的这个,但是我在网上找的信息说vistaloader2.x中的grub已经脱离了dos,所以虽然我可以写menu.lst,但是并没有选择菜单出现,我没有选择的余地。
你传上来的 grldr 我还没空研究,但是我用过 vistaloader 2.1.2,只要自建一个 c:\menu.lst ,就可以利用 vistaloader 版的 grldr 启动所有系统的,很方便,这个有待进一步测试。
另外,从 vista 的分区图看,似乎 ubuntu 分区是个主分区,没有在那绿色的扩展分区里,但是从后面的讨论看,好像又是 (hd0,8)
猜想,可能分区比较靠后,bios 访问上有点 bug,或者 grub4dos 和你的 bios 有点兼容性问题,事实上 grub4dos 的开发者一直在和各种 bios 做斗争,可是臭虫还是不时地冒出来,gnu grub 的臭虫就更多了。另外,怀疑你的分区表有某种问题。
所以最好你能够进入 livecd 环境(cd 或者 u 盘启动安装环境),就可以提供更多信息。livecd 下访问你的 ubuntu 分区应该不成问题,因为系统已经起来,不再依赖于 bios 了。
如果你的分区表没有大问题,那么一个较有把握的办法是在 livecd 中把你的 ubuntu 分区下的 /boot 目录(注意不是 livecd 环境中的 /boot)整个拷贝到 vista 分区下,注意 vista 下本有个 boot 目录,所以另建一个目录,比如 uboot,然后参考 ubuntu 的 menu.lst 写 easybcd 的 menu.lst,把 root (hd0,8) 或者新的 uuid 命令改成 root (hd0,0) ,从 vista 分区起内核,大致是这样
title Ubuntu 8.10, kernel 2.6.27-7-generic
root (hd0,0)
kernel
/uboot/vmlinuz-2.6.27-7-generic root=UUID=ubuntu分区的uuid ro locale=zh_CN quiet splash
initrd
/uboot/initrd.img-2.6.27-7-generic
quiet