📄 564.html
字号:
<br>
3 如何使用grub?<br>
<br>
3.1 安装<br>
你可以从ftp://alpha.gnu.org/pub/gnu/grub 下载GRUB的源代码。<br>
得到文件grub-0.5.96.1.tar.gz,所以这样做:<br>
# tar -xvzf grub-0.5.96.1.tar.gz<br>
这个命令将解开的文件和目录放在一个名为grub-0.5.96.1的目录中。现在运行如<br>
下命令:<br>
#cd grub-0.5.96.1<br>
# ./configure<br>
如果你想定制GRUB,使之包含流行的文件系统和对网卡的支持,或者删除你不需要的网卡,可以运行如下命令:<br>
# ./configure --help<br>
这个命令将输出所有的命令选项。现在可以使用—enable和—disable选项增加或<br>
删除对特定网卡的支持。(注意:GRUB支持网络启动)<br>
为了开始编译过程,键入如下命令:<br>
# make<br>
# make install<br>
至此你已经为安装GRUB真正做好了准备。<br>
将GRUB的相关文件保存在诸如/boot/grub的目录中是一个好主意。为此,按如下步骤:<br>
1.默认状态下,GRUB所有文件将安装在/usr/share/grub/i386-pc(或者在<br>
/usr/local/share/grub/i386-pc目录下,这只取决于你的shell变量的设置。)<br>
2.建立一个叫做/boot/grub的目录,然后拷贝下列文件到这个目录:<br>
stage1 stage2 * stage1 5<br>
稍候将解释这些文件。同时也要把GRUB(可能在/usr/sbin或者/usr/local/sbin<br>
目录下)拷贝到/boot/grub目录下。<br>
安装GRUB可以分为三个单独的步骤:<br>
1.将“stage1”安装到MBR中。<br>
2.设置“stage2”的地址或者位置。<br>
3.设置一个菜单或选项,用来决定启动哪一个操作系统。<br>
使用下面的命令开始安装GRUB。<br>
#cd /boot/grub<br>
# ./grub<br>
这个命令根据BIOS的设置检测硬件设备,同时产生一些输出信息。这会花较长的时间。<br>
end_request: I/O error, dev 02:00 (floppy), sector 0<br>
GRUB version 0.5.96.1 (640K lower / 3072K upper memory)<br>
TAB键可列出可能的命令列表。其它情况下TAB会列出设备或文件名。类似下面的提示会出现:<br>
grub><br>
现在,假设你将Linux安装在了第一块硬盘的第一个分区中或者/dev/hda1中。记住GRUB的命名规则,将上面的名字改为(hd0,0)。键入下面的命令:<br>
grub> install (hd0,0)/boot/grub/stage1 (hd0) (hd0,0)/boot/grub/stage2<br>
p (hd0,0)/boot/grub/menu.conf<br>
现在分析一下这个命令的细节。<br>
install<br>
一个内置的命令,它告诉GRUB将(hd0,0)/boot/grub/stage1安装到hd0的主引导纪录中。<br>
(hd0,0)/boot/grub/stage2<br>
告诉GRUB stage2映象的位置。<br>
p with the the following options: (hd0,0)/boot/grub/menu.conf<br>
为菜单的显示设置配置文件。<br>
下面是对这个命令用法的总结:<br>
1.install<br>
2.ource_of_stage1<br>
3.where_to_install<br>
4.source_of_stage2<br>
5.p source_of_configuration_file<br>
现在,你完成了硬盘上的基本安装工作。<br>
在软盘上的安装:<br>
为了在软盘上安装GRUB,你要会用“dd”命令,并且了解它是如何工作的。为了做一张GRUB启动盘,你要将stage1和stage2文件放到软盘的开始扇区中。<br>
安装stage1到软盘上:<br>
插入一张已格式化的软盘,键入命令:<br>
# dd if=stage1 of=/dev/fd0 bs=512 count=1<br>
命令的详细说明如下:<br>
if=input file<br>
i.e., stage1<br>
of=output file<br>
i.e., floppy drive (this may be different on your computer)<br>
bs=bytes to read and write<br>
Here it is 512 bytes.<br>
count=how many times to perform this operation<br>
每次拷贝“bs”数目的块到目标地址。<br>
安装stage2到软盘<br>
# dd if=stage2 of=/dev/fd0 bs=512 seek=1<br>
这里的步骤同stage1的相同,除了一个seek选项外。Seek选项将调过一个“bs”。例如,在上面的命令中bs的值是512,这样seek=1意味着将跳过软盘上前512个字节 ,从513字节开始。这将使得第一步操作不会覆盖stage1的前512字节。<br>
现在你完成了基本的软盘驱动器安装。<br>
<br>
如果已经安装了grub要把grub重新安装到主引导扇区上,只需要简单打入makebootable命令就可以了。<br>
<br>
3.2 配置grub<br>
grub启动时会在/boot/grub/中寻找一个名字为menu.lst的配置文件,如果找不到此文件则不进入菜单模式而直接进入命令行模式。<br>
现在,我们来看一下如何在启动后进入各种操作系统,如何建立menu.conf文件。我们就从GRUB支持的启动过程开始。可以有两种方法来完成启动过程:<br>
·A.通过调用内核本地启动<br>
·B.连续启动或者将控制转给另一个引导器<br>
A模式启动过程<br>
1.配置跟设备或者告诉GRUB你的根文件系统。<br>
2.告诉GRUB你的内核影像的位置,然后将参数传送给内核。<br>
3.重新启动,试一下。<br>
为了启动Linux,将内核以bzImage的文件名放在/boot/目录中,跟文件系统是<br>
/dev/hda1,或者GRUB中的(hd0,0)。启动过程如下:<br>
1.root (hd0,0) [This sets the root partition]<br>
2.kernel /boot/bzImage root=/dev/hda1 [This sets the kernel]<br>
B模式启动过程(这种模式假设当前的分区中安装了另一个启动管理器,例如LILO<br>
或者NTLDR):<br>
1.设置根分区但不要安装它<br>
2.激活这个分区<br>
3.配置需要启动的分区的第一个扇区<br>
4.重新启动,看一下效果。<br>
我们在试试启动安装在/dev/hdc1或者(hd1,0)的widows。启动windows的过程如下:<br>
1.rootnoverify (hd1,0)<br>
2.makeactive<br>
3.chainloader +1 [+1 sets the first sector of the current root<br>
partition]<br>
4.boot [transfers the control and quits GRUB]<br>
menu.conf文件:它用于建立启动多操作系统时的菜单。建立menu.conf并不难。它使用简单的英语,就象你在这一节看到的那样。<br>
所有的菜单项目都以没有逗号分隔的“title TITLENAME”开头。你可以随意设置<br>
TITLENAME。<br>
设置Linux启动菜单步骤如下:<br>
1.设置标题<br>
2.设置根分区<br>
3.设置内核的相应参数<br>
4.启动<br>
一个菜单例子:<br>
title Red Hat Linux (2.4.18-14)<br>
root (hd0,0)<br>
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/<br>
initrd /boot/initrd-2.4.18-14.img<br>
前面有#的行是一个注释。<br>
建立启动Windows 或者 DOS的菜单:<br>
title Windoze<br>
rootnoverify (hd0,0)<br>
makeactive<br>
chainloader +1<br>
boot<br>
#----<br>
又或者:<br>
title Microsoft Windows XP<br>
map (hd0) (hd1)<br>
map (hd1) (hd0)<br>
root (hd1,0)<br>
chainloader (hd1,0)+1<br>
makeactive<br>
boot<br>
----<br>
注意:root和rootnoverify都是一样的,把rootnoverify改成root也行。不过经过实践来看。有时引导win时,系统安装好后,是rootnoverify (hdX.Y)这样形式的,这样会出现windows起不来,出现什么windows什么文件损坏的情况。这时,我们就要把在grub中,引导windows的那段中的rootnoverify改为root<br>
root英文的意思就是根的意思,在这里是让linux知道自己所处的位置,也就是我们所安装linux的/根分区所在的位置 。<br>
----<br>
如果你安装了两个版本的Windows—一个是你自己用的,另一个给你的家人用的—这样第二个就无法安装,因为有提示说Windows已经安装了。<br>
有一种简单的方法可以安装两个版本的Windows,即在启动时隐藏一个分区而使用另一个。你甚至可以为你的分区设置密码保护,这样可以避免别人错误的加载你的分区。下面介绍如何完成两个Windows的安装,hda1和hda2 或者 (hd0,0) 和(hd0,1),用到的命令有lock, password, hide 和 unhide。<br>
建立windows 项目"My Entry":<br>
title My Entry<br>
lock<br>
unhide (hd0,0)<br>
hide (hd0,1)<br>
rootnoverify (hd0,0)<br>
makeactive<br>
chainloader +1<br>
boot<br>
#----<br>
为了更好的使用lock命令,你需要在配置文件开头使用password命令。Password命令的语法如下:password secret(“secret”就是密码)。任何时候你都可以通过按p键儿输入密码。<br>
建立Windows 项目"Family Entry"<br>
title Family Entry<br>
unhide (hd0,1)<br>
hide (hd0,0)<br>
rootnoverify (hd0,1)<br>
makeactive<br>
chainloader +1<br>
boot<br>
<br>
任何人都可以启动这个项目,而无须输入密码。<br>
这有一个使用password命令的有趣的窍门。为了在缺省菜单列表或配置文件中隐藏某些项目,你可以使用下面的命令加载一个定制的列表:<br>
password secret<br>
在这个命令中,“secret”是密码,而/boot/grub/secret-list.conf是密码文件。这样做之前,你要先进入到根目录或者给出全路径名。例如:<br>
password secret (hd0,4)/boot/grub/secret-list.conf<br>
还有一个更重要的命令是“map”。当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windows,就可以使用map命令。例如,你能够将hd0映射为hd1,将hd1映射为hd0。换句话说,你可以虚拟的交换两个硬盘而启动所需要的操作系统 。命令形式如下:<br>
grub> map (hd0) (hd1)<br>
grub> map (hd1) (hd0)<br>
启动FreeBSD:<br>
title FreeBSD 4.0<br>
root (hd0,4,a)<br>
kernel /boot/loader<br>
boot<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -