grub2 安装及设置

                                            grub2 安装及设置





准备工 作:




grub2 的下载地址  https://ftp.gnu.org/gnu/grub

syslinux 的下载地址  https://wiki.syslinux.org/wiki/index.php?title=The_Syslinux_Project 

[在syslinux 包中提取memdisk文件。(syslinux-6.04-pre1\bios\memdisk\memdisk)]


安 装GRUB2 ,并设置:



 
Converted Image

  Converted Image

  Converted Image

  Converted Image

  Converted Image
  Converted Image


GRUB.CFG 文件的例子:

#MBR格式:
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

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 load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
    font="${prefix}/fonts/unicode.pf2"
fi


if loadfont $font ; then
    #set gfxmode=1024x768x32,1024x768x24,1024x768x16,1024x768,auto
    #set gfxpayload=keep

  loadfont /grub/fonts/dejavu-bold-16.pf2
  loadfont /gurb/fonts/dejavu-bold-14.pf2
  set gfxmode=auto

    load_video
    insmod gfxterm
    insmod png
    terminal_output gfxterm

  #set color_normal=light-gray/black
  #set color_highlight=white/black
    #background_image -m stretch $prefix/themes/taylor swift1.jpg
fi
if [ x$feature_timeout_style= xy ] ; then
  set timeout_style=menu
  set timeout=-1
##主菜单的超时时间。设置为-1表示不超时。
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=3
##错误回滚的超时时间。设置为3表示3秒后回滚。
fi


set color_normal=light-gray/black
set color_highlight=white/black

if [ -e /grub/themes/starfield/usetheme.TXT ]; then
    # binary_syslinux modifies the theme file to point to the correct
    # background picture
    set theme=/grub/themes/starfield/theme.txt
    insmod jpeg
else
    set menu_color_normal=cyan/blue
    set menu_color_highlight=white/blue
fi



### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
    source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
    source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###



menuentry "正常启动win10" {
set root=(hd0,msdos1)
chainloader +1
}


menuentry "Restart(重启)" {
    reboot
}

menuentry "Power Off(关机)" {
    halt
}

menuentry "Win_PE" {
set root=(hd0,3)
echo "正在启动Win_PE,请耐心等待...."
chainloader +1
##因为winPE.iso释放到此分区中,所以让它直接启动。
}

menuentry "DiskGenius_PE" {
set root=(hd4,3)
linux16 $prefix/i386-pc/MEMDISK iso raw
echo "正在启动DiskGenius_PE,请耐心等待...."
initrd16 /DiskGenius_PE.iso
}

menuentry "安装系统win10" {
set root=(hd4,msdos3)
chainloader +1
}
#GPT格式:
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi
export menuentry_id_option
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 load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}
if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
    font="${prefix}/fonts/unicode.pf2"
fi
if loadfont $font ; then
    set gfxmode=2560x1440,auto
    #set gfxpayload=keep
  loadfont /grub/fonts/dejavu-bold-16.pf2
  loadfont /gurb/fonts/dejavu-bold-14.pf2
  set gfxmode=auto
    load_video
    insmod gfxterm
    insmod png
    terminal_output gfxterm
  #set color_normal=light-gray/black
  #set color_highlight=white/black
    #background_image -m stretch $prefix/themes/taylor swift1.jpg
fi
if [ x$feature_timeout_style= xy ] ; then
  set timeout_style=menu
  set timeout=3
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=3
fi
set color_normal=light-gray/black
set color_highlight=white/black
if [ -e /grub/themes/starfield/usetheme.TXT ]; then
    # binary_syslinux modifies the theme file to point to the correct
    # background picture
    set theme=/grub/themes/starfield/theme.txt
    insmod jpeg
else
    set menu_color_normal=cyan/blue
    set menu_color_highlight=white/blue
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### 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  ${config_directory}/custom.cfg ]; then
    source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
    source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###


menuentry "Windows 11" {
    insmod part_gpt  # 加载 GPT 支持
    insmod fat       # 加载 FAT 支持(EFI 分区常用)
    insmod ntfs
    insmod chain
    search --no-floppy --fs-uuid --set=root 05D2-DAC0  # 搜索并设置 EFI 分区
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi       # 基于新 root 加载
    boot
}

menuentry "Restart(重启)" {
    reboot
}


menuentry "Power Off(关机)" {
    halt
}


menuentry "WinPE_m2盘" {
   insmod part_gpt  # 加载 GPT 支持
    insmod fat       # 加载 FAT 支持(EFI 分区常用)
    insmod ntfs
    insmod chain
    search --no-floppy --fs-uuid --set=root 75C1-BE65  # 搜索并设置 EFI 分区
    chainloader /efi/boot/bootx64.efi       # 基于新 root 加载
    boot
}


menuentry "WinPE_机械盘" {
   insmod part_gpt  # 加载 GPT 支持
    insmod fat       # 加载 FAT 支持(EFI 分区常用)
    insmod ntfs
    insmod chain
    search --no-floppy --fs-uuid --set=root 7CB9-A525  # 搜索并设置 EFI 分区
    chainloader /efi/boot/bootx64.efi       # 基于新 root 加载
    boot
}




  Converted Image