在Ubuntu系统中,GRUB(Grand Unified Bootloader)是默认的启动加载程序,负责在系统启动时加载操作系统内核,默认情况下,GRUB可能会将我们不常用的系统设为默认启动项,或缺乏密码保护导致启动项被恶意修改,本文将详细介绍如何更改GRUB启动顺序、设置启动密码,确保系统启动安全与便捷。
GRUB启动项管理基础
什么是GRUB启动顺序?
GRUB启动顺序决定了系统开机后默认加载的操作系统,若电脑同时安装了Ubuntu和Windows,默认启动Ubuntu可能更高效;若需临时切换至Windows,调整启动顺序可避免每次手动选择。
查看当前GRUB启动项
修改前,先了解当前启动项配置,执行以下命令查看GRUB配置文件:

cat /boot/grub/grub.cfg
在输出中找到menuentry部分,每个menuentry对应一个启动项(如Ubuntu、Windows),按顺序编号从0开始(0为默认启动项)。
更改GRUB启动顺序
备份原始配置(重要!)
修改前务必备份/etc/default/grub文件(GRUB的核心配置文件),避免误操作导致系统无法启动:
sudo cp /etc/default/grub /etc/default/grub.bak
编辑GRUB配置文件
使用文本编辑器(如nano)打开/etc/default/grub:
sudo nano /etc/default/grub
找到GRUB_DEFAULT行,默认值为0(即第一个启动项),可通过以下两种方式修改:
- 方式1:按索引修改
若要将第三个启动项设为默认,修改为:GRUB_DEFAULT=2 # 索引从0开始,0=第一个,1=第二个,2=第三个
- 方式2:按标题修改(推荐)
若需指定具体系统(如“Ubuntu”或“Windows 10”),直接填写menuentry中的完整标题(需区分大小写):GRUB_DEFAULT="Ubuntu"
更新GRUB配置
保存文件后,执行以下命令使配置生效:
sudo update-grub
执行后会看到“Generating grub configuration done”提示,说明更新成功。
验证启动顺序
重启系统,进入GRUB菜单(长按Shift键或快速按Esc键),观察默认启动项是否已更改。
设置GRUB启动密码
为什么要设置GRUB密码?
- 防止他人通过GRUB菜单进入恢复模式(如单用户模式)修改密码或数据;
- 避免恶意用户更改启动顺序或加载恶意内核。
生成GRUB密码哈希
GRUB密码需以哈希形式存储,使用grub-mkpasswd-pbkdf2命令生成:
sudo grub-mkpasswd-pbkdf2
根据提示输入密码并确认,输出结果类似:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.....
复制生成的哈希值(以grub.pbkdf2.开头)。
创建GRUB超级用户
GRUB密码需与用户绑定,默认使用root用户,编辑/etc/grub.d/00_header文件(该文件负责GRUB基础配置):
sudo nano /etc/grub.d/00_header
在文件末尾(if [ "${GRUB_DISABLE_SUPERUSER}" != "true" ]; then部分)添加以下内容:
cat << EOF set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.....(粘贴刚才复制的哈希值) EOF
注意:若需自定义用户名(如
admin),将root替换为admin,并确保/etc/grub.d/00_header中无冲突配置。
更新GRUB配置
保存文件后,执行sudo update-grub使密码配置生效:
sudo update-grub
验证密码保护
重启系统,进入GRUB菜单,尝试编辑启动项(如按e键),此时会提示输入用户名(root)和密码,验证通过后方可修改启动参数。
常见问题与注意事项
问题1:修改启动顺序后不生效
- 检查是否执行了
sudo update-grub; - 确认
/etc/default/grub中GRUB_DEFAULT值正确(索引或标题需匹配grub.cfg中的menuentry)。
问题2:忘记GRUB密码怎么办?
若忘记

