00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom这五个脚本对应grub.cfg上的各个部分,有的版本的grub可能把
30_os-prober分出另一部分为 30_os-others,这并不影响。怎样修改这些脚本文件才能保证不会破坏update-grub的运行,又能让生成的grub.cfg合乎意

愿呢? 其实很简单,只要在脚本文件中找到
cat 其他使用变量的语句不要随变做修改,除非你清楚修改后会有什么结果。

1)看看00_header,一样在终端中打开sudo gedit /etc/grub.d/00_header,找到这部分
cat 加载由save_env保存在grubenv的变量
set default="${GRUB_DEFAULT}" ->使用/etc/default/grub中的设定值
if [ \${prev_saved_entry} ]; then
saved_entry=\${prev_saved_entry}
save_env saved_entry
prev_saved_entry= ->变里设置的变量由下句保存到grubenv
save_env prev_saved_entry
fi ->这里回车添加新行后可插入需要添加的模块
insmod jpeg ->添加背景图片格式支持,如jpeg,png,tga等。
insmod fat ->添加文件系统格式支持如fat,ntfs,也可在menuentry下添加
EOF
再看看最后这一段
cat 设定为若有启动失败记录,就显示菜单,需手动选择才能启动选择项
else
set timeout=${GRUB_TIMEOUT} ->使用/etc/default/grub中的设定值
fi ->这行后添加行
background_image (hd0,7)/boot/images/002.jpg ->添加背景图片的绝对路径
EOF

2)05_debian_theme修改字体及背景颜色
先打开文件 sudo gedit /etc/grub.d/05_debian_theme
看这里
cat 设置菜单项的字体和背景颜色
set menu_color_highlight=black/white ->设置选择项的字体和背景颜色。
EOF
可供使用菜单颜色有:
black,blue,green,cyan,red,magenta,brown,light-gray,dark-gray,light- blue,light-green,light-cyan,light-red,light-magenta,

yellow,white

3)10_linux这部分是自动搜索当前系统,建立当前系统的启动菜单,包括系统头,内核等信息,不要随便修改,要使用个性菜单名,比如中文菜单,可适

当添加:
先打开文件 sudo gedit /etc/grub.d/10_linux,找到
cat 双引号内可添加个性化字符,$1变量也可改为定值,如改为menuentry "启动 Ubuntu Karmic" {
recordfail=1
save_env recordfail ->如不要保存启动失败记录的,这两句可删除
EOF
if [ "x$3" = "xquiet" ]; then
cat 启动画面不用splash,要用跳动字符的,这段可删除
个性化菜单项也可在这里修改,即上面的menuenrty "$1"不变,修改下面的数值:
linux_entry "${OS}, Linux ${version}" \ ->可改为 linux_entry "启动 Ubuntu, Linux ${version}"\
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
quiet
if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}, Linux ${version} (recovery mode)" \ ->可改为 linux_entry "启动 Ubuntu, Linux ${version} (修复模式)"\
"single ${GRUB_CMDLINE_LINUX}"
fi
注意只修改引号内的字符,前面的menuentry,linux_entry和后面的\不要做修改。
4)20_memtest86+自动添加内存测试启动项
打开文件 sudo gedit /etc/grub.d/20_memtest86+,找到
cat 双引号内可添加个性字符如menuentry "启动 内存测试"
linux16 $MEMTESTPATH
}
menuentry "Memory test (memtest86+, serial console 115200)" {
linux16 $MEMTESTPATH console=ttyS0,115200n8
}
EOF
上面有两内存测试项,可删除其中一个。
5)30_os-prober查找其他分区中存在的系统并建立菜单项,依次为windows,linux,macos。
对于单系统,默认会隐藏菜单,可在这里去掉隐藏
先打开文件 sudo gedit /etc/grub.d/30_os-prober
单ubuntu系统会自动隐藏菜单,要取消隐藏菜单,可把这部份的三个timeout=0改为和/etc/default/grub中的timeout一致,比如timeout=10。
cat 比如改为menuentry "启动 Windows XP" {
EOF
linux启动项
linux)
LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
......
if [ -z "${LLABEL}" ] ; then
LLABEL="${LONGNAME}"
fi
cat 比如改为menuentry "启动 Mandriva" {
EOF
macos启动项
macosx)
OSXUUID="`grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
cat 比如改为menuentry "启动 MacOS" {
EOF
6)40_custom 自定义启动项,按菜单标准格式在后面添加即可,如
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
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
}

