热搜词
发表于 2016-7-31 09:03:43 | 显示全部楼层 |阅读模式
ubuntu server 12.04 64位系统,安装在gpt分区的硬盘上,第一个分区为 EFI启动分区,挂载点为  /boot/efi
硬盘各分区UUID为:
root@ubuntu:/boot/efi/EFI/ubuntu# blkid
/dev/sda1: UUID="5FC5-6FEF" TYPE="vfat"
/dev/sda2: UUID="2df31e48-d767-4a42-b0fc-9c2819d886ac" TYPE="ext4"
/dev/sda3: UUID="c5db3401-61aa-4d69-a1f0-33a55206c0c7" TYPE="ext4"


grub.cfg在根目录下的位置:
/boot/efi/EFI/ubuntu/grub.cfg

grub.cfg配置文件内容如下:

search.fs_uuid 2df31e48-d767-4a42-b0fc-9c2819d886ac root
set prefix=($root)/boot/grub
configfile $prefix/grub.cfg

从配置文件中可以看出,启动流程应该是这样的,在启动时先读取/boot/efi/EFI/ubuntu/grub.cfg配置文件,由于此配置文件内嵌了/boot/grub/grub.cfg配置文件,然后再读取/boot/grub/grub.cfg配置文件。

/boot/grub/grub.cfg配置文件如下:

---------------------------------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_gpt
insmod ext2
set root='(hd1,gpt2)'
search --no-floppy --fs-uuid --set=root 2df31e48-d767-4a42-b0fc-9c2819d886ac
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_gpt
  insmod ext2
  set root='(hd1,gpt2)'
  search --no-floppy --fs-uuid --set=root 2df31e48-d767-4a42-b0fc-9c2819d886ac
  set locale_dir=($root)/boot/grub/locale
  set lang=zh_CN
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=hidden
    set timeout=0
  # Fallback hidden-timeout code in case the timeout_style feature is
  # unavailable.
  elif sleep --interruptible 0 ; then
    set timeout=0
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
        set gfxpayload="${1}"
        if [ "${1}" = "keep" ]; then
                set vt_handoff=vt.handoff=7
        else
                set vt_handoff=
        fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu,Linux 3.13.0-92-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='(hd1,gpt2)'
        search --no-floppy --fs-uuid --set=root 2df31e48-d767-4a42-b0fc-9c2819d886ac
        linux        /boot/vmlinuz-3.13.0-92-generic.efi.signed root=UUID=2df31e48-d767-4a42-b0fc-9c2819d886ac ro   quiet splash $vt_handoff
        initrd        /boot/initrd.img-3.13.0-92-generic
}
menuentry 'Ubuntu, with Linux 3.13.0-92-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='(hd1,gpt2)'
        search --no-floppy --fs-uuid --set=root 2df31e48-d767-4a42-b0fc-9c2819d886ac
        echo        '载入 Linux 3.13.0-92-generic ...'
        linux        /boot/vmlinuz-3.13.0-92-generic.efi.signed root=UUID=2df31e48-d767-4a42-b0fc-9c2819d886ac ro recovery nomodeset
        echo        '载入初始化内存盘...'
        initrd        /boot/initrd.img-3.13.0-92-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
        insmod part_gpt
        insmod ext2
        set root='(hd1,gpt2)'
        search --no-floppy --fs-uuid --set=root 2df31e48-d767-4a42-b0fc-9c2819d886ac
        linux16        /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
        insmod part_gpt
        insmod ext2
        set root='(hd1,gpt2)'
        search --no-floppy --fs-uuid --set=root 2df31e48-d767-4a42-b0fc-9c2819d886ac
        linux16        /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# 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.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

-----------------------------------------------------------------------------------------------------

让ubuntu server 12.04 显示 grub 菜单的方法

默认情况下,如果系统只有一个版本的ubuntu,grub菜单是不显示的。最近由于显示驱动方面的问题,有时候因为花屏导致无法进入系统,一次使用U盘进入,一次是ssh远程进入,为了避免类似尴尬的局面,打算显示grub菜单。


步骤如下:
  • 首先备份/etc/default/grub文件
  • 打开/etc/default/grub文件,找到
    • GRUB_HIDDEN_TIMEOUT=0

    这行,使用#注释掉,变成
    • #GRUB_HIDDEN_TIMEOUT=0
  • 找到
    • GRUB_TIMEOUT=10

    把10变成3,意思是等待3秒钟。
    • GRUB_TIMEOUT=3
  • 保存后,执行命令
    • sudo update-grub

    现在启动的时候就会显示grub菜单了,如果3秒内不选择,则会自动进入系统。



全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 15:42 , Processed in 0.160242 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team