GRUB2启动引导器完全教程(共41页)

上传人:沈*** 文档编号:140510616 上传时间:2022-08-23 格式:DOC 页数:41 大小:1.82MB
收藏 版权申诉 举报 下载
GRUB2启动引导器完全教程(共41页)_第1页
第1页 / 共41页
GRUB2启动引导器完全教程(共41页)_第2页
第2页 / 共41页
GRUB2启动引导器完全教程(共41页)_第3页
第3页 / 共41页
资源描述:

《GRUB2启动引导器完全教程(共41页)》由会员分享,可在线阅读,更多相关《GRUB2启动引导器完全教程(共41页)(41页珍藏版)》请在装配图网上搜索。

1、GRUB2 启动引导器 完全教程本教程仅讨论GRUB版本2,流行的启动引导器的下一代。如果您在寻找常规GRUB的教程,请查看文章。欢迎来到GRUB2启动引导器教程!你肯定已经读过我的关于GRUB legacy版本的指南。在过去的两年半里面,它独自积累了五十万次阅读,在全世界的计算机使用者中相当流行和实用。我希望利用我的GRUB2重新创造同样的成功。目标为用户使用GRUB作为他们的启动引导器实现启动任何其钟情的类UNIX操作系统或者多重启动他们的计算机提供一个简单、实际、循序渐进、行之有效的教程,从而允许他们快速、简单、毫不不费力的控制他们的系统启动流程。在这个教程里,您将学到如何使用GRUB2

2、,添加和删除菜单,定制标题和启动选项,双重启动和三重启动操作系统,结合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版本工作的很好并且还将持续很多年。像R

4、edHat和Novell这样的公司为了服务器发行版会提供长期的技术支持,GRUB legacy还是作为重要参与者存在五到十年。在桌面领域,采用比率会快一些,但是不要期待短期内会有奇迹发生。尽管如此,这并不影响探索。请认识到您很可能会遇到兼容性问题而抛锚,特别是很多保守的发行版对新技术的支持并不是很及时。到目前为止,GRUB2仅仅被Ubuntu家族使用,Ubuntu家族占了桌面市场的三分之一到一半。这使得这篇指南变得有意义,因为两个或者三个Linux家庭使用者中就会有一个希望了解GRUB2信息并学习它的使用技术。让我们现在到真正的技术中去。GRUB2 介绍在开始之前,我强烈推荐您阅读我的关于GR

5、UB常规版本的指南,这会帮助您更好的理解这篇文章。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允许在运行中编辑菜单。Grub.

7、cfg文件实例文件位于:/boot/grub/:Grub.cfg文件看起来是这样的:它实际上并不有趣,因为它仅仅是个脚本。多数人可能不想读它的内容或者不能完全理解它们。但是这个文件在任何您更新了GRUB菜单的时候还是值得浏览一下,以确保正确的条目像您预期的一样被加了进来。但是仅仅在您熟悉脚本的情况下!/etc/grub.d/ 目录示例这是刚刚安装的系统中/etc/grub.d/文件夹下的所有文件,以Kubuntu为例:我们来看一下这些脚本:00_header是从/etc/default/grub中加载GRUB设置的脚本,包括超时、默认启动项和其他。我们会稍侯了解更多。05_debian_the

8、me定义背景、颜色和主题。这个脚本的名字很明确将会改掉当别的版本采用GRUB的时候。10_linux 为已经安装的发行版加载菜单项。20_memtest86+ 加载memtest(内存测试)功能30_os-prober 这个脚本将会扫描硬盘上的其他操作系统并且添加到启动菜单。40_custom 是一个您可以用来创建新加的条目到菜单的模板。您是不是已经认识到了脚本名字中数字的使用?不错,这有点像不同的runlevel的Start/Kill脚本的顺序。数字定义了优先级。这意味着10_linux会比20_memtest86+先执行所以在启动菜单项中的位置更加靠前一点。这些脚本也不太有趣。像grub.

