!/usr/bin/env bash

!/usr/bin/env bash

我有一台装有 UEFI 固件的笔记本电脑,但必须将固件设置为在 CSM 传统模式下启动,以便我可以从 USB 启动。我正在多重启动三个不同的 Linux 发行版,其中两个是 Ubuntu。这些发行版都安装在自己的逻辑卷上。其中一个发行版上安装了 VirtualBox,我希望它成为我的 GRUB 默认设置,但目前它还不是。

我使用 sudo 编辑了 /etc/default/grub 文件,如下所示:

将 DEFAULT=0 更改为 DEFAULT="saved" 在其下方添加新行... GRUB_SAVEDEFAULT="true"

然后我用:wq!保存了文件

然后我输入命令... sudo update-grub

重新启动后没有成功,我尝试过......

sudo chmod 744 /boot/grub/grub.cfg sudo update-grub sudo chmod 444 /boot/grub/grub.cfg

重新启动后,默认启动顺序仍然没有改变。

安装了 grub-configuration GUI 工具,它反映了我所做的所有更改,但是当我重新启动机器时,默认启动顺序仍然没有改变。

我也尝试过从 GNOMElooks 安装 GRUB2,我使用了下载时打包的安装脚本,它也没有显示在 GRUB 启动画面上。

这是我执行的 GRUB2 主题下载附带的 install.sh 文件:

!/usr/bin/env bash

GRUB_NAME=""

function compile_grub() { echo -e "\e[1m\e[32m==> \e[97m正在应用更改...\e[0m" ${GRUB_NAME}-mkconfig -o /boot/${GRUB_NAME}/grub.cfg echo -e "\e[1m\e[34m -> \e[97m主题已成功应用!" echo -e "\e[1m\e[34m -> \e[97m重新启动您的 PC 进行检查。" sleep 2 }

函数 update_grub_file() { grep -v GRUB_THEME < /etc/default/grub > /tmp/clean_grub mv /tmp/clean_grub /etc/default/grub echo "GRUB_THEME=/boot/${GRUB_NAME}/themes/Atomic/theme.txt" >> /etc/default/grub }

function copy_atomic_files() { echo -e "\e[1m\e[32m==> \e[97m正在下载文件...\e[0m" git clonehttps://github.com/lfelipe1501/Atomic-GRUB2-Theme/tmp/Atomic-GRUB2-Theme echo -e "\e[1m\e[32m==> \e[97m正在复制文件...\e[0m" cp -rf /tmp/Atomic-GRUB2-Theme/Atomic /boot/${GRUB_NAME}/themes/ }

函数main(){

# 检查用户是否为 root if [ $UID == 0 ]; then echo "是的,您是 root!" else echo "不,您必须是 root!" exit 1 fi

# 检查哪个 grub if [ -d "/boot/grub" ]; then GRUB_NAME="grub" else GRUB_NAME="grub2" fi copy_atomic_files

echo -e "\e[1m\e[97m 您必须在 GRUB 配置文件中设置主题," while : ;do if [ "$answer" = "g" ];then echo -e "\e[1m\e[97m 您没有提供有效选项,请重试。" else read -p " 您想现在执行吗?[y/n] " -t 10 answer echo -e "\e[0m" if [ "$answer" = "y" ];then # 备份旧的 grub 文件 cp /etc/default/grub /tmp/grub$(date '+%m-%d-%y_%H:%M:%S') update_grub_file compile_grub break elif [ "$answer" = "n" ];then break fi let answer=g fi done

}

主“$@”退出0

答案1

GRUB 有许多组件。部分位于笔记本电脑固件启动引导过程的位置,并指向其余部分。您安装的每个 Linux 发行版都有自己的 GRUB 副本,其设置与您编辑的设置类似。在安装时,发行版会用指向其自身设置的自己的段替换启动该过程的部分。

因此,您安装的最后一个发行版才是实际控制一切的发行版。如果您想更改 GRUB 设置,则需要在安装的最后一个发行版中执行此操作,或者grub-install在之前安装的发行版中运行以使其成为启动的发行版。这篇文章中的讨论可能会有所帮助:update-grub 与 grub-install 有什么区别?

相关内容