GRUB学习笔记(教程)

合集下载

GRUB 入门

GRUB 入门
第四章 使用 GRUB 准备
使用 GRUB 引导系统之前,需要知道一些信息。首先,应知道哪个分区保存了 Linux 内核,以及 root 文件系统的分区名称。然后,应查看现有 LILO 配置来寻找需要传递给内核的变量,如 "mem=128M"。一旦获取了这些信息,就可以开始了。 启动 GRUB 要启动 GRUB,需要关闭系统并退出引导盘。如果由于某些原因而不能立即关闭系统(比如上班时在部门的服务器上测试 GRUB),那么只要在提示中输入 "grub" 并继续操作。所有程序的运行情况都不会改变,只是您不能执行引导(因为 Linux 正在运行)。 首次接触 装入引导盘时,在屏幕顶部将出现一条消息,告诉您正在装入第一阶段和第二阶段。几秒后,将会出现一个熟悉的屏幕,显示如下: GRUB version 0.5.96.1 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> 可以看到,这些内容与在 Linux 中以驻留方式运行 GRUB 时出现的消息完全相同 -- 只不过现在我们是使用 GRUB 来引导 Linux。 "root" 在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。例如,在 Gentoo Linux 中,有一个单独的小分区专用于保存 Linux 内核与引导信息。大多数情况下,我们不安装这个分区,这样在系统意外崩溃或重新引导时,就不会把它弄乱。 这些,我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很"酷"的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区,我们很快就会讨论这个功能。但现在,让我们输入 root 分区。在提示中输入 root,但不要按 Enter 键: grub> root ( 现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下: grub> root (hd0, 现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表: grub> root (hd0, (tab) Possible partitions are: Partition num: 0, Filesystem type is ext2fs, partition type 0x83 Partition num: 1, Filesystem type unknown, partition type 0x82 Partition num: 2, Filesystem type unknown, partition type 0x7 Partition num: 4, Filesystem type is reiserfs, partition type 0x83 Partition num: 5, Filesystem type is reiserfs, partition type 0x83 如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了。 GRUB 命名约定 到目前为止,您可能会感到一点困惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,回来看一下 GRUB 提示,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。如果已经明白了 GRUB 硬盘/分区命名,您也许要调整当前 root 命令行,以使它指向保存 Linux 内核的分区。按以下格式输完命令,然后按 Enter 键: grub> root (hd0,4) (hit enter) Filesystem type is reiserfs, partition type 0x83 装入内核 现在已安装了 root 文件系统,到装入内核的时候了。在 GRUB 提示中,依次输入 "kernel"、空格、到内核的路径、空格、内核参数,如 root 参数(GRUB 将自动插入适当的 "mem=" 参数)。我在我的系统中输入: grub> kernel /boot/bz2.4 root=/dev/hda5 [Linux-bzImage, setup=0x1200, size=0xe1a30] 请留意 "root=" 内核参数,它非常重要。它应该指向保存 root 文件系统的 Linux 分区。您也许要写下到目前为止输入的命令,这样在教程后面讲述如何创建 GRUB 引导菜单时,就可以迅速找到它们。 Root,内核,引导! 您已经安装了 root 文件系统并装入了内核。现在,可以引导了。只要输入 "boot",Linux 引导过程就将开始。

grub命令行启动系统简明教程

grub命令行启动系统简明教程
这篇文章主要给大家介绍了关于在centos中部署多节点citus集群的详细步骤文中将实现的步骤一步步介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
grub命 令 行 启 动 系 统 简 明 教 程
今天倒腾服务器,修改grub.conf文件后导致系统起不来了。后来就学习了一下如何从grub命令启动。 grub引导其实挺简单的,只要简单地几步就可以了。
复制代码 代码如下: grub> root (hd0,0)
#指定第一块硬盘的第一个分区。这个root (hd[0,n],y)是可以省略的,如果省略了,我们要在kerenl 命令中指定
复制代码 代码如下:பைடு நூலகம்grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
# kernel 指令,用来指定Linux的内核,及/所在的分区 复制代码 代码如下: grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img # initrd 命令行来指定initrd文件

初级教程 grub4dos

初级教程 grub4dos

1.1 grub简介GRUB 是1 grub4dos初级教程-入门篇1.4 如何使用grub4dos对于多数没有或很少接触过linux的windows用户来说,刚开始使用grub时离不开菜单。

也就是说,使用grub前,我们要准备menu.lst 文件。

下面是一个menu.lst的例子。

(以#开始的行,表示注释,不执行)# 默认延迟时间(秒)timeout 30# 第一项为默认值default 0# 设置图形背景文件splashimage (hd0,0)/boot/grub/xp2008.gz# 设置中文支持的字体文件fontfile (hd0,0)/boot/grub/fontstitle 使用map启动本地硬盘上的瑞星杀毒软盘镜像文件map (hd0,0)/boot/grub/rav.img (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)title 使用memdisk启动本地Win98 软盘镜像文件kernel (hd0,0)/boot/grub/memdisk.gzinitrd (hd0,0)/boot/grub/win98.imgtitle 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件root (hd0,0)kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppyinitrd /boot/rav.ziptitle 启动第一主分区(hd0,0)上的操作系统rootnoverify (hd0,0)makeactivechainloader +1title 启动第二主分区(hd0,1)上的操作系统rootnoverify (hd0,1)makeactivechainloader +1title 重启reboottitle 关机halt此菜单文件的运行效果如下图。

【图2】参考这个例子,我们就可以根据自己需要对菜单进行修改。

Grub配置入门大宝库

Grub配置入门大宝库

Grub配置入门大宝库(超好用!!) for linux part2五、通过GRUB命令行来启动Linux操作系统;GRUB的命令行才是王道,如果知道怎么用命令行来启动操作系统,那理解menu.lst的写法也不难;也就是说在开机的时候,不用GRUB的菜单,通过GRUB的命令也是一样能把操作系统引导起来。

因为menu.lst的内容就是GRUB的一个一个的指令集合;是不是Linux这玩意很神奇?1、为什么需要学习GRUB的命令行;当我们把GRUB的menu.lst写错的时候,或者丢掉了menu.lst的时,比如在开机的时候,GRUB会出现grub>类似的命令提示符,这时需要我们用命令行启动系统;当然您可以不用定义GRUB的菜单,直接用命令行来启动系统,比如我现在就是,为了写GRUB的文档,就把menu.lst 删除了,直接用命令来启动系统;2、用命令行来引导Linux操作系统的步骤;通过命令行来引导操作系统的流程,也没有什么难的;无非是把指令手工输入到grub>提示符的后面;在这个过程中,tab键的命令补齐功能就显得很重要了。

如果您不知道有哪些命令,可以输入help;1)进入GRUB的命令行模式grub>如果开机时,GRUB出现的是grub>,说明你没有/etc/grub/menu.lst ,您需要自己写一个才会GRUB的菜单,让我们来选择进入哪个系统。

如果有GRUB的菜单,您可以按Ctrl+c组合键进入GRUB的命令行模式,会出现grub> 提示符;grub>2)获取帮助GRUB的help只要您在grub>提示符的后面输入help 就能得到GRUB所有的命令提示;grub> helpblocklist FILE bootcat FILE chainloader [--force] FILEclear color NORMAL [HIGHLIGHT]configfile FILE device DRIVE DEVICEdisplayapm displaymemfind FILENAME geometry DRIVE [CYLINDER HEAD SECTOR [halt [--no-apm] help [--all] [PATTERN ...]hide PARTITION initrd FILE [ARG ...]kernel [--no-mem-option] [--type=TYPE] makeactivemap TO_DRIVE FROM_DRIVE md5cryptmodule FILE [ARG ...] modulenounzip FILE [ARG ...]pager [FLAG] partnew PART TYPE START LENparttype PART TYPE quitreboot root [DEVICE [HDBIAS]]rootnoverify [DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [--setkey [TO_KEY FROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-addresstestvbe MODE unhide PARTITIONuppermem KBYTES vbeprobe [MODE]如果需要得到某个指令的帮助,就在help 后面空一格,然后输入指令,比如;grub>help kernel3)cat的用法;cat指令是用来查看文件内容的,有时我们不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知,这时,我们就要用到cat (hd[0-n],y)/etc/fstab 来获得这些内容;注意要学会用tab键命令补齐的功能;grub> cat ( 按tab 键会出来hd0或hd1之类的;grub> cat (hd0, 注:输入hd0,然后再按tab键;会出来分区之类的;grub> cat (hd0,6)Possible partitions are:Partition num: 0, Filesystem type unknown, partition type 0x7Partition num: 4, Filesystem type is fat, partition type 0xbPartition num: 5, Filesystem type is reiserfs, partition type 0x83Partition num: 6, Filesystem type is ext2fs, partition type 0x83Partition num: 7, Filesystem type unknown, partition type 0x83Partition num: 8, Filesystem type is reiserfs, partition type 0x83Partition num: 9, Filesystem type unknown, partition type 0x82grub> cat (hd0,6)/etc/fstab 注:比如我想查看一下(hd0,6)/etc/fstab的内容就这样输入;LABEL=/ / ext3 defaults 1 1/dev/devpts /dev/pts devpts gid=5,mode=620 0 0/dev/shm /dev/shm tmpfs defaults 0 0/dev/proc /proc proc defaults 0 0/dev/sys /sys sysfs defaults 0 0LABEL=SWAP-hda1 swap swap defaults 0 0/dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0有的弟兄可能会说,我不知道Linux安装在了哪个分区。

【IT专家】我的linux学习笔记(2)grub2 配置

【IT专家】我的linux学习笔记(2)grub2 配置

本文由我司收集整编,推荐下载,如有疑问,请与我司联系
我的linux 学习笔记(2)grub2 配置
2017/04/16 0 linux 默认是由grub2 引导启动的,win 的话我用过easyBCD,挺好用的。

但是双系统用两个引导开机很麻烦,就不用easyBCD 了
linux 的好处在于一切配置都是可以自定义的。

看到grub2 默认的黑白启动画面那
么难看,我就想到这个是不是也可以改一下呢
结果发现确实是可以的,而且能更改的不止启动画面。

1 grub
2 更改菜单顺序
sudo gedit /etc/default/grub #推荐用vi
GRUB_DEFAULT 改为2(第三个)
GRUB_TIMEOUT 改为5 秒
点保存,然后ctrl c
最后sudo update-grub2
重启
2 grub2 更改启动背景
安装图片包
apt-get installgrub2-splashimages
安装包在这儿
/usr/share/doc/grub2-splashimages
有个文件commons2tga.pl 很有意思,可以用网站的每日图片
但是是perl 写的,我不会。

我要学perl!
打开图片包的目地目录看到确实有10 张图
ls/usr/share/images/grub/
050817-N-3488C-028.tga Hortensia-1.tga
2006-02-15_Piping.tgaLake_mapourika_NZ.tga
Apollo_17_The_Last_Moon_Shot_Edit1.tga Moraine_Lake_17092005.tga。

GRUB图文教程

GRUB图文教程

GRUB图文教程GRUB图文教程一、忘记root用户密码相信,很多的朋友都遇到过这种情况,长时间的未使用,而导致忘记密码,没有了root 密码,对于LINUX来说,绝对是一种悲剧!。

那么接起来,小枫就来告诉大家忘了密码也是有法的,那就是进入单用户模式,修改GRUB配置文件,在此单用户模式下是不需要用户密码的,它此刻就属你个人所有,自己玩自己还需要密码么,答案当然是否定的!来吧,跟我一起做步骤:1、重启LINUX,在进入系统登录界面前,当你看到一个倒计时时,按任意键,将它停下来,就会出来如下图所示的界面,因为LINUX的版本不同,内容大同小异,但不重要2、看到上面这个界面后,如果你装了几个系统,这儿会出来多个,这儿就像windows 装了多系统一样,按'e' 进入编辑模式,3、这儿咱们用方向键选择第二项,即高亮显示的一项,修改引导文件GRUB,按'e' 进入编辑模式,出现以下界面,并在其光标所在位置加上空格1或空格s或空格single,这三个都可让我们进入单用户模式,我这儿输入的是singin,回车之后,按b进入引导4、在经过短暂的等待以后,不会提醒我们输入用户名以及密码的情况下就已经进入root用户,如图,只要进来了就好办了,设置root用户的密码输入passwd 并回车,输入你的新密码,到此就结束了。

,5、可能很多朋友看到这儿的时候都会发现,既然这么轻易就能免密码登录,那我设置的密码还有何用,那别人岂不是能轻易的进入我的系统,那么小枫接下来告诉大家怎么来设置我们的GRUB密码。

往下面看二、GRUB密码设置描述:设置GRUB可以在两处设置密码,一个是进入GRUB界面时的设置秘密,二一个是进入选择系统界面时设置秘密;1、输入:vi /boot/grub/grub.conf 打开GRUB的配置文件如图注:其中有一项为hiddenmenu隐藏菜单,将其注释后启动时不会有界面,只有一个倒计时;其中有一项为timeout=5设置的为停留时间5秒,修改以下几项:-找到title开头的这一行,在其前面设置password 你的密码,换行lock这是第一把锁(即进入GRUB菜单前),第二把锁,在title下面换行,输入passwd 你的密码换行,这是第二把锁(即进入系统前),你可以选择其中一项,也可两个都设置,2、设置好后,如下,我两个地方都设置了密码保存退出,当你重启后再想进入GRUB菜单中或进入你选择的系统时就需要密码了,这样就不用担心别人能随便进入你的GRUB菜单或系统了,3、玩到这里,我想大家不得不再考虑一个新的问题,我们虽然设置了密码,但是这个文件中的密码黑底白字的写着咱们保密的,开关,等于把咱们家保险箱的钥匙放在了电视机上,太不保险了,因此,引发了一个加密的问题;三、密码加密描述:把咱们的密码通过算法让它变成一串字符,LINUX中常用的是md5的方式加密(温馨提示:我们会在下面会用到“复制”这项功能,如果没有装,那么就在终端中执行或桌面方面中去执行)1、输入:grub加车,如图2、这儿我们可以输入help查看帮助,其中我们会看到有一项md5crypt,输入它并回车. Linux会要求我们输入密码,此密码就是我们要加密的字符串,输入要加密的字符串,回车后,它会帮我们计算出加密后的密码,复制这一段。

关于grub的学习 20160605121342

关于grub的学习Grub,的出现经常在linux启动出现问题时,会有一个界面grub#,后面可以采用一些命令重新引导系统启动。

Grub有三种,其中学习和使用的时frub for dis(grub4dos)是一个以gnu grub为基础的功能强的引导器,可以在dos和linux下运行,也可以通过其他引导器来运行,还可以作为mbr 运行,grub4dos内置了功能完善的bios级别磁盘仿真。

下面就是使用grub4dos为基础进行说明,gun grub与grub4dos的不同之处,可以在百度中寻找;1.如何安装grub4dos?下载grub4dos后,解压缩后就可以使用了,核心文件有grldr,grldr.mbr,和grub.exe,及menu.lst。

如果需要中文就用chinese子目录中的文件;安装方法4种:将grldr文件复制到c:\,去掉boot.ini的只读属性,然后修改c:\boot.ini文件,在boot.ini 的最后一行加入:C:\grldr=“start grub4dos”并将boot.ini的timeout值设置为大于0的数字,如:timeout=5然后保存并改回只读属性。

编辑boot.ini之前,可以在cmd下输入:Attrib –s –r –h c:\boot.ini解除boot.ini的只读属性,编辑完成后输入Attrib +s +r +h c:\boot.ini恢复boot.ini的原有属性这样,编辑完重启计算机,在nt的启动菜单出现start grub4dos这一个选项,,然后进入即可;此方法的优点是,不行也要修改mbr初学者使用grub一般都需要grub菜单,把贮备好的额menu.lst文件放到c:\下(也可以放到其他分区根目录货其它目录)。

Menu.lst的编写方法可参考readme.txt或者别人提供的menu.lst。

2.通过dos启动grub将机器通过如何可能的方式,软盘,光盘,u盘等启动到dos环境,最好是纯dos环境,既不加载任何驱动程序和tsr程序的dos环境,然后在dos下或者atuoexec.bat中运行grub.exe,即可进入grub4dos。

ubuntu学习笔记(二)之 GRUB的配置文件menu.lst的写法 - jiangxinyu的专栏 - CSDN博客

ubuntu学习笔记(二)之GRUB的配置文件menu.lst的写法- jiangxinyu的专栏- CSDN博客ubuntu学习笔记(二)之GRUB的配置文件menu.lst 的写法收藏ubuntu学习笔记(二)之GRUB的配置文件menu.lst 的写法2007-03-23 15:06menu.lst位于/boot/grub/menu.lst,而/boot/grub/grub.conf相当于是menu.lst在windows下的快捷方式(重装系统有时破坏GRUB后,menu.lst丢失而无法启动GRUB菜单时就需要在/boot下建立menu.lst后再和grub.conf建立链接来修复,建立链接是:ln -s menu.lst grub.conf(注意两文件的前后关系)),我们来学习如何编写GRUB的配置文件menu.lst.首先来看一下/boot/grub/menu.lst中的内容: default=0timeout=5#splashimage=(hd0,6)/boot/grub/splash.xpm.gz hiddenmenutitle Fedora Core (2.6.11-1.1369_FC4)root (hd0,6)kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ initrd /boot/initrd-2.6.11-1.1369_FC4.imgtitle Windows XProotnoverify (hd0,0)chainloader +1其中:a,default=0表示默认启动的第0号的操作系统,在GRUB中,title定义了启动的操作系统,从第1个开始,GRUB中是0,而第2个是1,依次类推...b,timeout=5表示的是出现GRUB界面后,无操作情况下进入default设定的操作系统的时间,如果上下移动选择,则该选项无效c,splashimage=(hd0,6)/boot/grub/splah.xpm.gz表示的是允许出现的GRUB背景的path,显然(hd0,6)指定了分区(不知能否这么解释,呵呵),而后边的则是正常的path(在例子中,用#把它注释,为一可选项)d,hiddenmenu表示隐藏GRUB的启动菜单,直接进入由default庙宇的操作系统中去,为一可选项.linux类其格式一般为:title (......)root (hd[0-n],x)kernel (......)initrd (......)其中:title行,是定义一个启动操作系统,而后边可以自己随便写上喜欢的名字,呵,当然最起码你得写得要自己能认出来,没必要把linux写成windows吧?!root行,指定相应的linux所有的/boot,如果在写分区和挂载时没有单独挂载,那么就和/在同一个分区中,hd[0-n]表示的是第几个硬盘,而x则表示的是[第几个分区-1],即x比分区号小1,特别要注意.kernel行,在这里以kernel 起始,指定Linux的内核的文件所处的绝对路径(通过在终端输入命令:ls/boot/vmlinuz*来看内核的全名);因为内核是处在/boot目录中的,而如果/boot是独立的一个分区,则需要把boot省略,因为/boot所在的分区在root (hd[0-n],x)中指定了,所以就无需要再指明内核处在哪个分区了;ro 表示只读;root=LABEL=/ 来表示Linux的根所处的分区。

grub2基础教程

grub2基础教程-修订版smallapple目录一、grub2新特性二、grub2安装与启动三、grub2配置文件详解四、脚本修改五、使用grub2常见错误及修复方法一、grub2新特性1、grub2和grub有很多不同的地方:a)图形接口b)使用了模块机制,通过动态加载需要的模块来扩展功能c)支持脚本语言,例如条件判断,循环、变量和函数d)支持rescue模式,可用于系统无法引导的情况e)国际化语言。

包括支持非ASCII的字符集和类似gettext的消息分类,字体,图形控制台等等f)有一个灵活的命令行接口。

如果没有配置文件存在,GRUB会自动进入命令模式g)针对文件系统、文件、设备、驱动、终端、命令、分区表、os loder的模块化、层次化、基于对象的框架h)支持多种文件系统格式i)可访问已经安装的设备上的数据j)支持自动解压2、设备的命名grub2同样以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。

