zoukankan      html  css  js  c++  java
  • grub2的/etc/grub.d目录下的脚本文件

    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
    }

  • 相关阅读:
    【JLOI2011】飞行路线
    P3369 【模板】普通平衡树
    P1144 最短路计数
    P1462 通往奥格瑞玛的道路
    【NOIP2017】宝藏
    P1120 小木棍
    P3919 【模板】可持久化数组(可持久化线段树/平衡树)
    P3834 【模板】可持久化线段树 1(主席树)
    矩阵清零--进军硅谷
    二维数组搜素--进军硅谷
  • 原文地址:https://www.cnblogs.com/codeblock/p/4295112.html
Copyright © 2011-2022 走看看