GRUB启动引导器完全教程Word文件下载.docx

上传人:b****3 文档编号:13534770 上传时间:2022-10-11 格式:DOCX 页数:17 大小:27.49KB
下载 相关 举报
GRUB启动引导器完全教程Word文件下载.docx_第1页
第1页 / 共17页
GRUB启动引导器完全教程Word文件下载.docx_第2页
第2页 / 共17页
GRUB启动引导器完全教程Word文件下载.docx_第3页
第3页 / 共17页
GRUB启动引导器完全教程Word文件下载.docx_第4页
第4页 / 共17页
GRUB启动引导器完全教程Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

GRUB启动引导器完全教程Word文件下载.docx

《GRUB启动引导器完全教程Word文件下载.docx》由会员分享,可在线阅读,更多相关《GRUB启动引导器完全教程Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

GRUB启动引导器完全教程Word文件下载.docx

6.

7.

8.

9.

10.

11.

12.

13.

14.

警告

警告!

GRUB2还是测试软件。

尽管它已经获得Ubuntu的青睐,本身没有质量问题。

您可以没有问题的使用,虽然可能存在损害,但那离您是非常遥远的,即使真的发生,损害也只是轻微的一点点。

您需要认识到这些。

另外,任何处理危险的任务比如执行系统本身的危险命令,磁盘分区,启动序列,镜像,等等的时候,您应该时刻准备着最坏的情况。

这意味着:

对您的数据来考虑您必须有一个可靠的备份过程。

您必须拥有从灾难中迅速恢复的知识和工具。

这包括可以恢复系统的前一个镜像,修复损毁。

配置,恢复启动引导器,还有更多。

您必须对您所做的有信心。

现在您知道了这些,让我们高兴并且安全的开始。

那么一定要铭记,GRUB2还是测试版。

尽管同样我们可以想到GoogleMail,它测试了六年或者更多,您必须小心练习。

更重要的是,这篇指南的内容和内容相关可能会随着GRUB2被做成产品而改变,所以请持续关注更新。

GRUB2路标

这是您使用GRUB2之前需要考虑的。

什么时候GRUB2会成为类UNIX操作系统的实际启动引导器?

目前,GRUBlegacy版本工作的很好并且还将持续很多年。

像RedHat和Novell这样的公司为了服务器发行版会提供长期的技术支持,GRUBlegacy还是作为重要参与者存在五到十年。

在桌面领域,采用比率会快一些,但是不要期待短期内会有奇迹发生。

尽管如此,这并不影响探索。

请认识到您很可能会遇到兼容性问题而抛锚,特别是很多保守的发行版对新技术的支持并不是很及时。

到目前为止,GRUB2仅仅被Ubuntu家族使用,Ubuntu家族占了桌面市场的三分之一到一半。

这使得这篇指南变得有意义,因为两个或者三个Linux家庭使用者中就会有一个希望了解GRUB2信息并学习它的使用技术。

让我们现在到真正的技术中去。

GRUB2介绍

在开始之前,我强烈推荐您阅读我的关于GRUB常规版本的指南,这会帮助您更好的理解这篇文章。

GRUB2引入了很多新的更改。

GRUB2有更好的移植性和模块性,支持非ASCII码字符,动态加载模块,真实内存管理,还有更多。

所有这些几乎都和大多数使用者无关。

您需要知道的仅仅是配置文件的改变和GRUB2的操作方法。

新布局

GRUBlegacy版本将文件放置在/boot/grub/目录下,包括在启动过程中读取并显示内容给用户的文件。

GRUB2将文件主要放在三个地方:

/boot/grub/--这是替代的主要配置文件。

不像那样,不能手动更改!

我强烈建议不要尝试干预这个文件,无论是使用chattr命令或者其他。

由他去就行。

/etc/--这个新文件夹包含GRUB脚本。

这些文件是创建文件的基础。

当相关的GRUB命令执行以后,这些脚本以某个特定的顺序被读取并且创建文件。

/etc/default/grub--这个文件包含GRUB脚本读取并且写入文件的GRUB菜单。

它是GRUB的定制部分,类似于老的文件,实际启动项目除外。

这意味着,如果您想改变GRUB菜单,您将必须编辑已经存在的脚本或者创建新的脚本,然后更新菜单。

相比老的GRUB,这更类似于LILO,LILO允许在运行中编辑菜单。

文件实例

文件位于:

/boot/grub/:

文件看起来是这样的:

它实际上并不有趣,因为它仅仅是个脚本。

多数人可能不想读它的内容或者不能完全理解它们。

但是这个文件在任何您更新了GRUB菜单的时候还是值得浏览一下,以确保正确的条目像您预期的一样被加了进来。

但是仅仅在您熟悉脚本的情况下!

/etc/目录示例

这是刚刚安装的系统中/etc/文件夹下的所有文件,以Kubuntu为例:

我们来看一下这些脚本:

00_header是从/etc/default/grub中加载GRUB设置的脚本,包括超时、默认启动项和其他。

我们会稍侯了解更多。

05_debian_theme定义背景、颜色和主题。

这个脚本的名字很明确将会改掉当别的版本采用GRUB的时候。

10_linux为已经安装的发行版加载菜单项。

20_memtest86+加载memtest(内存测试)功能

30_os-prober这个脚本将会扫描硬盘上的其他操作系统并且添加到启动菜单。

40_custom是一个您可以用来创建新加的条目到菜单的模板。