设备是从0开始编号,分区则是从1开始,主分区从1-4,逻辑分区从5开始,而grub分区编号是从0开始的。

下面给出几个例子:(fd0):表示整个软盘(hd0,1):表示BIOS中的第一个硬盘的第1个分区(hd0,5)/boot/vmlinuz:表示BIOS中的第一个硬盘的第一个逻辑分区下的boot目录下的vmlinuz文件======================================================================================= ======================================================================================= ============二、grub2安装与启动1、安装ubuntu9.10时,grub默认安装在第一硬盘(hd0)的mbr,其实就是把引导文件boot.img写入硬盘的mbr,当然,用户也可以选择不写入硬盘mbr而是写入linux分区的引导扇区。

Grub详解

第 2 章 开机管理程序本章学习重点 ■GRUB与Linux操作系统的关系 ■GRUB与bootloader、boot sector之间的关系 ■GRUB的三阶段操作 ■如何设置GRUB■如何利用GRUB达到多重开机的目的软件架构设计第2章 开机管理程序Linux 操作系统之奥秘26开机管理程序扮演的角色,就是要在计算机开机时负责加载和传输操作系统的核心程序。

 许多用户都会在 PC 上安装所谓的多重开机管理程序,比如SPFDISK 这一类的软件,以便在开 机管理上提供更具弹性、更方便的功能。

