Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1308873
  • 博文数量: 213
  • 博客积分: 7590
  • 博客等级: 少将
  • 技术积分: 2185
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-31 17:31
个人简介

热爱开源,热爱linux

文章分类

全部博文(213)

文章存档

2018年(4)

2017年(1)

2015年(1)

2014年(5)

2013年(2)

2012年(2)

2011年(21)

2010年(82)

2009年(72)

2008年(23)

分类: LINUX

2009-08-29 15:08:31

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也基本一样。
阅读(798) | 评论(0) | 转发(0) |
0

上一篇:dd命令

下一篇:Grub教程

给主人留下些什么吧!~~