[分享]grub的配置与使用

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
dongmh
帖子: 715
注册时间: 2005-06-21 20:24
来自: 甘肃
联系:

[分享]grub的配置与使用

#1

帖子 dongmh » 2006-02-03 15:48

breezy默认的引导软件是grub,lilo在安装的时候也可以选择,但是我至今没有使用过,据说那是一个古老的东西了,论坛上从以前开始就一直有朋友想知道如何在安装了新的win后恢复grub,所以我写了本文,把我对grub的认识分享给需要的朋友。

第一部分 grub的配置文件详解

/boot/grub/menu.lst是grub的配置文件,要修改它需要root权限。
#是注释,这一部分,我不作解释(其实是英文太差,解释不了)。去掉所有注释部分后,这个文件编成了这个样子:

代码: 全选

default		0
timeout		10

title		Ubuntu, kernel 2.6.12-10-386 
root		(hd1,0)
kernel		/vmlinuz-2.6.12-10-386 root=/dev/sda12 ro quiet vga=791
initrd		/initrd.img-2.6.12-10-386
savedefault
boot

title		Ubuntu, kernel 2.6.12-10-386 (recovery mode)
root		(hd1,0)
kernel		/vmlinuz-2.6.12-10-386 root=/dev/sda12 ro single
initrd		/initrd.img-2.6.12-10-386
boot

~~~~~
现在开始解释:

代码: 全选

default		0		表示在下面这些系统里,默认引导哪个。

代码: 全选

timeout		10		表示在没有用户操作的情况下,等待几秒自动引导。

代码: 全选

title		Ubuntu, kernel 2.6.12-10-386 	表示可以引导的操作系统在引导菜单上的标题。

代码: 全选

root		(hd1,0)	这个表示你的/boot分区之所在。

代码: 全选

kernel		/vmlinuz-2.6.12-10-386 root=/dev/sda12 ro quiet vga=791 指定内核并输入内核参数。

代码: 全选

initrd		/initrd.img-2.6.12-10-386	表示初试化。

代码: 全选

savedefault			意义不明,查了半天没看出来。

代码: 全选

boot				起动命令,根据上面的信息进行引导。
以上这些,仅仅是我们breezy默认状况下的配置,而grub功能强劲,我们还有发挥的余地,比如说以下的几个参数全部可以加在default后面,会友不同反响的效果。

代码: 全选

hiddenmenu			不会产生起动菜单,会使用默认选项起动,然后可以按esc看到菜单。

代码: 全选

color cyan/blue white/blue	颜色效果,可以随自己喜欢。

代码: 全选

splashimage=(hd0,0)/boot/grub/splash.xpm.gz 这个是加载一个背景,因为有危险性,希望大家最好使用网上作好的背景图片。
第二部分 个人的breezy引导解决方案

为了避免,某些原因,导致我安装win(因为目前我硬盘没有win)使引导丢失,我作了以下的措施。
首先在安装ubuntu的时候,采用默认的选项,把grub安装在MBR上,
然后我在装好系统后,再一次的把它安装在了/boot分区上,具体作法如下:

代码: 全选

sudo grub-install /dev/sda1
然后为了在win下也能重新引导grub我这样作:

代码: 全选

dd if=/dev/sda1 of=~/boot count=1 bs=512
这样在~/下生成一个boot文件,那么这个文件应该怎么用呢?就是放在win下使用。在安装过win以后,编辑win的boot.ini一般在c盘根目录下,一个隐藏文件,在这个文件的最后一行加入:

代码: 全选

c:\boot="give me linux"
当然了也许要,把boot放在c盘,至于怎么把linux的数据在win中读出来,方法太多了,这里就不多说了。

第三部分 制作一个grub起动盘

即使是有上面的安全措施,也难以保证有没有三长两短,所以作一个起动盘防身,必然大有补益。
制作需求对于breezy来说只需要一张3.5寸磁盘而已,软件方面breezy已经装备全面了。那么制作之前,当然先把只读开关推到上侧关闭,然后执行以下命令:

代码: 全选

