+ -
当前位置:首页 → 问答吧 → LFS6.2 --8.4章节GRUB错误

LFS6.2 --8.4章节GRUB错误

时间:2009-08-22

来源:互联网

进入GRUB shell后 按照操作到 setup处 因为我是在移动硬盘上做 所以我写的是grub> setup (hd1)
回车后 报错:Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no

Error 2: Bad file or directory type
安装到本机磁盘上也是这个错 可是/boot下有grub/stage1 啊 为什么会说找不到呢。。。
还请大家办忙看看阿

作者: reaver   发布时间: 2009-08-22

要注意序號的變更

http://www.linuxsir.org/bbs/thread153674-3.html

作者: d00m3d   发布时间: 2009-08-23

是的 我是针对自己的分区指定了grub的安装点 没有照搬说明,错误就原帖中说明的那个。还想请问版主,我在宿主系统(不chroot)下安装grub到我的移动硬盘上 这样做可以么,

作者: reaver   发布时间: 2009-08-26

先说明你的分区布局及挂点吧

作者: d00m3d   发布时间: 2009-08-26

我的分区很简单,就一个根和一个swap 因为是在移动硬盘上做,fdisk后是hdb1为“/”分区,所以我在grub下就指定的是:root (hd1,0) setup(hd1) 然后就是之前提到的报错,我现在考虑是不是移动硬盘被本机只当作了存储介质,还不是像通过跳线后和本机硬盘接在一起的概念,这样我是不是因该考虑USB启动,我还想试试:如果把grub安装在宿主系统上,能不能解决问题,但我想 这样因该是检测不到LFS。。。- -! 还请版主多多指点。对了,我每次是开机后先卸载已经被自动挂载的移动硬盘,然后从新挂载它到"/mnt/lfs"下,因为每次下班都要关机,所以在重新挂载后 我会再指定LFS变量,然后挂载虚拟文件系统,最后chroot开始制作过程,除了之前的出现的三四次报错外,一切正常。由于我还是个非常初学者,所以还请版主多费心啊:)
之前的帖子是发错地方了 实在不好意思:)不是故意的,嘿嘿

作者: reaver   发布时间: 2009-08-27

移动硬盘上的系統是完整的?

mount 的輸出為何?

作者: d00m3d   发布时间: 2009-08-27

请确认是否给 grub 漏打补丁,不打补丁时和新版 e2fsprogs 配合会有问题。
请确认 / 使用的文件系统类型 grub 是否认得。

PS:
其实安装 grub 到另一个准备做启动设备使的块设备,可以讨点巧,
menu.lst 中直接使用 root (hd0,0),root=/dev/sda1 一类的写法,
或者,不嫌烦的话也可以使用 root=根设备uuid
执行 grub 安装动作时,使用 root (hd1,0),setup (hd1),
这样就可以直接做启动盘。

作者: 聚焦深空   发布时间: 2009-08-28

谢谢 版主和7楼的兄弟,grub的启动已经是6.2版本的最后一步,之前我也没有出现什么重大的错误了,至于mount的输出 小弟确实不明白什么意思,请楼主包涵。
七楼兄弟的意见我现在就研究一下,谢谢大家的意见 嘿嘿,但愿问题顺利解决,我的进展还会继续跟贴,还希望大家多多帮忙:)

作者: reaver   发布时间: 2009-08-28

7楼的兄弟 我索性重装了grub,也确定打了补丁,但是问题依旧- -! 我想grub装不进去的话,menu.lst也不会起作用吧,还想问楼主一个问题,为什么LFS的boot里没有initrd的文件呢- -!

作者: reaver   发布时间: 2009-08-28

引用:
作者: reaver
谢谢 版主和7楼的兄弟,grub的启动已经是6.2版本的最后一步,之前我也没有出现什么重大的错误了,至于mount的输出 小弟确实不明白什么意思,请楼主包涵。
七楼兄弟的意见我现在就研究一下,谢谢大家的意见 嘿嘿,但愿问题顺利解决,我的进展还会继续跟贴,还希望大家多多帮忙:)
就是打 mount 命令,看输出结果,因为前面解说分区布局不够详细,我想看看系统挂载分区的情况

另外,我想知道移动硬盘上的系統是完整的?

如果是完整的,你可尝试 chroot 到移动硬盘上的系統来装 grub

作者: d00m3d   发布时间: 2009-08-29

呵呵,前面问题排除后,剩下的可能性就是路径问题了。