使用这一类软件的例子莫过于各计算机教学相关的教 育单位,课程在计算机教学的习惯上因教育单位而异,导致在计算机内置系统的规划时,要支 持的种类至少也要有 Windows 及 Linux 两种。

此外,不同版本的 Windows 或 Linux 也会成为开 机的其他默认选项,因此,多重开机管理系统是必须使用的。

 现在大部分的操作系统默认提供的开机管理程序都可以多重开机,在Linux 下也提供了一 套多重开机管理系统,GRUB (GRand Unified Bootloader )是由GNU (GNU ’s Not Unix )的自 由软件基金会(Free Software Foundation ,FSF )所提供(看得出来 GNU 的名字故意取得有点绕 舌)的,GRUB 在使用、设置、操作或接口上,都比 Windows 或之前使用的另一套 LILO 方便 得多。

 2.1 何谓 G RUBGRUB (GRand Unified Bootloader )是 GNU 下的 FSF 组织所推行的一套多重开机管理软 件,目前 GRUB 在 Linux 上使用的版本为 0.97 版,FSF 的官方网站表示已经不会在此版本上再 追加任何新的功能,会将心思放在 GRUB 2 上。

将来的 Linux 版本也会使用 GRUB 为默认的开 机程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GRUB 知识补充目录1 --- GRUB 基础2 --- 命名习惯3 --- 安装 GRUB4 --- GRUB 接口5 --- GRUB 常用命令6 --- 保护 GRUB 设置7 --- GRUB 和 stage 文件8 --- GRUB 常见错误信息9 --- 制作 GRUB 引导软盘10 --- 使用 GRUB 通过网络引导操作系统11 ---把配置文件嵌入到 GRUB 中12 --- 总结13 --- 个人建议一、 GRUB 基础1.1GRUB 简介“boot loader”是计算机启动后第一个运行的软件。

