在Fedora 25中修改GRUB 2默认启动项手记
来源:互联网 发布:世界编程大赛第一名 编辑:程序博客网 时间:2024/06/06 14:15
不知道是官方文档没说清楚还是我理解能力太差,GRUB 2中设置默认启动项的许多细节我在过去的几年里都是云里雾里的。今天重装Fedora,又遇到这个问题,折腾了好久。觉得很有必要记录下来。
操作GRUB 2的默认启动项涉及到以下命令:
grub2-set-default
grub2-mkconfig
vim或者nano或者emacs或者任何你喜欢的文本编辑器
和以下文件:
/etc/default/grub
/boot/grub2/grub.cfg (BIOS)
/boot/efi/EFI/fedora/grub.cfg (UEFI)
/boot/grub2/grubenv(这是一个符号链接)
本文涉及到的绝大多数操作都需要root权限,请自行su或者sudo并谨慎操作,下文不再提示。
让GRUB 2记住上一次启动的操作系统
- 修改符号链接/boot/grub2/grubenv
Wiki上说对于Fedora 20以上的要修改/boot/grub2/grubenv使其以相对路径指向../efi/EFI/fedora/grubenv(原文:The /boot/grub2/grubenv is symbolic linked to /boot/efi/EFI/fedora/grubenv but /boot is not mounted at the time of booting. So grub2 does not have access to the environment variables. To fix this, change /boot/grub2/grubenv to point to ../efi/EFI/fedora/grubenv instead and your chosen default OS will boot without any problems.)才能奏效,我并没有尝试如果不修改此符号链接是否能成功。读者如果有兴趣的话可以尝试不修改此符号链接,直接跳到下一步。
cd /boot/grub2rm grubenvln -s ../efi/EFI/fedora/grubenv grubenv
修改/etc/default/grub原来的/etc/default/grub看起来可能是这样的:
GRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"GRUB_DEFAULT=savedGRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console"GRUB_CMDLINE_LINUX="rhgb quiet"GRUB_DISABLE_RECOVERY="true"
加入一行GRUB_SAVEDEFAULT=true
- 生成新的配置文件
BIOS机器上:
grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI机器上:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
指定某个固定的启动项作为默认的启动项
- 修改符号链接/boot/grub2/grubenv
同前,不知道不修改会怎样……
- 修改/etc/default/grub
同样是加入GRUB_SAVEDEFAULT,不过这次值为false
GRUB_SAVEDEFAULT=false
注:根据Wikiand ensure this line not exists:GRUB_SAVEDEFAULT=trueor ensure this line exists:GRUB_SAVEDEFAULT=false
推测不存在GRUB_SAVEDEFAULT时,认为其值为false。
- 指定默认的启动项名称
运行
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
确认当前的操作系统有哪些启动项。请注意由于/etc/grub2.cfg是一个符号链接,指向的地方与当前系统的架构有关。如果你是从U盘上启动的,比如说,你启动的是Fedora Live,而你想要修改硬盘上的GRUB 2配置,请将其替换成硬盘上的相应的文件的路径。我的机器上得到的是如下结果
[xzc@localhost ~]$ awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfgFedora (4.9.6-200.fc25.x86_64) 25 (Twenty Five)Fedora (4.8.6-300.fc25.x86_64) 25 (Twenty Five)Fedora (0-rescue-62422599867f4aeebb084a25f2c6634e) 25 (Twenty Five)Fedora (0-rescue-ad1448f5d35a46338309e1c12ca15276) 25 (Twenty Five)Windows Boot Manager (on /dev/sda1)
如果想要固定启动Windows(固定启动Windows?我想你不会那么做吧?不然你安装Linux的动机是什么?),运行
grub2-set-default "Windows Boot Manager (on /dev/sda1)"
- 生成新的配置文件
参看前面生成配置文件的方法。
GRUB_DEFAULT和GRUB_SAVEDEFAULT作用小结
当GRUB_DEFAULT=saved时,如果GRUB_SAVEDEFAULT=true,则进入上一次加载的操作系统。上一次加载的操作系统保存在符号链接/boot/grub2/grubenv指向的文件中。如果GRUB_SAVEDEFAULT=false或者GRUB_SAVEDEFAULT不存在,则可以使用grub2-set-default指定默认启动项。如果不指定,则使用grub.cfg中的第一个启动项作为默认启动项。
参考资料
Fedora wiki上的GRUB 2: http://fedoraproject.org/wiki/GRUB_2
Fedora 25 Documention: https://docs.fedoraproject.org/en-US/Fedora/25/html/System_Administrators_Guide/sec-Customizing_the_GRUB_2_Configuration_File.html#sec-Changing_the_Default_Boot_Entry
- 在Fedora 25中修改GRUB 2默认启动项手记
- GRUB启动默认项修改
- 修改Grub默认启动项
- 在GRUB中修改多操作系统的启动顺序和默认启动系统
- 修改GRUB默认启动顺序
- 修改grub默认启动顺序
- grub默认启动项
- Fedora 17 修改GRUB启动菜单顺序
- Ubuntu多系统修改默认启动项(grub)
- 【grub默认启动项修改方式】亲测可用
- 修改grub启动项
- 修改grub启动项
- 修改grub 启动项
- GRUB 问题:如何修改默认启动顺序?
- [ubuntu]修改GRUB的默认启动系统
- Ubuntu Grub 默认启动顺序修改
- 修改grub配置文件,默认启动WINXP
- 修改Fedora 25与Windows 10的默认启动顺序
- 挖坑 代填
- 父母恩情
- java中的多态-父类引用指向子类对象
- 一些3D小场景
- 分治求逆序对算法
- 在Fedora 25中修改GRUB 2默认启动项手记
- 畅通工程再续
- Cousera-stanford-机器学习练习-第二周-Linear Regression with Multiple Variables
- RStudio快捷键总结
- Java SE 基础:反射
- 51nod 1020 逆序排列
- 网易MySQL数据库工程师微专业学习笔记(六)
- hibernate创建sessionFactory的不同方式
- codevs 天梯 数字三角形