grub 中的路径 与 系统中的路径是两个概念,/ 不一定相同:
grub 命令行中的路径写全应当类似这样 find (hd1,0)/boot/grub/stage1,
如果前面执行过 root (hd1,0),则 find /boot/grub/stage1 与上面命令相同,
机器硬启动过程中,进入 grub 命令行,与在操作系统环境下进入 grub 命令行,对路径处理是一样的,
grub 能以只读方式直接访问自己支持的文件系统,不需要 操作系统 执行 mount 动作。

所以,您应当检查下,(hd1,0)/boot/grub/stage1 对应的操作系统中的文件是否存在。

另,grub 可看成两部分,引导程序(真正的 bootloader) 及 运行于 操作系统 中的支持部分,在 grub 命令行中执行安装操作 实际上 就是在安装真正的引导程序,
所以,您可以直接安装现有系统的 grub 引导程序到新硬盘,用其启动机器后。

真正的 grub 引导程序包括,boot/grub 目录下的 stage1 *stage1.5* stage2 及引导 stage1 的一小段直接驻留于硬盘物理扇区上的程序(通常这部分安装于 MBR 及硬盘第一个扇区后的几个扇区,这也是为什么 grub 无法安装在不分区硬盘上的原因,但 lilo 只需要写 446 字节即可 无此限制)。

作者: 聚焦深空   发布时间: 2009-08-29

有人玩Grub2没?

模块化架构, 支持VESA, 启动时可以选择漂亮的背景

作者: swordhui   发布时间: 2009-08-29

有,但我不会:

http://www.linuxsir.org/bbs/showthread.php?t=343836

http://www.linuxsir.org/bbs/showthre...=342847&page=2

作者: d00m3d   发布时间: 2009-08-29

我想我明白版主的意思了,我也大概有些明白问题出在哪了,我的移动硬盘上没有任何系统,只是做为一个存储设备挂载在了宿主系统上,制作开始的时候就很想知道这样到底能不能成功,我分析是这样:我的文件类型是没有问题,grub可以识别到,于是我用宿主系统安装grub到移动硬盘上,然后选择USB起动,加载内核的时候就出现一个类似于死循环的过程,我觉得是不是内核缺少移动硬盘部分的驱动,不认盘上的文件系统- -!我想如果我从“/”开始CP到宿主机器上的新分区,应该就没有问题了。主要我这初学者很多基础的东西还不扎实,所以让大家费心了,我会继续实验直到成功的:)

作者: reaver   发布时间: 2009-08-31

我又来打扰大家了,我将移动硬盘上的LFS除了sources文件,全盘CP到了我在本机上新划分出来的磁盘上,本想会一切顺利。。结果grub依然setup时报错:
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no
Error 2: Bad file or directory type
我都快哭了 到底为什么呢- -!

作者: reaver   发布时间: 2009-09-01

試 chroot 到移動硬盤上再裝,行不?

作者: d00m3d   发布时间: 2009-09-04

恩 我试试 这次我不卸载默认的挂载点了 直接chroot感觉应该还是不行,我现在在另外一台与之前的宿主系统一样的环境上做 但是我换了稍微低版本的内核,想看看行不行,这边的半成品我也继续研究,但愿有个好结果- -!还是谢谢版主对我的帮助:)我会将进展继续跟贴的

作者: reaver   发布时间: 2009-09-04

为了找到失败的原因,我在本机再次用新磁区制作了LFS,想看看是不是会出现之前的错误,结果很令人郁闷:
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no

Error 2: Bad file or directory type
老错误,我索性换了内核和initrd然后直接重启 然后从grub里引导LFS的核心 然后倒是开始启动了 内核加载也成功了 init也执行了 然后在文件系统检查那里报错 就过不去了。。。我感觉我有点胡整。但是我觉得这里的文件系统错误和grub报的错的根源是一样的吧,我真的不知道该怎么办了。。

作者: reaver   发布时间: 2009-09-07

出现了这样一种情况,我的一个朋友,在他的机器上按照youbest兄的速成手册制作 很快完成了,gurb也能成功安装,我CP他的东西过来,chroot然后从新安装grub,和我之前出现的错误是一样的
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no
Error 2: Bad file or directory type
但是同样的这种情况下,我重启后,从内核直接引导,朋友的就能成功引导,而我的不行- -! 请大家帮我分析分析。。

作者: reaver   发布时间: 2009-09-09