9、cfg文件一样,他们也不希望被编辑,除了40_custom。您必操作这些脚本的时候须非常小心。我们稍侯看看它们的样子并且学习一下如何使用它们。/etc/default/grub示例文件位于:/etc/default/目录下这个目录包含很多其他文件所以不要以为仅仅被GRUB使用。grub文件是一个被00_header脚本解析的文本文件。您可以在这里更改如果您想改动的话。我们稍侯在定制部分细谈。现在我们知道了文件是什么样的,让我们看看怎么使用。基本用法是将我们的理论知识转化为实际行动的时候了。GRUB2如何工作?GRUB2这样工作:/etc/default/grub包含定制化;/etc/grub.

10、d/脚本包含GRUB菜单信息和操作系统启动脚本。当运行update-grub命令时,它读取grub文件的内容、执行grub.d中的脚本来创建grub.cfg文件。就是这样。想要更改grub.cfg文件,您需要编辑grub文件或者grub.d下面的脚本。脚本是被执行的,这意味这他们拥有执行权限,如果您取消了执行权限,他们将不会执行。这意味着您可以在grub.d下放多个文件,您想放多少就放多少,像update-grub能读的shell脚本那样长。如果您想使用他们,就激活可执行权限(chmod +x),反之亦然,去掉可执行权限(chmod x)。让我们来看一下这些脚本:拿00_header和05_d

11、ebian_theme作为示例:40_custom更有意义,但是它并没有告诉我们怎么定制脚本。不要担心,我们会稍侯学习所有东西。添加新的GRUB脚本添加一项新的启动选项,您必须遵循一些基本语法:创建一个新文件并且以数字和下划线作为文件名的前一部分。如果您想把启动项放在其他选项的上边,使用一个稍小的数字,如果您想放在其他的后边,使用一个稍大的数字。例如:11_something将被放在操作系统默认条目的后边,反之08_something将被放置在10_linux条目的上方。下一步是写实际内容,下面是例子:#!/bin/sh -eecho Some stringcat &2例如: echo Add

12、ing 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/vmlinuzinitrd /boo

13、t/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 Windows 8 to GRUB

14、 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命令。我们在脚本中已经使用了多个不同的命令。有些您可能已经在GRU

15、B legacy版本中见过,有些则是新的和陌生的。不要担心,有一个完全的里表,包括跟GRUB legacy的对比,一些命令被替换也有一些新加的命令,可以查看更新GRUB新脚本已经就位,但是GRUB菜单(grub.cfg)并没有被更新。我们需要执行update-grub命令来让一切发生。update-grub这里有一个来自双重启动的配置例子,稍侯我们会更加仔细的检查。我已经添加了两个Kubuntu条目和一个Ubuntu条目来启动Ubuntu GRUB菜单。我做这些是为了摆脱默认的10_linux, 10_linux很丑陋并且在名称中使用公共内核的名字,外加相同的调用Ubuntu和Kubuntu。

16、但是让我们慢下来。我们第一个任务是添加新的脚本。我们确定它能够正常启动以后,我们会删除副本。重新启动以后,我们会得到这样的画面 对于图片的不美观我很抱歉。一旦我们使用新脚本启动成功,我们可以去掉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/ -这个目录包含了生成GRUB2菜单的脚本。3

19、. /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启动两个操作系统这可能是双重启动最简单的配置了,连个操作系统都是用GRUB2,所以他们可以容易的互动

21、。两个操作系统分别是Ubuntu9.10和Kubuntu9.10,都是用Ext4格式。Ubuntu先安装,同时将GRUB2安装到了/dev/sda的MBR,然后安装Kubuntu,重写了 MBR中的GRUB。然而,操作系统探测器成功的发现了Ubuntu并且添加了Ubuntu的启动项。如果您读过我的教程,您会发现Kubuntu启动项也是标为Ubuntu的,这可能会和机器上的Ubuntu混淆。这一部分,我们将: 学习如何编辑已有的条目使之更加漂亮。 添加新的启动项并且为已有的排序。这会给我们一些线索,关于GRUB2如何工作和怎么更改它。之后,我们看一下从legacy GRUB启动引导GRUB2,反