grub2的/etc/grub.d目录下的脚本文件的更多相关文章

  1. TCL 引用同目录下其他脚本文件--source

    方法一: source [file join [file dirname [info script]] Export_inp_by_loadstep.tcl] 方法二: source [file jo ...

  2. [No000073]C#直接删除指定目录下的所有文件及文件夹(保留目录)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)

    wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...

  4. linux复制指定目录下的全部文件到另一个目录中

    linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...

  5. python实现查看目录下重复的文件

    该python 脚本有以下三个功能: 1. 实现查看目录下重复的文件,输出文件按修改时间升序排列 2. 将按修改时间排列比较旧的.可删除的文件列出来 3. 按目录对重复文件进行统计,比如,目录/tmp ...

  6. [转载] linux查找目录下的所有文件中是否含有某个字符串

    链接自 http://blog.sina.com.cn/s/blog_691a84f301015khx.html,并略加修订. 查找目录下的所有文件中是否含有某个字符串 find .|xargs gr ...

  7. 【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称

    Unity3D的特殊目录名称   Unity预留了一些目录名称,这些目录有着特殊的含义.比较重要的有: Resources这个目录下的所有文件都会被打包到发布版本中,程序可以通过文件路径来访问它们.这 ...

  8. java 20 -3 递归之删除特定目录下的特定文件

    /* 需求:删除H:\demo目录下的带内容的文件 分析: A:封装该目录 B:获取该目录下所有的文件或文件夹的File数组 C:遍历该File数组,获取每一个File对象 D:判断所遍历的FIle对 ...

  9. linux查找目录下的所有文件中是否含有某个字符串

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" find .|xargs grep -ri "IBM" -l ...

随机推荐

  1. 什么是RAW?

    RAWRAW是一个PHP网站开发系统,使用简单.快捷,核心功能是通过模版组合网站,模版可以自由开发,使开发者不再受传统开发的那种头晕限制,只需要通过填写表单即可完成网站的开发.此外,开发者还可以通过开 ...

  2. Git merge local repository

    I've met this problem for so many times and let me write a blog for solving this problem. First, you ...

  3. JAVA堆与栈

    数据类型: Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身 ...

  4. MVC-07 案例2

    二.电子商务网站 掌握该网站的开发流程和设计思路,并为数据模型中商品.商品分类,这两个类编写代码. 1.需求分析 2.数据模型规划 (1)商品类别 (2)商品信息 (3)会员信息 (4)购物车项目 ( ...

  5. CI引入外部javascript和css

    假定baseurl 为 $config['base_url']='http://localhost/codeigniter/'; 调用 <link rel="stylesheet&qu ...

  6. 10个JavaScript小技巧

    1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做 ...

  7. Eclipse新建Android工程,在模拟器运行的时候提示Unfortunately,XXX has stopped.

    刚新建好的android工程在模拟器运行的时候出错,提示Unfortunately,XXX has stopped 查看Eclipse下面的错误信息,双击第一条 把ActionBarActivity前 ...

  8. webform基础介绍及页面传值(session,cookie)、跳转页面

    一,IIS 1.首先知道IIS是个什么东西:它是web服务器软件,安装在服务器上,接受客户端发来的请求,并传送给服务器端,然后响应请求并送回给客户端.类似于饭店里的服务员. 2.会安装IIS——控制面 ...

  9. iPhone 真机调试应用程序

    原文:http://blog.sina.com.cn/s/blog_68e753f70100r3w5.html 真机调试iphone应用程序 1.真机调试流程概述 1)       真机调试应用程序, ...

  10. ARM异常---一个Uart中断的触发处理过程:

    首先给出一些定义: //2440addr.inc INTOFFSET EQU 0x4a000014 ;Interruot request source offset //option.inc _ISR ...