目录

本文内容说明

本文撰文环境

理解要点

参考连接

正文开始

引言

一、查看/boot/efi/EFI/centos/grub.cfg文件(文末配有文件脚本)

二、修改默认启动选项

三、重启系统(重启机器)

四、启动脚本内容*


本文内容说明

  • 本文在撰文的时候linux启动项中已经存在windows启动项了,所以本文不再介绍添加启动项的问题,如果你的启动引导中不存在windows启动选项的问题不再本文介绍范围之内
  • 本文操作均使用root账户进行操作
  • 本文阅读的条件:已经具备linux操作能力的读者

本文撰文环境

  • Windows10 专业版(1809)
  • centos7.3.28.2

参考连接

centos7下修改windows默认启动顺序 - u012418573的博客 - CSDN博客

理解要点

  1. bios系统启动过后,将对硬件系统控制权交给Linux启动内核
  2. linux启动内核执行/boot/efi/EFI/centos/grub.cfg
  3. /boot/efi/EFI/centos/grub.cfg脚本会读取/boot/efi/EFI/centos/grubenv文件中的配置信息

正文开始

引言

双系统的安装顺序是先安装windows,再安装linux,这里不做赘述,相信能安装安装双系统的肯定都是了解到了的。通常在linux安装完成后,linux系统会自动检测主机中存在的其他系统,并将其他系统的引导索引添加到自己(linux)的启动引导中去,但是在添加其他系统引导到自身引导索引的时候,默认是将linux自己作为默认启动的系统。而且默认只有5秒的选择时间。如果你本想启动windows系统,但此时恰好稍微有点事情在忙,错过了这个时间,那么又得重启机器,就十分蛋疼了。

一、查看/boot/efi/EFI/centos/grub.cfg文件(文末配有文件脚本)

该文件中虽然不能完全明白其中的意思,但可以确定的是,在启动项中的名字一个字不差的存在于该文件脚本中,而且为每个启动项添加了该启动引导的文件具体位置(用地址符表示的磁盘位置),大概在100行以后。

文件中表示写入启动菜单的脚本
文件中表示写入启动菜单的脚本

此时我们只需要记住:当前脚本文件中windows启动项(启动菜单)的名字,也就是在下图中menuentry 'Windows Boot Manager (on /dev/sda2)'所在行

脚本中写入windows启动菜单的代码行
脚本中写入windows启动菜单的代码行

看到这里我们知道了我们在开机进入选择启动系统菜单的时候,windows  启动选项的名字叫做:

Windows Boot Manager (on /dev/ada2)

二、修改默认启动选项

在第一部步中,我们已经之知道了windows的启动选项名字,接下来我们就要去修改默认启动选项

使用文本编辑器打开/boot/efi/EFI/centos/grubenv,该文件原内容如下

# GRUB Environment Block
saved_entry=CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
#####################################################################################################

现在我们要做的就是修改等号后面的内容:将默认为linux启动改为window启动,文件更改后的内容为:

# GRUB Environment Block
saved_entry=Windows Boot Manager (on /dev/sda2)
##############################################################

现在我们可以重启机器了

三、重启系统(重启机器)

命令行输入以下内容(重启命令)

shutdown -r now

开机选择选项就默认停留在windows启动选项了

默认选项已是Windows启动啦
默认选项已是Windows启动啦

 

四、启动脚本内容(/boot/efi/EFI/centos/grub.cfg)*

脚本开始的声明:

不要编辑此文件:此脚本文件由 grub2-mkconfig 自动生成的,而 grub2-makconfig 文件内容基于 /etc/grub.d 和 /etc/default/grub 的设置。

也就是说文件(/boot/efi/EFI/centos/grub.cfg)不是决定性的文件。如果想了解其原理,请自个研究吧!

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

### BEGIN /etc/grub.d/00_header ###
set pager=1

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="${saved_entry}"
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
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
set tuned_initrd=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###


### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-DCA8-8B36' {
	insmod part_gpt
	insmod fat
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  DCA8-8B36
	else
	  search --no-floppy --fs-uuid --set=root DCA8-8B36
	fi
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### 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 ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-bca5da09-e114-420b-ba5a-79877f3af246' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod xfs
	set root='hd0,gpt7'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  fa69becc-8122-4687-8653-21d046856543
	else
	  search --no-floppy --fs-uuid --set=root fa69becc-8122-4687-8653-21d046856543
	fi
	linuxefi /vmlinuz-3.10.0-957.10.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap nomodeset rhgb quiet LANG=zh_CN.UTF-8
	initrdefi /initramfs-3.10.0-957.10.1.el7.x86_64.img
}
menuentry 'CentOS Linux (0-rescue-ef6584954e1443c5a82174a1b5d1bcd8) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-ef6584954e1443c5a82174a1b5d1bcd8-advanced-bca5da09-e114-420b-ba5a-79877f3af246' {
	load_video
	insmod gzio
	insmod part_gpt
	insmod xfs
	set root='hd0,gpt7'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  fa69becc-8122-4687-8653-21d046856543
	else
	  search --no-floppy --fs-uuid --set=root fa69becc-8122-4687-8653-21d046856543
	fi
	linuxefi /vmlinuz-0-rescue-ef6584954e1443c5a82174a1b5d1bcd8 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap nomodeset rhgb quiet
	initrdefi /initramfs-0-rescue-ef6584954e1443c5a82174a1b5d1bcd8.img
}

### 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_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