电脑开机出来grub什么意思

电脑开机出来grub什么意思,第1张

电脑开机出来grub,一般是引导文件损坏。

在grub中输入 help ,有命令列表;

输入以下命令:

find --set-root /ntldr    chainloader /ntldr    boot

就可以进入winxp的引导;

或者输入find --set-root /bootmgr    chainloader /bootmgr    boot

就可以进入win7 , vista 的引导;

或者,chainloader (hd0,0)+1    boot

就可以从第一个硬盘第一个主引导区引导。 

或者,find --set-root /peldr    chainloader /peldr   boot

可以引导winpe,

如果不行,试试find --set-root /avldr    chainloader /avldr   boot

还不能引导winPE,那就想其它办法引导winPE吧!

重新恢复主引导区,可以用光盘进DOS,使用fdisk /mbr可以恢复主引导区;

或者,进入windowsXP的故障恢复台,输入命令:fixmbr

也可以恢复主引导区

或者,进入 DOS 或 winPE 或 winXP 后,使用软件恢复主引导区都行。

GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多 *** 作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个 *** 作系统,并在计算机启动时选择希望运行的 *** 作系统。GRUB可用于选择 *** 作系统分区上的不同内核,也可用于向这些内核传递启动参数。

相关基本功能:

GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重 *** 作系统启动管理器。用来引导不同系统,如windows,linux。

在X86架构的机器中,Linux、BSD 或其它Unix类的 *** 作系统中GRUB、LILO 是大家最为常用,应该说是主流。

Windows也有类似的工具NTLOADER;比如我们在机器中安装了Windows 98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows XP。NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了。

在PowerPC 架构的机器中,如果安装了Linux的Powerpc 版本,大多是用yaboot 多重引导管理器,比如Apple机用的是IBM PowerPC处理器,所以在如果想在Apple机上,安装Macos 和Linux Powerpc 版本,大多是用yaboot来引导多个 *** 作系统。

因为X86架构的机器仍是主流, 所以目前GRUB和LILO 仍然是我们最常用的多重 *** 作系统引导管理器。

如何使用GRUB引导 *** 作系统进行自定义多启动

本文主要内容是使用GRUB来引导目前的绝大部分的系统,包括Windows、linux、bsd、UNIX、OSX等,对于其中涉及系统启动原理和硬盘工作原理部分都是来自于资料和个人理解,难免有错漏之处,请大家多多包涵。关于硬盘结构构成的部分就不附上了。

我们日常使用得最多的 *** 作系统是Windows,包括Windows xp、Windows 2000、Windows 2003和Windows vista、Windows2008等。Windows目前的系统的引导都是通过ntldr文件来传递引导参数; Windows 2000-Windows 2003是通过bootini文件来作为启动菜单;到了Windows Vista至目前最新的Windows 7是通过bootmgr启动管理器来管理启动菜单,也就是我们看到的启动windows时候给你选择的按F8,安全模式等等那个菜单。当然各个系统的 ntldr文件大小引导参数各不相同,但作用都是一样的。而linux、bsd等类unix系统是通过lilo或者grub等启动菜单直接加载内核(通常 是一个vmlinuz的内核)来启动,和Windows完全不同。

在用grub来引导所有系统之前,先看一下mbr的原理,这样对于使用grub来引导系统有很大帮助。mbr是“主引导记录”master boot record的英文缩写。一个扇区的硬盘主引导记录MBR由4部分组成:

1 主引导程序(偏移地址0000H--0088H)。它负责从活动分区中装载,并运行系统引导程序。

2 出错信息数据区。偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

3 分区表(DPT,Disk Partition Table)。含4个分区项,偏移地址01BEH--01FDH。每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

4 结束标志字。偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

mbr占用512个字节,位于硬盘的0柱面、0磁头、1扇区,可以直观的理解为mbr处于硬盘的最开始位置,一切硬盘的 *** 作都是由它开始。mbr不 属于任何一个 *** 作系统,也不能用 *** 作系统提供的磁盘 *** 作命令来读取它。我们通常所用的pqmagic(硬盘分区大师)、pm(partition manager)、diskgen(分区精灵),甚至dos的最常见命令fdisk(fdisk/mbr这个重建分区表的命令相信一些朋友用过了)都是通 过用ROM-BIOS中提供的INT13H(中断)的2号功能来读出该扇区的内容。 512字节的小空间只能作为一个引导符号标志用哪些引导文件来启动,所以MBR可以看做只是一个引导的符号链接。

Windows的启动便是通过修改mbr的第一个数据-主引导程序来实现对Windows的引导,直观的理解就是安装Windows的时候,它会修 改主引导程序,“通知”它 “我是Windows系统”,你只要寻找活动分区,然后找到ntldr,用这个文件来启动就好了。问题是如果是多类型系统的硬盘或者多样系统多硬盘混合的 硬盘,那就没辙了。Windows/dos的启动叫做链式启动,它不能直接启动linux,只能通过婉转的方式在bootini中加入对grub的支 持,再间接启动linux/bsd等。我们通常所用的矮人工具箱,或者grub4dos就是属于这一种。

Windows在 vista之前,使用这个方式启动linux配置起来是很简单的事情,但到了vista时代又不同了。微软不再是用bootini来管理启动菜单,而是 通过bootmgr启动菜单管理器。从此修改启动菜单只能通过命令行来修改。当然可以通过vistaboot等有gui界面的软件来修改,问题是经常不能 启动。这是个“划时代”的愚蠢作品。首先我完全看不出这个bootmgr有何新亮点,一样不支持命令组合,一样不支持直接引导类unix系统,一样不支持 虚拟光驱,对于这么一个产品,只能说它是个废物,目的只是为了加速grub进入电脑玩家的视野。