它负责加载一个操作系统的内核,并把控制权交给内核。

内核则负责剩下的初始过程。

GRUB 一个很重要的特色就是灵活性;GRUB 可以识别文件系统和二进制格式的内核,所以你可以加载任何操作系统,而不需要记录内核在磁盘上的物理位置。

1.2GRUB 的现状我不打算介绍 GRUB 的发展历史,有兴趣的朋友可以自己到官方站点或者执行 info grub 自行获取信息。

我们着眼于 GRUB 当前的现状。

目前 GRUB 分成 GRUB legacy 和 GRUB 2。

版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称为 GRUB 2。

目前 GRUB Legacy 已经停止开发了,只是出于一个 bug fix 的状态,不再增加新的功能了,所有的开发都转移到 GURB 2 之上了。

1.3GRUB Legacy 和 GRUB 2GRUB 2 是源自于一个名为 PUPA 的项目,目的是建立下一代的 boot loader。

GRUB 2 几乎是从零开始开始开发的,它和 GRUB Legacy 不同的地方有很多,例如支持 scripts、国际化语言、动态加载模块、带有 resuce 模式等等,这些都是 GRUB Legacy 所没有的。

下面是 GRUB2 新特性的介绍:(原文请参考/software/grub/grub-2.en.html )•支持教本语言,例如条件判断,循环、变量和函数•图形接口•在运行时动态加载需要的模块,而不是在 biuld 的时候指定加入那些模块(静态)•可以移植到不同的架构上•国际化语言。

