linux学习记录
分类:
2009-01-06 10:13:24
感谢,,,,,, 和其他所有人在原上发表的建议。
示例中提供的仅是例子,请务必确保根据你的系统的实际情况改变分区号及类似信息。遵照本文档中所提供的解决方案须自己承担风险。
2. Grub loading, please wait...
代码 2.1: Grub输出 |
GRUB loading stage 1.5 |
出现这段信息之后,系统停止。如果你试图用grub软盘引导系统,这种问题就会消失。
根据你可以改变你BIOS中的引导命令。
调整你的BIOS使它不要首先从软盘启动。
上说这可能是由于错误的CFLAGS设定引起的。尽管现在的grub ebuild过滤掉了-fstack-protector,如果其他的不起作用运用干净的CFLAG重新编译grub也不会有问题。
代码 2.2: 使用干净的CFLAG重构GRUB |
# CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe" emerge grub
|
3. GRUB错误12
代码 3.1: Grub输出 |
12:Invalid device requested. |
如果设备字符串语法正确也会返回这个错误,另外这种错误的出现又不属于任何其它的错误。
当你通过交互命令在你的引导设备中安装grub时,你是否在grub命令提示符后执行下面两行呢?
代码 3.2: 交互安装命令 |
grub> root (hd0,0) |
(hd0,0)应该用你的引导分区替换,而(hd0)用你选择的HDD替换。谨记(hd0)将安装引导管理器到你的第一块硬盘(即主引导盘)的主引导记录(MBR)中。
4. Grub错误15
这个错误可能会发生在GRUB配置的两个不同阶段,或是在初始化配置期间(将GRUB安装在主引导记录中)抑或是在引导系统和试图连接Linux时(也或者是其它情况)。
代码 4.1: Grub输出──初始化配置 |
grub> root (hd0,0) |
代码 4.2: Grub输出──引导一条记录 |
Booting 'gentoo Linux' |
如果特定的文件名没有找到而其它的(诸如磁盘和分区信息)是正确的将返回这一错误。
幸运的是,这条错误标明了缺少一个内核映像文件。你要确保你的引导分区中存在以上提到的相关的文件。
为了找到你的内核的精确命名,从一个安装光盘中启动,挂载你的根分区和引导分区(如果可用的话)。然后,切换到你的Gentoo系统并列出所有可用的文件,看哪一个内核映像是你要启用的:
代码 4.3: 调整存在的内核映像 |
# cd /boot |
这将列出所有在你的引导分区所获得的内核。如果你的内核不存在,请确保你已经编译了一个内核(用genkernel或是手工编译):
代码 4.4: 重新编译内核 |
# cd /usr/src/linux/ |
并将它复制到你的引导分区:
代码 4.5: 复制内核 |
# cp /usr/src/linux/arch/i386/boot/bzImage /boot
|
调整内核的名字使其和你的grub.conf文件中定义的相同。另外还要确保你的grub.conf文件中关于内核的行关联到那个分区(相对的或绝对的)。
另外一个报告的错误是BIOS忽略了内核或grub stages所在的盘。除此之外,grub保存它stages的分区不应使用RAID-5(或其它的剥离技术)设定。
首先,调整你所用的root和setup行是正确的。
如果你确定它们是可用的,那么你可能用了有缺陷的GRUB版本(0.93.20031222)。请升级你的Portage树或是屏蔽此版的grub:
代码 4.6: 屏蔽Grub |
(在chrooted环境下执行这些) |
你同样可以用由GRUB作者所推荐的grub-install脚本:
代码 4.7: 运用grub-install |
(如果你使用一个单独的引导分区你则还需要--root-directory选项,否则就不用管它) |
如果这些都失败了,你的引导分区可能已经损坏。请检查分区错误:
代码 4.8: 检查分区错误 |
(确保引导分区,在此处是/dev/hda1) |
5. Grub错误17
代码 5.1: Grub输出 |
root (hd0,0) |
如果分区请求存在而文件系统类型不能被GRUB识别将返回此错误信息。
请一定检查你的root(x,y)在你的grub.conf中已经设置。
另外,如果你要引导Windows,请确保你的grub.conf文件中有root (hdX,Y)(或rootnoverify (hdX,Y))和chainloader (hdX,Y)+1。
6. Grub错误18
代码 6.1: Grub输出 |
kernel (hd1,4)/bzImage root=/dev/hdb7 |
当试图读取的线性块地址在BIOS可转换区之外时返回这个错误。这通常出现在如果你的硬盘大于BIOS可以控制(旧机器上(E)IDE硬盘的512MB和通常状况下高于8G)。
试试升级你的BIOS或将你的引导分区移动到前面(或至少到恰当的范围内)。
7. GRUB GRUB GRUB GRUB GRUB ...
代码 7.1: Grub输出 |
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB |
通过可以知道这可能是由让你的bios自动检测你的硬盘引起的。试试将你的bios选项设定成User Type HDD。
另外一种可能是你将Grub装在主引导分区上和试图将它重新安装(例如是因为更换硬盘)但是运用了错误的setup和root命令。
8. 检查设备推测BIOS驱动。这可能要花费很长时间。
当你试图安装grub,它在显示下面几行后挂起:
代码 8.1: Grub输出 |
# grub |
一个报告的原因是由外来的硬盘设备配置文件引起的,如在一条线上有多个ultra/non-ultra DMA硬盘。
9. 安装Grub时,系统挂起
安装Grub时,系统挂起
代码 9.1: Grub输出 |
# grub |
如果你没有软盘设备,你是否使用了--no-floppy开关?
代码 9.2: 使用--no-floppy开关安装grub |
# grub --no-floppy
|
10. Uncompressing Linux... Ok, booting the kernel.
出现下面的行后系统挂起:
代码 10.1: Linux输出 |
Uncompressing Linux... Ok, booting the kernel. |
严格来讲,这并不是grub错误。一种可能的原因是ACPI没有正常工作但是在内核中却已经将它启用。请尝试在bios中禁用它。
11. Grub只显示一个Grub提示符
当引导系统时,返回一个grub命令提示符而非一个你在grub.conf文件中所定义的选单。
挂载你的引导分区并检查grub/grub.conf,如果它存在。
代码 11.1: 挂载和检查 |
# mount /dev/hda1 /mnt/gentoo/boot |
同时确定 menu.lst 的符号链接存在:
代码 11.2: 检查符号链接 |
# ls -l /mnt/gentoo/boot/grub/menu.lst |
如果没有,请重新建立符号链接:
代码 11.3: 重新建立menu.lst的符号链接 |
# cd /mnt/gentoo/boot/grub |
如果是这种情况,请重新安装grub:
代码 11.4: 重新安装Grub |
(在chrooted环境下运行) |
12. 在/boot/boot找不到设备:找不到或没有块设备
当运行grub-install安装GRUB时,获得以下错误:
代码 12.1: Grub输出 |
# grub-install --root-directory=/boot /dev/hda |
检查你是否忘记了以下的:
代码 12.2: 更新mtab文件 |
# grep -v rootfs /proc/mounts > /etc/mtab
|
13. 在Grub菜单中点击回车后系统重新启动
系统启动时在Grub菜单中点击回车,系统重新启动。
请尝试禁用内核中的帧缓冲支持。如果这样做不起作用,禁用APM和ACPI。
14. 在Grub菜单中点击回车,出现黑屏
系统引导过程中,在Grub菜单中点击回车,出现黑屏,但是系统却仍有响应(例如,你的numlock指示灯还可切换)。
禁用帧缓冲(通常是从你的grub.conf中移除vga=XYZ)并检查你的内核配置中的处理器架构。
15. Grub Image缺失
系统启动时看不到Gentoo闪屏。
首先检查grub.conf中的闪屏文件确实存在。如果存在,再检查grub ebuild。可能是你所用的版本的闪屏图像的补丁被注释掉了。
16. 选择Windows选项后,系统从第二个硬盘中启动Windows失败,
选择了Windows选项以后,系统拒绝引导而且没有明显的原因。
提示我们你可以用不同的命令"映射"你的硬盘像下面一样改变grub.conf中的Windows选项:
代码 16.1: 硬盘映射 |
title Windows XP |
17. Grub segfaults when trying to install
这种状况经下面的解释说是只与现在将grub安装到引导分区的grub-0.95.x相关联的。
代码 17.1: 安装Grub |
grub> root (hd0,0) |
与此相关的是一个知名bug而且在grub 0.96中已经确定。同时grub 0.94 r1和grub 0.94 r2应该能正常工作。如果它同样失败了,你可以试着emerge已经在amd64下稳定和在x86下还不稳定(~x86)的grub-static。要获 得附加信息请参考bug 。