Ubuntu 9.10 grub2的启动配置文件grub.cfg(8)



4. 辛苦修改的grub.cfg在upate-grub后被打回原形,怎么办?
其实,grub不用修改grub.cfg,只要把个性化配置写入 /etc/default/grub 和 /etc/gurb.d下的脚本文件,以后不管升级内核或者是升级grub所执行的update-grub,所创建的grub.cfg都会如你所愿。
先看下 /etc/default/grub,一般可能要修改的是这两处:
GRUB_DEFAULT=0 -----> 设定默认启动项,按需要修改为1, 2, ...
GRUB_TIMEOUT=10 ------->设定倒计时时间,默认10秒,一般改为3-5秒就够了。

再看下 /etc/grub.d文件夹下的什么东东:
00_header 05_debian_theme 10_linux 20_memtest86+ 30_os-prober 40_custom README
前面这五个脚本对应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,这里不必修改。
或根据自己的系统修改
menuentry "${LONGNAME} (on ${DEVICE})" <-------把引号中的变量改为固定,如 windows xp ,vista 或 linux , Fedora 之类的菜单项。

40_custom 自定义启动项,按菜单标准格式添加即可,update-grub后会自动添加到grub.cfg上,如:
menuentry "启动 Veket"{
set root=(hd0,8)
linux /veket/vmlinuz root=/dev/ram0 PMEDIA=hd
initrd /veket/initrd.gz
}
menuentry "启动 CDLinux"{
set root=(hd0,8)
linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd
}
menuentry "启动 Grub4Dos"{
set root=(hd0,8)
linux /grub.exe
}

把各项修改后保存,然后
sudo update-grub
cat /boot/grub/grub.cfg
看看配置文件是不是和你想的一样了。
不一样??? 再改,再 sudo update-grub

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27816.html