包括支持非ASCII的字符集和类似 gettext 的消息分类,字体,图形控制台等等。

•实际内存管理。

使得 GNU GRUB 更加具有可扩展性•针对文件系统、文件、设备、驱动、终端、命令、分区表、 os loder 的模块化、层次化、基于对象的框架•跨平台的安装,允许从另外一个架构上安装 GRUB•支持 rescue 模式,可用于系统无法引导的情况。

stage 1.5 被取消了•修复 GRUB Legacy 设计上的错误,同时又保持向后的兼容性。

1.4 Multiboot 规范Multiboot 规范是在 boot loader 和 kernel 之间的一个协议,用于统一各种引导操作系统的方法。

Linux 和BSD 目前并不支持该规范。

1.5可用资源z GRUB 的 homepage (/software/grub/grub-legacy-faq.en.html)z info grub1.6旧版 GRUB(GRUB Legacy)的功能特色z识别多种可执行格式,支持“a.out” , ELF, symbol tables)z支持 non-Multiboot 内核。

主要是FreeBSD、NetBSD、OpenBSD、Linux。

z支持加载多个模块z支持配置文件z提供菜单接口。

菜单项的数量并没有限制,目前版本支持数百个菜单条目z有一个灵活的命令行接口。

如果没有配置文件存在,GRUB 会自动进入命令模式z支持多种文件系统格式。