我便是因为Windows vista开始的bootmgr超级废物才决心去研究一下grub这个引导软件。grub有自己的命令组合(它的命令解释器很复杂,本人也没有完全掌握所 有的命令),可以随时调试分区启动,不用每次都进入系统去修改启动配置。grub现在已经作为各种linux发行版的标准配置了,甚至越来越多人使用 grub4dos。它是个万能的引导工具。

了解了一些硬盘引导的原理,接下来使用grub引导系统就很好理解了。目前虽然linux也渐渐普及,几个比较好的发行版桌面化也做得非常好,比如 opensuse、ubuntu,但是大多数人使用的还是Windows系统为主。对于linux系统的grub使用和Windows的完全相同。 grub4dos完全是绿色版的。了解过了mbr的简单知识之后,可以知道换个引导工具只需要修改主引导程序。直接解压附件grub4dos到C盘,启动 grubinst_guiexe,如图,如果有多硬盘,务必在磁盘的选项选中需要安装grub4dos的硬盘,包括U盘也可以直接使用grub启动(前 提是把U盘格式化成zip/hd/flopy模式)。一般情况下按照图中的选项配置后重启计算机就会进入grub的菜单。注意的是某些U盘就算使用硬盘模 式或者zip模式格式化之后还是无法直接使用grub-install gui修改其主引导程序,这是只能用命令行安装,加上--skip-mbr-test参数,总命令如下:grubinstexe--pause-- verbose--no-backup-mbr--mbr-disable-floppy --mbr-disable-osbr --skip-mbr-test (hd你自己要安装的硬盘,参考GUI界面的磁盘选择)。

菜单文件menulst可以用编辑器打开。如果用记事本打开行列顺序会错乱。最好是右击文件,用写字板打开。编写menulst之前,先要理解 grub对硬盘和分区的定义。在grub中,第一硬盘为hd0,第一硬盘的第一分区为(hd0,0),接下去类推,而不是由1开始的,如果不知道是第几分 区也不重要,在grub命令的(hd0,按TAB键,就可以列出硬盘的分区列表)。这点对确定linux的根分区很重要,因为根分区是从1开始的。

(1)Windows类系统和osx使用tboot引导:Windows类系统的引导前面已经说过是链式引导,grub支持直接链式引导任意的 Windows系统,也就是本来硬盘的引导顺序是主引导程序-Windows链式引导文件ntldr 变为主引导程序-grub-Windows链式引导文件ntldr 而已,其根本是完全没有变化的。Windows类的引导只需三行,指明分区和加上链接启动。如Windows2003的启动(假设装在第一硬盘第一分区)

titleWindows 2003

root(hd0,0)

chainloader +1

chainloader就是声明链式启动的意思,其他Windows版本也是相同。如果OSX4x86系统是使用tboot来引导,也是属于链式引导,所以也可以这样编写:

title osx

chainloader (hd0,0)/tboot

有的文章指出链式连接启动Windows必须加上makeactive参数,不过只要Windows装在主分区,无论怎么试验,加不加 makeactive参数都是能启动的,反而加上makeactive会频繁修改mbr不是很稳当的做法,个人认为在不使用makeactive无法启动 的情况下再加上这个参数。

需要注意的是,如果是多硬盘环境,务必要加上map参数,因为Windows系统启动只认第一硬盘,比如Windows系统装在第二硬盘第一分区,需要加上map参数,把第二硬盘映射为第一硬盘。

title Windows 2003

root (hd1,0)

map (hd0) (hd1)

map (hd1) (hd0)

chainloader +1

map映射顺序绝对不能搞错,首先要把hd0映射为装系统的盘,然后再把装系统的盘映射为hd0。

出现这个错误一般是因为分区表混乱或者错误,有时在U盘进行HD模式修改后,兼容性不好也会出现。

附件是我自己精简了一下的grub最小化Windows包,纯绿色,加上gui界面很直观,

附件还有一个32位的bootsect,可以把方便把MBR修改回Windows引导,包括NT52(对应WINDOWS XP和WINDOWS2003,通过NTLDR引导)和NT60类型(WINDOWS VISTA以及后续的WINDOWS版本,bootmgr引导)。

中:

(2)linux/bsd类系统的引导

(3)直接链接ISO等映像文件引导……。

第一行:tittle 设置在grub运行时在屏幕上显示文字

"Install ubuntu-1204-beta2-desktop-i386"这段文字就会作为启动选项显示在屏幕上

第二行:find [--set-root] FILENAME命令

意思是在所有分区上查找"FILENAME"文件名,并显示包含该文件的设备。当在某个设备上找到 FILENAME 时,立即停止查找,并将此设备设定为新的 root 设备。

第二行也就是说在所有设备上查找名字为"ubuntu-1204-beta2-desktop-i386iso"的ISO文件,找到后将此设备设为启动设备。

第三行:kernel命令,意思是加载在所设定的设备目录中的可执行内核文件。这个可执行kernel文件vmlinuz在boot文件夹里,所设置的boot目录为"boot=casper iso-scan/filename=/boot/"

第四行:initrid命令,从boot目录加载映像,也就是加载一个"临时的文件系统"。映像名为"initrdlz"

这个和你安装哪个版本的Linux无关

如果我没理解错的话:

你是装了xp 然后安装了 grub for dos 以此来实现Linux的硬盘安装

装完Linux后,你电脑的mbr被修改了(默认情况), 电脑就是用Linux的grub启动了

因此修改Linux的 grublst 中的timeout值(大概是这个名字 默认为0)项目来实现grub的开机启动项画面 停留几秒

以上就是关于电脑开机出来grub什么意思全部的内容,包括:电脑开机出来grub什么意思、如何使用GRUB引导 *** 作系统进行自定义多启动、关于GRUB启动引导等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10121863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存