fedora17中grub2的一些问题

2012年11月29日 分类:Linux

用了一段时间的fedora,相比debian的话软件要更新,而且使用最新的kernel支持更多的硬件和特性。这里我要说的是几个关于grub的问题,从debian换到fedora在软件的配置方面还是有点不适应。

1.加载grub2提示error file

每次开机自检后加载grub2时总是会提示一个error file,而且还是一闪而过,能正常进入grub2和引导系统,但有个错误在的话总是不怎么爽。本来想查看grub的log文件,但怎么也找不到,原来grub在加载时对硬盘只有读权限,自然不会留下log了。在重试了好几次后终于让我看清了错误信息:

>error:file '/boot/grub2/locale/en.mo.gz' not found

这可能是grub2的一个小bug,在grub2包里没有英文翻译文件,进入/boot/grub2/locale/看了下是有一些en开头的.mo文件的,选一个改成en.mo就行了,或者做一个link链接过去。*需要root权限*。

cd /boot/grub2/locale
ln -s en@quot.mo en.mo

以后再启动就不会有这个错误了。网上有些说要把en.mo进行gzip压缩,得到en.mo.gz文件,我没压缩错误就没了,看来grub2会先搜索en.mo,没有的话再用en.mo.gz,这两个文件实质上是一样的。

2.update-grub

用惯了debian和ubuntu,在对grub.cfg进行更新时发现没有update-grub命令,原来update-grub是一个alisa别名,在debian和ubuntu里已经定义好了,而fedora是没有的。解决方法有两个,用grub的命令grub2-mkconfig,或者自己加一个update-grub的alisa。

grub2-mkconfig -o /boot/grub2/grub.cfg

或者添加alisa到/etc/bashrc中:

alias update-grub='grub2-mkconfig -o /boot/grub2/grub.cfg'

注销重登陆下就可以使用update-grub命令了。

3.定制update-grub

在用update-grub生成grub.cfg的时候,最新的linux内核会排在启动菜单的前面,windows系统是在最后的,而grub在启动时会默认选第一个,也就是linux系统,所以update-grub后都要修改grub.cfg文件,让grub默认选择windows系统,如果嫌麻烦的话就来定制update-grub吧。

在fedora系统中update-grub的配置文件在/etc/grub.d/里面,前面的数字是运行的顺序。可以看到00_header,10_linux,30_os-prober这三个文件,header是grub.cfg的开头信息,修改倒计时数也可以在这里面改,linux是用来检测linux内核的,os-prober就是用来检测其他非linux系统的。因为30_os-prober的数字比10_linux大,所以windows选项总是在linux后面,把30_os-prober改成09_os-prober,再update-grub下后windows选项就在第一位了,这样就不用每次修改grub.cfg了。

作者:wuyuan 本文来自Wuyuan's Blog 转载请注明,谢谢! 文章地址: https://wuyuans.com/2012/11/fedora17-grub2