主要有BSD FFS”、“DOS FAT 16 、FAT32”,“Minix fs”、ext2/ext3、ReiserFS 、jfs、xfs、VSTa fsz支持自动解压z能够访问任何已经安装的设备上的数据z Be independent of drive geometry translations (这个不知道怎么翻译好)Unlike many other boot loaders, GRUB makes the particular drivetranslation irrelevant. A drive installed and running with onetranslation may be converted to another translation without anyadverse effects or changes in GRUB's configuration.z检测所有已经安装的 RAMz支持 LBA 模式。

在传统的磁盘调用(称为 CHS 模式),存在一个限制:就是 BIOS 无法访问在 1024 柱面。

之后的内容,所以 BIOS 只能访问最小 508 MB ,最大8GB 的空间。

(这也就是 /boot 分区必须在1024 柱面之前的原因)。

GRUB 并不能解决全部问题,因为并没有统一的解决方法,不过 GRUB 可以检测是否支持 LBA 模式,如果支持则使用 LBA 模式。

z支持网络引导,可以使用 TFTP 协议通过网络加载内核z支持远程终端,目前只支持串口二、命名习惯首先 GRUB 要求设备名被括在一个()中。

fd表示软盘,hd 表示硬盘(不区分 IDE 还是 SCSI)。

