Ubuntu开机启动引导界面除了Ubuntu、Windows系统之外,还有Advanced options for Kubuntu
、UEFI Firmware Settings
等基本不用的条目。今天记录一下如何移除这些条目及相关问题。
启动菜单计时调整
开机引导界面菜单选择时间默认为10s倒计时,10秒内选择,对应的启动项,否则会默认启动系统已选定的项。我希望更改为系统停留在选择界面,直到我手动选择。
这个修改需要调整/etc/default/grub
文件,打开对应文件:
sudo nano /etc/default/grub
会看到很多配置项:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0 // 设定系统预选菜单
GRUB_TIMEOUT_STYLE=hidden // 设定超时样式,默认超时隐藏。可设定为menu,超时显示启动项菜单
GRUB_TIMEOUT=-1 //设定菜单等待时间,默认10秒;0为不等待;-1为持续等待,直到手动选择。
GRUB_DISTRIBUTOR='Kubuntu' // 发行版本名,我使用的是Kubuntu
GRUB_CMDLINE_LINUX_DEFAULT='quiet splash' // quiet 启动时简化提示信息;splash 启动时用图形化进度条代替控制台字符输出。也可设置为text
GRUB_CMDLINE_LINUX="" // 导入到启动项的命令行
要实现我的需求,直接配置GRUB_TIMEOUT=-1
即可。
此时执行sudo update-grub
命令更新引导配置。
调整启动项顺序
我发现系统默认将Kubuntu排在第一位,而Windows排在第四位了。考虑到家里人使用我电脑时,主要是进入Windows系统,我想将Windows挪到第一位。
最开始我调整sudo nano /boot/grub/grub.cfg
文件,直接在文件内调整顺序,删减所遇的启动项,发现更改后调用sudo update-grub
命令就会将更改覆盖。
仔细查看sudo nano /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
#
原来该文件是由/etc/grub.d
和 /etc/default/grub
两个文件生成的。/etc/grub.d
是一个文件夹,里面有很多文件,我们查看README
文件,查看描述:
All executable files in this directory are processed in shell expansion order.
00_*: Reserved for 00_header.
10_*: Native boot entries.
20_*: Third party apps (e.g. memtest86+).
The number namespace in-between is configurable by system installer and/or
administrator. For example, you can add an entry to boot another OS as
01_otheros, 11_otheros, etc, depending on the position you want it to occupy in
the menu; and then adjust the default setting via /etc/default/grub.
通过文件夹里的文件描述及备注知道,我们可通过自定义配置修改启动项。
其中00_header配置头信息、初始内容;05_debian_theme配置主题;10_linux系统使用的Linux系统内核配置;20_memtest86+ 内存检测测试软件;30_os-prober系统检测其他操作系统。
其中文件名前部分数字,代表了执行的顺序。比如我要把其他操作系统放到Linux前面,只需要将30_os-prober
文件名中数字30改为小于10_linux
中数字10的数字,防止影响其他功能,我们改为大于05,小于10的数字7:
sudo mv /etc/grub.d/30_os-prober /etc/grub.d/07_os-prober
此时,再次执行sudo update-grub
命令更新引导配置,重启发现Windows已经挪到了第一位。
移除多余的引导项
我发现开机启动引导界面中除了Ubuntu、Windows外,还有Advanced options for Kubuntu
、UEFI Firmware Settings
等不常用条目,那么如何移除呢?
我们查看10_linux
、30_os-prober
,发现并没有写死启动项,使用scripts
扫描磁盘实现的,那么不具备脚本编写能力的花,只能通过/boot/grub/grub.cfg
进行调整了。
打开文件,找到对应的项删除即可。但需要注意:调整/boot/grub/grub.cfg
后,再次执行sudo update-grub
命令会将调整内容覆盖。因此调整后不要再执行sudo update-grub
命令。