您是不是已经认识到了脚本名字中数字的使用?

不错,这有点像不同的runlevel的Start/Kill脚本的顺序。

数字定义了优先级。

这意味着10_linux会比20_memtest86+先执行所以在启动菜单项中的位置更加靠前一点。

这些脚本也不太有趣。

像文件一样,他们也不希望被编辑,除了40_custom。

您必操作这些脚本的时候须非常小心。

我们稍侯看看它们的样子并且学习一下如何使用它们。

/etc/default/grub示例

/etc/default/目录下

这个目录包含很多其他文件所以不要以为仅仅被GRUB使用。

grub文件是一个被00_header脚本解析的文本文件。

您可以在这里更改如果您想改动的话。

我们稍侯在定制部分细谈。

现在我们知道了文件是什么样的,让我们看看怎么使用。

基本用法

是将我们的理论知识转化为实际行动的时候了。

GRUB2如何工作?

GRUB2这样工作:

/etc/default/grub包含定制化;

/etc/脚本包含GRUB菜单信息和操作系统启动脚本。

当运行update-grub命令时,它读取grub文件的内容、执行中的脚本来创建文件。

就是这样。

想要更改文件,您需要编辑grub文件或者下面的脚本。

脚本是被执行的,这意味这他们拥有执行权限,如果您取消了执行权限,他们将不会执行。

这意味着您可以在下放多个文件,您想放多少就放多少,像update-grub能读的shell脚本那样长。

如果您想使用他们,就激活可执行权限(chmod+x),反之亦然,去掉可执行权限(chmod–x)。

让我们来看一下这些脚本:

拿00_header和05_debian_theme作为示例:

40_custom更有意义,但是它并没有告诉我们怎么定制脚本。

不要担心,我们会稍侯学习所有东西。

添加新的GRUB脚本

添加一项新的启动选项,您必须遵循一些基本语法:

创建一个新文件并且以数字和下划线作为文件名的前一部分。

如果您想把启动项放在其他选项的上边,使用一个稍小的数字,如果您想放在其他的后边,使用一个稍大的数字。

例如:

11_something将被放在操作系统默认条目的后边,反之08_something将被放置在10_linux条目的上方。

下一步是写实际内容,下面是例子:

#!

/bin/sh-eecho"

Somestring"

cat<

<

EOFmenuentry"

Something"

{setroot=(hdX,Y)--bootparameters--}EOF

让我们仔细看一下这个文件:

/bin/sh–e第一行是shell脚本的声明,必须放在第一行。

echo"

输出字符串“Somestring”,这样在执行update-grub的时候您将看到这个字符串,如果您不想看到命令的输出,可以重定向到标准错误或者/dev/null:

>

&

2

例如:

"

Cat<

EOF定义实际启动条目的开始

menuentry“Something”是菜单的名字。

Linux

setroot=(hdX,Y)–设置根设备。

危险!

GRUB2使用分区标记从一开始而不是像GRUBlegacy版本那样从0开始!

这是非常非常重要的并且是必须记住的!

换句话说,标记设备是还是从0开始,但是分区从一开始。

比如,sda1在GRUB2中表示为(hd0,1),但是之前的版本表示为(hd0,0)!

--bootparameters--每个操作系统都不同,在Linux中,您使用可能类似于:

linux/boot/vmlinuzinitrd/boot/

但是在Windows中,您可能使用:

Chainloader(hdX,Y)+1

所以,一个完整的脚本应该是这样子:

/bin/sh-e

AddingmycustomLinuxtoGRUB2"

EOF

menuentry"

MycustomLinux"

{

setroot=(hd0,5)

linux/boot/vmlinuz

initrd/boot/}EOF

或者为了启动Windows,像这样:

OrforWindows,somethinglike:

AddingWindows8toGRUB2menu"

Windows8"

{setroot=(hd0,1)chainloader(hd0,1)+1}EOF

EOF结束GRUB条目。

现在我们拥有了一个文件,使之可执行:

chmod+xXX_new_os_script

GRUB2命令:

还有一件我想在这里强调的事情是包含在cat<

EOF部分的数据,正如我们刚刚看到的,cat命令在脚本中以EOF开始定义了GRUB代码,这些代码不会被shell执行,而是直接添加到GRUB菜单列表。

也就是说,cat<

EOF和EOF之间的任何东西都是GRUB命令。

我们在脚本中已经使用了多个不同的命令。

有些您可能已经在GRUBlegacy版本中见过,有些则是新的和陌生的。

不要担心,有一个完全的里表,包括跟GRUBlegacy的对比,一些命令被替换也有一些新加的命令,可以查看

更新GRUB

新脚本已经就位,但是GRUB菜单()并没有被更新。

我们需要执行update-grub命令来让一切发生。

update-grub

这里有一个来自双重启动的配置例子,稍侯我们会更加仔细的检查。

我已经添加了两个Kubuntu条目和一个Ubuntu条目来启动UbuntuGRUB菜单。

我做这些是为了摆脱默认的10_linux,10_linux很丑陋并且在名称中使用公共内核的名字,外加相同的调用Ubuntu和Kubuntu。

但是让我们慢下来。

我们第一个任务是添加新的脚本。

我们确定它能够正常启动以后,我们会删除副本。

重新启动以后,我们会得到这样的画面–对于图片的不美观我很抱歉。

一旦我们使用新脚本启动成功,我们可以去掉10_linux的执行权限。

通过改变脚本名称中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1