其次设备是从 0 开始编号,分区也是如此,分区和设备之间用一个 ‘,’ 分开。

下面给出几个例子:(fd0) :表示整个软盘(hd0,1) :表示 BIOS 中的第一个硬盘的第2个分区(hd0,0)/boot/vmlinuz :表示 BIOS 中的第一个硬盘的第一个分区下的 boot/ 目录下的vmlinuz 文件。

如果没有指定某个分区,则表示使用整个设备,否则只使用指定的分区。

三、 安装 GRUB3.1 下载 tarball有两种方法,一种是 rpm ;一种是 tarball 。

rpm 没有什么好说的,只是 rpm –Uvh 就可以了。

不过一般不会启用网络引导功能,所以我们决定采用 tarball 的方式安装。

首先到下面的地址下载 tarball :ftp:///gnu/grub上面有 GRUB Legacy 和 GRUB 2 ,就选择目前 RHEL AS4 用的 0.95 版本做实验。

不过在安装之前先要用 rpm –q grub 检查一下 grub 是否安装了。

如果是的话,用 rpm –e grub 删除,即使你在安装时指定不安装 boot loader ,安装程序还是会安装 grub rpm 包的。

3.2 安装需求INSTALL 文件中给出了 build 所需要的软件包条件:z GCC:当前版本的 GCC 应该也可以用,不过还是建议用 2.95 或者以上版本的 GCCz GNU Make:生成 Makefiles 所用z GNU binutils 2.9.1.0.23或者个更高版本z如果你想自己开发 GRUB ,还需要Texinfo 4.0或者更高,同时还有GNU Autoconf 2.5x,GNU Automake 1.7或者更高颁布。