sudo mke2fs /dev/fd0
注意执行此命令前,请不要挂载,执行完成后,点击计算机,然后双击哪个磁盘的图标,breezy会自动挂载。

代码: 全选

sudo mkdir /mnt/floppy/boot
sudo mkdir /mnt/floppy/boot/grub
sudo cp /boot/grub/stage1 /mnt/floppy/boot/grub
sudo cp /boot/grub/stage2 /mnt/floppy/boot/grub
准备工作完成,现在进入grub模式:

代码: 全选

sudo grub
然后输入命令:

代码: 全选

root (fd0)
setup (fd0)
quit
到此为止,一切都搞定了,这张起动盘可以作为恢复用,也能辅助以后进行硬盘安装,那么我就再提下,用这张起动盘进行恢复的方法。
过程基本同上面一样:

代码: 全选

root (hd1,0)    这里写你的/boot分区
setup(hda)      你想装哪,就写哪。
这样你重启以后,grub又回来了。

第四部分 grub的密码功能

刚才没有介绍,还有一个password参数,配合一个lock参数一起使用。
password加在default下面,用法如下:

代码: 全选

password=123456
lock加在title下,直接加上就表示对这个起动选项进行锁定。
那么在这样作后,直接起动会报错,我们按p然后输入密码,才能正常起动。
但是这样其实有个问题,我们可以在grub里面压c进入命令模式,然后输入:

代码: 全选

cat (hd1,0)/grub/menu.lst
这样找出你的密码,所以grub还提供了更好的加密方式,就是md5加密,首先这样作:

代码: 全选

sudo grub-md5-crypt
然后输入你的帐号密码,在输入两次你想要的grub密码,最后得到类似这样的代码:

代码: 全选

$1$U5aWH1$RTw1hWeygGuwTeBX98z/91
把这个代码复制,在menu.lst里这样添加

代码: 全选

password -–md5 $1$U5aWH1$RTw1hWeygGuwTeBX98z/91
好了,千万不要少复制字符,到时候你就吐血吧。

第五部分 结语

关于grub的使用是需要注意的,对它的误操作是非常头痛的,在我不会恢复它的时候,不得不重新安装linux来解决这个问题,现在我把这方面的使用方法简单的说明,它适用于breezy,当然其他linux也基本一样。
ubuntu 6.06
我是初学者 大家多多关照
头像
millenniumdark
论坛版主
帖子: 4159
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
联系:

#2

帖子 millenniumdark » 2006-02-04 1:29

savedefault 意义不明,查了半天没看出来。
default 0
这一项不一定要是数字, 也可以是saved
如果把0改为saved, 默认启动项就是加上了savedefault 的那一项。
好像是这样,不过我也没试过。
头像
dongmh
帖子: 715
注册时间: 2005-06-21 20:24
来自: 甘肃
联系:

#3

帖子 dongmh » 2006-02-04 10:06

millenniumdark 写了:
savedefault 意义不明,查了半天没看出来。
default 0
这一项不一定要是数字, 也可以是saved
如果把0改为saved, 默认启动项就是加上了savedefault 的那一项。
好像是这样,不过我也没试过。
啊 谢谢前辈补充 我真的查了半天

发现好多linux的menu.lst都有这个但是就是没有解释

果然还是实力不济 :oops:
ubuntu 6.06
我是初学者 大家多多关照
头像
ct
帖子: 2201
注册时间: 2005-04-06 21:15
来自: 安徽黄山
联系:

#4

帖子 ct » 2006-02-09 0:22

有段时间流行弄xpm,我也研究了下这些设置,其实弄xpm很简单的,用gimp转就行了。
加了vga=791后,我的启动画面没有了,不知道那个怎么改
meishiwanwan
帖子: 27
注册时间: 2005-11-03 13:04

#5

帖子 meishiwanwan » 2006-02-09 13:55

我上次在安装的时候,选择了lilo作引导,但是没安上,不知道别人怎么样!
networker
帖子: 419
注册时间: 2006-02-06 21:06
来自: Shanghai,China
联系:

#6

帖子 networker » 2006-02-10 11:59

