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也基本一样。