3.3 参数介绍下面我们介绍几个 configure 过程中可能用到的选项,要完整的选项列表,可以参看 INSTALL 文件和netboot/boot 文件。

(注意选项名不含引号)z`--enable-preset-menu=FILE':默认情况下 grub.conf 和 stage2 文件是分离的,使用该选项,可以直接把配置文件嵌入到 stage2 中,这样启动时可以立即获得配置文件。

对于一些嵌入式的系统来说比较有用,又或者在前面提到的没有显示器/键盘的主机有用,因为在切换显示输出到你的笔记本之前,你是看不到启动的画面的,所以执行切换显示操作也是在看不到输出的情况下进行的(切换显示之后就不会了)。

通过这个选项你可以在 <FILE> 中指定启动时立即把显示输出切换到你的笔记本上了。

z--enable-diskless:如果使用了该选项,你会得到额外的两个文件,nbgrub 和 pxegrub。

接下来你需要指定网卡的驱动程序,netboot/ 目录下有较常见的几种,可以看到几种网卡可以合用一个驱动。

常见的有:z Intel Etherexpress Pro/100--enable-eepro100z Novell NE2100 and NE1500--enable-ne2100z Realtek 8139SMC 1211D-Link DFE530TX+ and DFE538TX--enable-rtl8139z3Com90x--enable-3c90x如果你不想那么麻烦,则按照下面的过程进行:z./configurez makez make installz安装结束。

默认命令会放在 /usr/local/bin 和 /usrlocal/sbin 下。

Stage 文件则放在/usr/local/share/grub/i386-pc/ 目录下。

3.4安装之后的操作z把 /usr/local/share/grub/i386-pc/ 目录下的所有文件统统拷贝到 /boot/grub/ 目录下。

z接下来是创建 grub.conf ,并在 /boot/grub/ 目录下建立一个 menu.lst ,指向 grub.conf。

z注意,这个 symbol link 在 Redhat 9 是必需的,否则启动时会直接进入命令模式,即使已经存在grub.conf ;但在 RHEL AS4 下却不是。

z确认 /usr/local/sbin 和 /usr/local/bin 在 PATH 变量的值中。

z执行 grub-install /dev/hda1 把 stage1 写入到 /boot 分区的引导扇区。

也可以执行 grub 进入 grub shell ,然后通过 root 和 setup 命令来安装 stage1 。

z重启机器,安装过程到此结束。

四、 GRUB 接口GRUB 除了菜单模式,还提供了一个命令模式和 grub shell 。

当系统启动并显示菜单时,按 c 键就可以进入命令模式。

提示符是 grub> 。

如果你已经成功引导操作系统并登录,可以在 shell 提示符下执行 grub ,这会启动一个 grub shell。

提示符也是 grub> 。

GRUB 能够象 bash 一样使用上下键来访问 command history ,ctrl-u、ctrl-k、ctrl-l 等快捷键也可以使用。

相关文档
最新文档