GRUB2启动引导器完全教程(共41页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《GRUB2启动引导器完全教程(共41页).doc》由会员分享,可在线阅读,更多相关《GRUB2启动引导器完全教程(共41页).doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上GRUB2 启动引导器 完全教程本教程仅讨论GRUB版本2,流行的启动引导器的下一代。如果您在寻找常规GRUB的教程,请查看文章。欢迎来到GRUB2启动引导器教程!你肯定已经读过我的关于GRUB legacy版本的指南。在过去的两年半里面,它独自积累了五十万次阅读,在全世界的计算机使用者中相当流行和实用。我希望利用我的GRUB2重新创造同样的成功。目标为用户使用GRUB作为他们的启动引导器实现启动任何其钟情的类UNIX操作系统或者多重启动他们的计算机提供一个简单、实际、循序渐进、行之有效的教程,从而允许他们快速、简单、毫不不费力的控制他们的系统启动流程。在这个教程里,
2、您将学到如何使用GRUB2,添加和删除菜单,定制标题和启动选项,双重启动和三重启动操作系统,结合GRUB和GRUB2,我们甚至看一下Windows如何加入这个模式。之后,我们将学习如何从错误中恢复。目录1.2.3.4.5.6.7.8.9.10.11.12.13.14.警告警告!GRUB2还是测试软件。尽管它已经获得Ubuntu的青睐,本身没有质量问题。您可以没有问题的使用,虽然可能存在损害,但那离您是非常遥远的,即使真的发生,损害也只是轻微的一点点。您需要认识到这些。另外,任何处理危险的任务比如执行系统本身的危险命令,磁盘分区,启动序列,镜像,等等的时候,您应该时刻准备着最坏的情况。这意味着:
3、 对您的数据来考虑您必须有一个可靠的备份过程。 您必须拥有从灾难中迅速恢复的知识和工具。 这包括可以恢复系统的前一个镜像,修复损毁。 配置,恢复启动引导器,还有更多。 您必须对您所做的有信心。现在您知道了这些,让我们高兴并且安全的开始。那么一定要铭记,GRUB2还是测试版。尽管同样我们可以想到Google Mail,它测试了六年或者更多,您必须小心练习。更重要的是,这篇指南的内容和内容相关可能会随着GRUB2被做成产品而改变,所以请持续关注更新。GRUB2路标这是您使用GRUB2之前需要考虑的。什么时候GRUB2会成为类UNIX操作系统的实际启动引导器?目前,GRUB legacy版本工作的很
4、好并且还将持续很多年。像RedHat和Novell这样的公司为了服务器发行版会提供长期的技术支持,GRUB legacy还是作为重要参与者存在五到十年。在桌面领域,采用比率会快一些,但是不要期待短期内会有奇迹发生。尽管如此,这并不影响探索。请认识到您很可能会遇到兼容性问题而抛锚,特别是很多保守的发行版对新技术的支持并不是很及时。到目前为止,GRUB2仅仅被Ubuntu家族使用,Ubuntu家族占了桌面市场的三分之一到一半。这使得这篇指南变得有意义,因为两个或者三个Linux家庭使用者中就会有一个希望了解GRUB2信息并学习它的使用技术。让我们现在到真正的技术中去。GRUB2 介绍在开始之前,我
5、强烈推荐您阅读我的关于GRUB常规版本的指南,这会帮助您更好的理解这篇文章。GRUB2 引入了很多新的更改。GRUB2有更好的移植性和模块性,支持非ASCII码字符,动态加载模块,真实内存管理,还有更多。所有这些几乎都和大多数使用者无关。您需要知道的仅仅是配置文件的改变和GRUB2的操作方法。新布局GRUB legacy版本将文件放置在/boot/grub/目录下,包括在启动过程中读取并显示内容给用户的menu.lst文件。GRUB2将文件主要放在三个地方:/boot/grub/grub.cfg -这是替代menu.lst的主要配置文件。不像menu.lst那样,grub.cfg不能手动更改!
6、我强烈建议不要尝试干预这个文件,无论是使用chattr命令或者其他。由他去就行。/etc/grub.d/ -这个新文件夹包含GRUB脚本。这些文件是创建grub.cfg文件的基础。当相关的GRUB命令执行以后,这些脚本以某个特定的顺序被读取并且创建grub.cfg文件。/etc/default/grub -这个文件包含GRUB脚本读取并且写入grub.cfg文件的GRUB菜单。它是GRUB的定制部分,类似于老的menu.lst文件,实际启动项目除外。这意味着,如果您想改变GRUB菜单,您将必须编辑已经存在的脚本或者创建新的脚本,然后更新菜单。相比老的GRUB,这更类似于LILO,LILO允许在
7、运行中编辑菜单。Grub.cfg文件实例文件位于:/boot/grub/:Grub.cfg文件看起来是这样的:它实际上并不有趣,因为它仅仅是个脚本。多数人可能不想读它的内容或者不能完全理解它们。但是这个文件在任何您更新了GRUB菜单的时候还是值得浏览一下,以确保正确的条目像您预期的一样被加了进来。但是仅仅在您熟悉脚本的情况下!/etc/grub.d/ 目录示例这是刚刚安装的系统中/etc/grub.d/文件夹下的所有文件,以Kubuntu为例:我们来看一下这些脚本:00_header是从/etc/default/grub中加载GRUB设置的脚本,包括超时、默认启动项和其他。我们会稍侯了解更多。
8、05_debian_theme定义背景、颜色和主题。这个脚本的名字很明确将会改掉当别的版本采用GRUB的时候。10_linux 为已经安装的发行版加载菜单项。20_memtest86+ 加载memtest(内存测试)功能30_os-prober 这个脚本将会扫描硬盘上的其他操作系统并且添加到启动菜单。40_custom 是一个您可以用来创建新加的条目到菜单的模板。您是不是已经认识到了脚本名字中数字的使用?不错,这有点像不同的runlevel的Start/Kill脚本的顺序。数字定义了优先级。这意味着10_linux会比20_memtest86+先执行所以在启动菜单项中的位置更加靠前一点。这些脚
9、本也不太有趣。像grub.cfg文件一样,他们也不希望被编辑,除了40_custom。您必操作这些脚本的时候须非常小心。我们稍侯看看它们的样子并且学习一下如何使用它们。/etc/default/grub示例文件位于:/etc/default/目录下这个目录包含很多其他文件所以不要以为仅仅被GRUB使用。grub文件是一个被00_header脚本解析的文本文件。您可以在这里更改如果您想改动的话。我们稍侯在定制部分细谈。现在我们知道了文件是什么样的,让我们看看怎么使用。基本用法是将我们的理论知识转化为实际行动的时候了。GRUB2如何工作?GRUB2这样工作:/etc/default/grub包含定
10、制化;/etc/grub.d/脚本包含GRUB菜单信息和操作系统启动脚本。当运行update-grub命令时,它读取grub文件的内容、执行grub.d中的脚本来创建grub.cfg文件。就是这样。想要更改grub.cfg文件,您需要编辑grub文件或者grub.d下面的脚本。脚本是被执行的,这意味这他们拥有执行权限,如果您取消了执行权限,他们将不会执行。这意味着您可以在grub.d下放多个文件,您想放多少就放多少,像update-grub能读的shell脚本那样长。如果您想使用他们,就激活可执行权限(chmod +x),反之亦然,去掉可执行权限(chmod x)。让我们来看一下这些脚本:拿0
11、0_header和05_debian_theme作为示例:40_custom更有意义,但是它并没有告诉我们怎么定制脚本。不要担心,我们会稍侯学习所有东西。添加新的GRUB脚本添加一项新的启动选项,您必须遵循一些基本语法:创建一个新文件并且以数字和下划线作为文件名的前一部分。如果您想把启动项放在其他选项的上边,使用一个稍小的数字,如果您想放在其他的后边,使用一个稍大的数字。例如:11_something将被放在操作系统默认条目的后边,反之08_something将被放置在10_linux条目的上方。下一步是写实际内容,下面是例子:#!/bin/sh -eecho Some stringcat &
12、2例如: echo Adding openSUSE 11.2Cat EOF 定义实际启动条目的开始menuentry “Something”是菜单的名字。例如:Linuxset root=(hdX,Y) 设置根设备。危险!GRUB2使用分区标记从一开始而不是像GRUB legacy版本那样从0开始!这是非常非常重要的并且是必须记住的!换句话说,标记设备是还是从0开始,但是分区从一开始。比如,sda1在GRUB2中表示为(hd0,1),但是之前的版本表示为(hd0,0)!- boot parameters- 每个操作系统都不同,在Linux中,您使用可能类似于:linux /boot/vmlin
13、uzinitrd /boot/initrd.img但是在Windows中,您可能使用:Chainloader(hdX,Y)+1所以,一个完整的脚本应该是这样子:#!/bin/sh -eecho Adding my custom Linux to GRUB 2cat EOFmenuentry My custom Linux set root=(hd0,5)linux /boot/vmlinuzinitrd /boot/initrd.imgEOF或者为了启动Windows,像这样:Or for Windows, something like:#!/bin/sh -eecho Adding Wind
14、ows 8 to GRUB 2 menucat EOFmenuentry Windows 8 set root=(hd0,1)chainloader (hd0,1)+1EOFEOF结束GRUB条目。现在我们拥有了一个文件,使之可执行:chmod +x XX_new_os_scriptGRUB2 命令:还有一件我想在这里强调的事情是包含在cat EOF 部分的数据,正如我们刚刚看到的,cat命令在脚本中以EOF开始定义了GRUB代码,这些代码不会被shell执行,而是直接添加到GRUB菜单列表。也就是说,cat EOF 和 EOF之间的任何东西都是GRUB命令。我们在脚本中已经使用了多个不同的命
15、令。有些您可能已经在GRUB legacy版本中见过,有些则是新的和陌生的。不要担心,有一个完全的里表,包括跟GRUB legacy的对比,一些命令被替换也有一些新加的命令,可以查看更新GRUB新脚本已经就位,但是GRUB菜单(grub.cfg)并没有被更新。我们需要执行update-grub命令来让一切发生。update-grub这里有一个来自双重启动的配置例子,稍侯我们会更加仔细的检查。我已经添加了两个Kubuntu条目和一个Ubuntu条目来启动Ubuntu GRUB菜单。我做这些是为了摆脱默认的10_linux, 10_linux很丑陋并且在名称中使用公共内核的名字,外加相同的调用Ub
16、untu和Kubuntu。但是让我们慢下来。我们第一个任务是添加新的脚本。我们确定它能够正常启动以后,我们会删除副本。重新启动以后,我们会得到这样的画面 对于图片的不美观我很抱歉。一旦我们使用新脚本启动成功,我们可以去掉10_linux的执行权限。通过改变脚本名称中的数字改变脚本启动顺序您也可以更改数字,比如,我更改Kubuntu条目到08和09,这样他们就优先启动,在默认条目之前。替换默认条目这里有些事情可能您想试试,像我们上边提到的。为了确认您的新脚本可以正确的启动,您可以查看 grub.cfg 中可以工作的条目来确认您使用了正确的linux和initrd行。这里是现成的例子:相应的,我创
17、建了新脚本:操作系统探测器操作系统探测器同样对您有帮助。它会找到您硬盘中其他的启动条目并且添加到菜单中。您可以使用这些信息来创建自己的脚本。再看一次grub.cfg文件的os-prober部份的更多数据:重装GRUBGRUB2在您已经启动了系统以后也可以重新安装。您不需要启动其他环境(如光盘启动)。只需要对设备或者分区执行install-grub命令即可。grub-install 这里的可以是/dev/hda, /dev/sdb, /dev/sdc4 等等。重要的一点是您应该注意一下命令的输出。如果您执行命令的时候有其他的硬盘连接在电脑上,GRUB2会把他们添加到映射列表。这应该不会造成什么伤
18、害,但是如果条目不正确(输出信息中包含grub-install reports incorrect devices),那么先拿掉它们。这是命令输出的例子:您需要打开/boot/grub/device.map文件,删除错误的条目,像我们这里指向/dev/sdb的这条。然后从新执行gru-install命令。简短的总结就是这些了,您现在拥有了开始工作的所有工具。为了更加清楚一点,我对GRUB2的介绍和基本用法部分做了一个简短的总结,我们来看一下:GRUB2 主要有三个部份:1. /etc/default/grub -这个文件包含了GRUB2的菜单。2. /etc/grub.d/ -这个目录包含了生
19、成GRUB2菜单的脚本。3. /boot/grub/grub.cfg -GRUB2的配置文件,勿直接编辑。update-grub 命令读取 /etc/grub.d 目录中的可执行脚本,并且按照数字顺序执行来生成 grub.cfg 文件,这期间00_header会读取/etc/default/grub文件中的配置。启动条目来自多个地方,默认的来自安装GRUB的发行版,还有在硬盘上探测到的其他操作系统,外加用户添加shell脚本增加的定制条目。添加或者删除某个条目,您可以通过更改脚本的权限实现,并不需要删除它们。GRUB2可以在任何时候重新安装,包括通过GRUB2启动的系统中。有问题么?很好,正如
20、您看到的,这非常简单。现在,让我们看一下现实的情况。之后,我们会自定义GRUB2并且看一下如何从各种错误和配置错误中恢复。现实多重启动情况在这一部分,我们讨论一下几种比较常见的多重启动案例,包括GRUB和GRUB2合成,Windows和Linux并列,chainloading和其他。其中的一些试验是分别在不同的物理系统中进行的,所以一些启动菜单的截屏是实拍图片,所以一部分可能看起来有点古怪并不像您想象的那么动人,但这仅仅是为了保证您使用GRUB2进行其他管理任务也同样简单,只需要多一点耐心和谨慎。双重启动:使用GRUB2启动两个操作系统这可能是双重启动最简单的配置了,连个操作系统都是用GRUB
21、2,所以他们可以容易的互动。两个操作系统分别是Ubuntu9.10和Kubuntu9.10,都是用Ext4格式。Ubuntu先安装,同时将GRUB2安装到了/dev/sda的MBR,然后安装Kubuntu,重写了 MBR中的GRUB。然而,操作系统探测器成功的发现了Ubuntu并且添加了Ubuntu的启动项。如果您读过我的教程,您会发现Kubuntu启动项也是标为Ubuntu的,这可能会和机器上的Ubuntu混淆。这一部分,我们将: 学习如何编辑已有的条目使之更加漂亮。 添加新的启动项并且为已有的排序。这会给我们一些线索,关于GRUB2如何工作和怎么更改它。之后,我们看一下从legacy GR
22、UB启动引导GRUB2,反之亦然。再之后我们加入Windows的引导。我们已经看了一点测试用例,有默认的条目,但是并不好看,我们想替换掉它们。所以参考grub.cfg文件,检查10_linux使用的语法,就像我们前面做的,拷贝相应的部分到我们的新脚本,08_9_10_kubuntu和08_9_10_kubuntu_recovery.,我们添加可执行权限(chmod +x)并更新GRUB(update_grub),非常简单。重启并确认每个都可以正常工作以后,我们拿掉条目已经被替换了的10_linux。工作完成,简单至极!双重启动:两个操作系统使用GRUB legacy和GRUB2的结合。这是一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GRUB2 启动 引导 完全 教程 41
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内