ct 写了:有段时间流行弄xpm,我也研究了下这些设置,其实弄xpm很简单的,用gimp转就行了。
加了vga=791后,我的启动画面没有了,不知道那个怎么改
不一定是771的。也可以是其他的。787什么的。我这里有个表格如果需要email给我。
775ftft
帖子: 83
注册时间: 2007-04-11 19:05

#7

帖子 775ftft » 2007-07-20 13:56

支持
yebailin
帖子: 36
注册时间: 2007-05-06 14:34

#8

帖子 yebailin » 2007-07-22 18:30

好帖子
留个名。不过那个MENU.LST我打开过了,也看明白了,就是改不了。没有权限。
其实看明白不难,有很详细的注释

改MENU.LST我明白,就是不知道怎么直接ROOT登录

我在终端 登录了 ROOT 又不会命令操作。。。。哎
头像
millenniumdark
论坛版主
帖子: 4159
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
联系:

#9

帖子 millenniumdark » 2007-07-22 20:15

yebailin 写了:好帖子
留个名。不过那个MENU.LST我打开过了,也看明白了,就是改不了。没有权限。
其实看明白不难,有很详细的注释

改MENU.LST我明白,就是不知道怎么直接ROOT登录

我在终端 登录了 ROOT 又不会命令操作。。。。哎
sudo gedit /boot/grub/menu.lst

如果沒裝gedit

sudo nano /boot/grub/menu.lst
ClearWind
帖子: 179
注册时间: 2007-06-28 16:45

#10

帖子 ClearWind » 2007-07-24 7:22

软盘,开玩笑吧.现在市场上的软件卖的都不多了去哪里找.
ClearWind
帖子: 179
注册时间: 2007-06-28 16:45

#11

帖子 ClearWind » 2007-07-24 7:23

而且软盘数据丢的超级快.可能你系统还没出问题软盘数据已经没有了.
头像
vanciki
帖子: 212
注册时间: 2007-06-27 16:35
来自: 深圳
联系:

#12

帖子 vanciki » 2007-07-31 23:11

郁闷,安装失败,我都不知道我的grub是安装到那里的,
wolfwang
帖子: 36
注册时间: 2005-10-04 16:15

#13

帖子 wolfwang » 2007-08-01 11:43

不错,留个记号。对我这样的初哥大有帮助。

:roll:
Linux!想说爱你真的不容易。。。
hefei1314
帖子: 15
注册时间: 2007-07-29 17:52

#14

帖子 hefei1314 » 2007-08-01 13:04

兄弟,有个问题,我装了 双系统,grub默认UBUNTU启动,我想改成XP(嘿嘿,毕竟是家里的电脑,老妈看到要选那些菜单就整天跟我 说谁谁家的 电脑一按开机键就行了,你 的 还要弄那么多东西,没办法!!!)。
我也试过把 default 0
改成 default 6,可是就 是没放映,还是那样子。
啥问题呢?

下面是menu.lst的一部分:
default 6
timeout 10

title Ubuntu, kernel 2.6.20-16-generic
root (hd0,7)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=06778dfc-4208-47b4-8ac0-7939f6b7ae9a ro quiet splash
initrd /boot/initrd.img-2.6.20-16-generic
quiet
savedefault

title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
root (hd0,7)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=06778dfc-4208-47b4-8ac0-7939f6b7ae9a ro single
initrd /boot/initrd.img-2.6.20-16-generic

title Ubuntu, kernel 2.6.20-15-generic
root (hd0,7)
kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=06778dfc-4208-47b4-8ac0-7939f6b7ae9a ro quiet splash
initrd /boot/initrd.img-2.6.20-15-generic
quiet
savedefault

title Ubuntu, kernel 2.6.20-15-generic (recovery mode)
root (hd0,7)
kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=06778dfc-4208-47b4-8ac0-7939f6b7ae9a ro single
initrd /boot/initrd.img-2.6.20-15-generic

title Ubuntu, memtest86+
root (hd0,7)
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
头像
vanciki
帖子: 212
注册时间: 2007-06-27 16:35
来自: 深圳
联系:

#15

帖子 vanciki » 2007-08-01 23:28

zai ding ding bu hui nong a
回复