22、之亦然。再之后我们加入Windows的引导。我们已经看了一点测试用例,有默认的条目,但是并不好看,我们想替换掉它们。所以参考grub.cfg文件,检查10_linux使用的语法,就像我们前面做的,拷贝相应的部分到我们的新脚本,08_9_10_kubuntu和08_9_10_kubuntu_recovery.,我们添加可执行权限(chmod +x)并更新GRUB(update_grub),非常简单。重启并确认每个都可以正常工作以后,我们拿掉条目已经被替换了的10_linux。工作完成,简单至极!双重启动:两个操作系统使用GRUB legacy和GRUB2的结合。这是一个有趣的案例。我们假设您有两

23、个操作系统,像Ubuntu,使用GRUB2,并且从Ext4启动,还有一个老一点的发行版,比如openSUSE11.2,也使用Ext4,但是使用GRUB legacy。我们将: 利用openSUSE的GRUB启动Ubuntu 使用Ubuntu的GRUB启动openSUSE 编辑两个系统的条目使之正常工作。让我们开始吧。决策:哪一个是默认的?这是您需要决定的,我们两个启动引导器,您需要选择一个作为默认的。如果您问我,现在为止,您应该使用GRUB legacy作为您的默认启动引导器,因为它有足够好的产品质量并且广为人知,确定支持引导。使用GRUB2将置您于少数派之列。好了,如果您将使用GRUB le

24、gacy来启动,您应该: 在安装发行版的时候将GRUB安装到MBR,在我们的例子中是安装openSUSE的时候,在安装的时候注意一点细节。 将GRUB2安装到使用它的发行版所用的主分区,这个例子中的Ubuntu,同样,请注意细节。否则,如果您计划使用GRUB2作为默认,您需要使用另一个思路。如果您不太确认,再检查一下分区表。在我们的例子中,Ubuntu先安装并且将root目录安装到了/dev/sda6将home目录安装到了/dev/sda7.然后安装openSUSE到/dev/sda1,home没有单独分区。因为我们希望使用GRUB legacy引导,所以: Ubuntu启动引导器需要安装到/

25、dev/sda6 openSUSE启动引导器需要安装到MBR(/dev/sda)现在都完成了,我们启动一下看看会发生什么。安装openSUSE以后,您会注意到GRUB菜单只包含openSUSE条目。原因是GRUB legacy并不知道如何直接获取GRUB2布局所以不能找到添加条目到菜单,您需要手工的做这些。启动到openSUSE并使用文本编辑器打开menu.lst文件,记得先备份一下!我们现在确实不知道GRUB legacy怎么使用GRUB2的菜单项,所以我们假设它跟Windows是一样的,我们将chainload另外一个系统,将控制权交给它的启动引导器。这样可以么?我不知道,试一试吧!我们正

26、在用GRUB经验来适应新的情况。如果您不明白图片中是什么也不要紧,您只需要明白,我们添加了最后面的这3行:title Ubuntu 9.10 Karmic Koalaroot (hd0,5)chainloader (hd0,5)+1启动时候,您将看到菜单(再次为丑陋致歉)如果您尝试启动Ubuntu 9.10 Karmic Koala这一项,您会遇到这样一个恶心的错误(Error 13):这类错误通常在Linux用户尝试启动Windows和Mac分区的时候会遇到。对Windows来说,解决办法是重新映射分区、隐藏分区或者激活它们,一般都可以解决。而Mac引导,跟这个问题相似。来自openSUSE

27、的GRUB legacy不能获取Ubuntu分区和GRUB2结构,我们需要一个不同的方式解决问题。更多信息,查看。从openSUSE启动Ubuntu的正确方法我们需要做的是,重新回到openSUSE打开nenu.lst文件,改成这样:(为不能看到图片的读者考虑)我们添加了下面这些到menu.lst文件:title Ubuntu 9.10 Karmic Koalaroot (hd0,5)kernel /boot/grub/core.imgsavedefaultboot您可能想知道我们做了什么,答案是,core.img文件是一个微型的内核镜像,这个镜像允许您启动适当的驱动器而且正确地识别和初始化真

28、正的内核。您可以把它看作传统initrd.img文件的集合。重启以后您会看到GRUB2菜单,选择一个启动。一旦进入了Ubuntu,如果您愿意可以做一点小动作,就是,回到update-grub脚本。它可以把安装的openSUSE添加到菜单中。这样您就有递归的GRUB菜单了。这不是必须的,但是非常有趣而且可以练习知识和控制的能力。另一个有趣的案例是Mandriva 2010和Ubuntu 9.10双启动。安装Mandriva的时候,您在第一次启动之前就可以选择手动更改GRUB启动引导器。事实上,很多发行版都允许您在一定程度上配置启动菜单。只要知道需要什么,您就可以通过安装时候配置菜单节省不少时间。

29、下面是在Mandriva安装时候编辑GRUB菜单。基本上,这和我们之前在openSUSE中所做的工作一样,您可以回去再看一遍。双启动Windows 7 和 Ubuntu这可能会有一部分用户感兴趣,一般来讲,和前面是一样的。然而,我为这个地方加了点料,GRUB升级到GRUB2.测试案例:一台电脑双启动Windows 7 和 Ubuntu 9.04,像中讲的那样。Ubuntu 9.04 使用GRUB legacy,但是可以升级到GRUB2,这也是我们将要做的。所以,我们先进行升级,注意细节,我们需要保证Ubuntu和Windows启动正常。把GRUB legacy升级到GRUB2首先安装GRUB2

30、包sudo apt-get install grub2查看终端,您需要回答几个提示。Chainload first第一个是直接把GRUB2安装到MBR还是先安装到Ubuntu的主分区并且使用GRUB legacy通过chainload测试一下。我们前面已经做过,就是通过调用core.img文件,所以我们知道怎么做。简洁起见,我们跳过这一步。下一步是确认命令行参数,大多数人不需要做任何更改。GRUB 2 就安装好了:在我们重启之前,确认grub.cfg文件已经正确的部署,并且包含正确的菜单项,指向正确的设备和分区。如果您需要确认他们的顺序正确,可以使用fdisk命令。Ubuntu菜单项:Wind

31、ows 菜单项:现在可以重启测试一下。您的GRUB菜单应该已经改变并且顶部包含一个指向GRUB 2 的chainload菜单项。可能出现的错误:当心尝试进入GRUB 2 的时候可能遇到GRUB Error 11 或者 GRUB Error 15.比如,GRUB Error 11 意味着选择了错误的设备,也可能是您通过ID而不是序号启动设备,这种情况下您必须更改其中一个字符串来让它正常工作。为了解决这个问题,您将需要选中Chainload菜单项,点e键进行编辑,然后更改root行映射到正确的设备。不要忘记您现在是使用GRUB legacy,所以分区的序列数是从0开始的。最糟糕的情况下,逐个测试r

32、oot(hdX,Y)知道你找到正确的那个。改了root行以后回车,然后点击b键启动。作为替代方案,如果您的GRUB比较古怪,使用设备ID而不是序列数字来调用,您将需要使用uuid替换以后的ID串,然后您应该就可以启动了。有不错的实例和截图可供参考。最终,您应该看到这样的GRUB2 菜单:正如您看到的,这里既有Ubuntu菜单项也有Vista(或者Windows7)菜单项,一切看起来良好,现在,把它们分别启动来测试一下是否可以正常工作。直到您感到满意了,启动到Ubuntu去完成迁移过程。您现在可以把GRUB2写入MBR并且设置为默认启动引导器。sudo upgrade-from-grub-leg

33、acy注意设备映射表需要的话做相应的改变。好了,我们完成了。我们已经学会了怎么更新GRUB,处理启动错误,正确配置Windows和Linux的双启动。附加的测试用例三重启动从这里开始,一切都非常简单,你想使用什么就使用什么。如果您正在使用GRUB legacy作为启动引导器,那么您将使用前面文章中所获得菜单项,添加GRUB2菜单项的时候使用/boot/grub/core.img.如果您在使用GRUB 2,那么系统探测器会发现其他的操作系统。如果您不喜欢那些标题,可以自定义菜单项。现在,世界在您手中!定制GRUB菜单比如说我们想编辑GRUB 2 菜单,包括默认选择,超时和其他选项。编辑 /etc

