热搜词
发表于 2010-2-20 13:27:24 | 显示全部楼层 |阅读模式
本帖最后由 灰儿 于 2010-2-23 15:12 编辑

其实,修改grub启动菜单不用修改grub.cfg,只要把个性化配置写入 /etc/default/grub 和 /etc/gurb.d下的脚本文件,以后不管升级内核或者是升级grub所执行的update-grub,所创建的grub.cfg都会如你所愿。

一、修改/etc/default/grub配置文件
一般需要修改的是以下几处:
GRUB_DEFAULT=0 -----> 设定默认启动项,按需要修改为1, 2
#GRUB_HIDDEN_TIMEOUT=0 --------->此设定将影响菜单显示,注意要显示菜单必须在此语句前面加#注释掉
GRUB_HIDDEN_TIMEOUT_QUIET=true --------->隐藏菜单,grub2不再使用
GRUB_TIMEOUT="10" ------->设定倒计时时间,默认10秒。

二、 修改/etc/grub.d文件夹内的内容
先看下 /etc/grub.d文件夹下的什么东东:
00_header
05_debian_theme
10_linux
20_memtest86+
30_os-prober
40_custom
前面这五个脚本对应grub.cfg上的各个部分,怎样修改这些脚本文件才能保证不会破坏update-grub的运行,又能让grub.cfg符合你的意愿呢?其实很简单,只要找到
cat << EOF
********
********
********
EOF
这类语句,EOF中间的文本会直接写入grub.cfg中相应位置,所以个性化的语句添加在这地方就可以了。

00_header

可供修改的有两地方
cat << EOF
load_env
set default=${GRUB_DEFAULT} <----- 这里根据 /etc/default/grub中default变量设定,不用修改
if [ \${prev_saved_entry} ]; then
saved_entry=\${prev_saved_entry}
save_env saved_entry
prev_saved_entry=
save_env prev_saved_entry
fi
insmod jpeg <---------这地方加入要加载的模块,如图片支持,或系统格式支持 insmod ntfs 和 insmod fat 等
insmod png <---------
EOF

另一个在最后
cat << EOF
set timeout=${GRUB_TIMEOUT} <------- timeout 根据上面 /etc/default/grub中的timeout 变量设定,这里不用改
background_image (hd0,7)/boot/images/012.jpg <----------这里背景图片的绝对路径
EOF

05_debian_theme

修改背景颜色
cat << EOF
set menu_color_normal=white/black <--------
set menu_color_highlight=yellow/black <------- 前面字体颜色可自定,后面背景一定要设为black,不然背景色会挡住背景图片。
EOF

10_linux

这部分是自动搜索当前系统,建立当前系统的启动菜单,包括系统头,内核等信息,不要随便修改,要使用个性菜单名,比如中文菜单,可修改这里,其余地方不要做修改:
cat << EOF
menuentry "启动 $1" { <---------在 双引号 " " 和 变量 $1 这间加入个性文字,或直接把 变量$1 改为固定字符比如 Ubuntu Karmic
EOF
if [ "x$3" = "xquiet" ]; then
cat << EOF
set quiet=1
EOF

20_memtest86+

添加内存测试启动项,可做修改的地方:
cat << EOF
menuentry "Memory test (memtest86+)" { <------可以修改为中文菜单如 menuentry "内存测试"{ ,双引号必须是英文字符
linux16 $MEMTESTPATH
}
# 下面第二个菜单项可删除
menuentry "Memory test (memtest86+)"
linux16 $MEMTESTPATH *********
}

EOF

30_os-prober

查找其他分区中存在的系统并建立菜单项,依次为 windows >> linux >> macos,这里不必修改。

40_custom

自定义启动项,按菜单标准格式添加即可,update-grub后会自动添加到grub.cfg上,如:
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ${root}
    chainloader +1
}

把各项修改后保存,然后
sudo update-grub

看看 /boot/grub/grub.cfg 配置文件是不是和你想的一样了。
全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-24 01:59 , Processed in 0.167036 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team