34、/default/grub这个文件包含着一些有趣的选项,获取您想改变一下,包括默认选项、默认超时设置、还有其他一些额外的选项。GRUB_DEFAULT=0 指定默认选中的菜单项。从0计数,您可以更改到您想设置为默认的那一项。如果您改为GRUB_DEFAULT=saved,它会选中最后一项。GRUB_TIMEOUT=10 指定默认的超时时间(以秒记),您可以改为任何数字,但是我们不推荐您改的太小,改为-1会让GRUB一直等待知道用户选择并敲回车键。您也看到了,还有很多其他设置,不不会每个都说。重要的是您记得它们在什么地方可以找到。不要盲目的改变,改之前一定要备份,更改时请参考官方文档。还有一件您

35、可能感兴趣的事情是去掉recovery菜单项。从菜单中去掉recovery菜单项。/etc/default/grub文件最后一行允许您关闭recovery模式菜单项。只需要取消注释符号并且更新GRUB。GRUB_DISABLE_LINUX_RECOVERY=true从菜单中去掉内存测试(memtest)如果您不想让GRUB菜单包含memtest项,可以将20_memtest86+这个脚本设置为不可执行,然后更新GRUB。sudo chmod -x 20_memtest86+更改菜单行标题除了使用修正的脚本替换10_linux脚本工作以外,您可以可直接修改10_linux脚本。更多信息可以参考文

36、章。更改主题 (启动背景图片)您可能希望使用一个漂亮的图片来替换令人生厌的深蓝色。不用担心,这很容易,只需要编辑一下05_debian_theme脚本。第一件事是找一些您喜欢的图片。注意一点,图片和菜单项需要有一定的差异,这样才不影响您读菜单项。下面是有自己的例子,参考一下:然后,您需要一个目录来存放这些图片。GRUB 2 默认的是从/usr/share/images/desktop-base目录下获取图片。这或许是个好地方,如果您不喜欢可以自己创建一个,比如/usr/share/inmages/grub,像讲的。把图片拷贝到那儿,注意扩展名,GRUB 2 默认支持.png 和.tga。当然您

37、也可以使用.jpg。下一步就是编辑05_debian_theme脚本并且更改相关菜单项。我所做的是注释掉原有的读取如片的for循环,然后创建自己的。如果您对这不是很熟悉,应该推迟主题的更改到以后再做。我的文件放在:/usr/share/images/grub/dark.png.文件改过以后,执行update-grub来更新grub.cfg文件,如果一切正常,您会在终端中看到“Found Debian background”的提示。重启试一试:您看到了,我选择的背景图片太失败了,都看不到文字了!所以,仔细挑选您想要使用的图片,使用一个渐变的主题是个不错的注意。更多详细信息,可以参考官方维基文档。

38、GRUB 2 恢复(recovery)从启动失败中恢复如果您毁坏了您的GRUB 2 怎么办?应该有方法重新安装并且转危为安吧?不错,一如既往,一个简单的方法和一个复杂的方法:简单方法:超级GRUB盘(Super Grub Disk)工具配合GRUB2工作,不要担心,放入光驱,启动然后恢复循坏的GRUB。复杂方法:使用启动光盘手工解决您将需要一个附带GRUB2的启动光盘,比如Ubuntu或者Kubuntu。利用光盘启动预览系统,mount硬盘并且把GRUB 2 安装到MBR.这里是您需要的命令(假设硬盘为/dev/sda),您需要将安装了发行版/boot目录的分区mount进来,可能还会有一个单

39、独的分区,这取决于您的安装情况。Mount以后,我们回到install-grub命令mount /dev/sda1 /mnt/grub-install -root-directory=/mnt /dev/sda如果这样不行,您将必须走一个很长也更加复杂的流程,像Ubuntu维基文档中描述的。使用fdisk命令定位正确的设备,mount进来。我们假设/dev/sda1安装这/boot分区,/dev/sda2是root分区。sudo mount /dev/sda2 /mnt如果您为/boot单独分区了,那么也mount进来:sudo mount /dev/sda1 /mnt/boot然后,使用bi

40、nd选项mount其他设备,mount命令的详细用法,请参考页面。sudo mount bind /dev /mnt/dev立竿见影的,现在您在mnt下面有了一个跟系统。你可以使用chroot命令把跟从/更改到/mnt。sudo chroot /mnt这意味着在终端运行的chroot命令 会将/mnt目录看作/目录.现在,配置GRUB包dpkg-reconfigure grub-pc我们需要告诉GRUB使用那个设备.你可以使用空格键更改选项.列出来的设备会在device.map文件中映射,如果您只有一个,那肯定不会有问题.这一步完成之后,您就可以从chroot环境总退出了,使用Ctrl+D键.

41、然后unmout设备.先unmout掉/dev,然后是其他的:sudo umount /mnt/devsudo umount /mnt现在您可以重启了,GRUB 2 应该已经就位.观察小问题这可能仅仅是个还在测试的新功能,但是我必须按照我的观察注释一下,这对您将来解决遇到的问题可能会有帮助.内核损坏内核崩溃转储机制GRUB2包含了一个部分,这个部分确认是不是安装和配置有一个像这样的内核崩溃转储机制,如果有的话在内核线尾部添加一个部分.这并不是个好想法,因为脚本没有确认可以存储崩溃内核的偏置量,还有,内存分配不可武断,应该有管理员进行,因为我们不知道崩溃的内核会占用多少空间.命令名称两个最重要的

42、命令,grub-install和update-grub,这两个命令的名字并不一致,它们应该要么以grub开头或者以grub结尾.GRUB legacy对比GRUB 2一个大问题,为什么您选择用其中某个而不是另外一个?GRUB legacyGRUB legacy老一点并且已经停止开发,但是它工作良好并且无数次证明了自己的价值。编辑GRUB菜单非常简单,对用户技能要求低,节省了很多确认语法正确的时间。GRUB 2首先,GRUB 2 目前还是测试软件,虽然版本1.97很容易变成官方正式版,但这并不影响它还不是产品系统的本质。其次,GRUB 2 更难于使用,因为:1.它需要shell技能,而这并不是每

43、个人都会的。2.更改GRUB菜单需要遵循三个步骤,而之前只需要一个。3.更改并不会自动生效,而是每次都必须“编译”,类似于以前的LILOGRUB 2 目前只被很少的发行版支持,所以您从网上获得支持或者寻找答案的难度就有所增加,包括官方和非官方的文档。再有,在混合环境中使用GRUB 2 有可能出现问题.结论我在GRUB教程中已经展示过,即使很困难的任何也可以简单的实现.GRUB legacy和GRUB 2 可以同时使用,同时,可能GRUB legacy目前更适合您使用,特别是如果您是相关知识程度较低的用户.如果您在使用Ubuntu,那么您可以使用GRUB2,因为它是默认的,只要确定按照我的介绍就

44、可以进行愉快和无忧无忧虑的使用.更多阅读 (文档和链接)推荐您读一读下面的这些文章、评论和指南:官方:其他有用的GRUB资源(my article)(advanced stuff, can save you the hassle of replacing entries)(advanced stuff)结论您已经结束了一个手把手的安装、配置、问题修正的GRUB 2 指南,包括布局概要和基本功能,还有很多活生生的例子如使用GRUB legacy的双启动,GRUB2和Windows,工具和介绍,如何解决经常遇到的问题等等。无论您是初学者、Windows转来的加入者或者Linux老手,我都希望这个教

45、程对您有用。相比GRUB legacy, GRUB 2 多少有些难用,因为它需要熟悉shell并且对自己使用shell的能力有信心,这在多数用户的能力之外。还有,它不允许轻易的改变,每次都需要重新部署。GRUB 2 真正的能量并没有显露出来。I hope you are going to like this tutorial as much as the original. I will update it periodically if certain core functions in GRUB change toward production release, as well as write any important tip or trick that comes up.我希望您像希望上一篇那样喜欢这篇教程。我会定期更新这篇文档,例如某个核心功能的改变,还有讨论任何重要的技巧和窍门。Have fun and spread the word!祝您愉快,如果您愿意请帮忙推广!加油.更新GRUB 2 的任何更新都会在这里列出,包括新特性、bug修正、新增测试用例,还有其他任何您发现和推荐的有用的材料、技巧和窍门。所以我建议您经常查看这个部分。|

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!