现在我不确定这是否是主题,但如果不是,我不知道在哪里发布它,超级用户似乎不合适,因为这与 grub 有关,但我退步了。
当我重新启动 Windows 时,它会启动到 grub,然后默认的 grub 选项是 Ubuntu,这会导致一些非常烦人的尝试安装更新的时间,所以我想要做的是能够临时编辑 grub 启动配置以将 Windows 置于顶部重新启动后,但在 Windows 启动后,它会回到 Ubuntu。
我该怎么做?
现在我不确定这是否是主题,但如果不是,我不知道在哪里发布它,超级用户似乎不合适,因为这与 grub 有关,但我退步了。
当我重新启动 Windows 时,它会启动到 grub,然后默认的 grub 选项是 Ubuntu,这会导致一些非常烦人的尝试安装更新的时间,所以我想要做的是能够临时编辑 grub 启动配置以将 Windows 置于顶部重新启动后,但在 Windows 启动后,它会回到 Ubuntu。
我该怎么做?
问题的标题是OP提出的问题解决方案是什么。标题可以更改为“如何让 Grub 自动引导到上次使用的操作系统选项?” .
这可以说是默认的 grub 行为。例如,我可能在 Windows 上玩了一周的质量效应 IV,但从未进入 Ubuntu。或者我可能正在使用特定内核在 Ubuntu 14.04 中测试某些东西,我不喜欢每次超过 50 次重新启动时都必须选择它。
上面的各种评论中有一个链接,指向作为重复问题提出的 Stack Exchange 答案。我们也可以参考一个 AskUbuntu 问答:如何让 grub2 记住最后一个选择?
在摘要编辑
/etc/default/grub
中,注释掉一行并在其下方插入两行:然后保存更改并运行
sudo update-grub
。瞧!虽然在 Windows 中工作并且自动更新发生在凌晨 3 点,但系统会重新启动到 Windows 并应用
Stage 3 of 3
。OP 提议“从 Windows 编辑 Grub?” 在标题中作为问题的解决方案。但是,在说明原因之后,很明显应该将标题更改为:“如何确保 Windows 自动更新重新启动到 Windows 而不是 Ubuntu?” .
如果问题是“如何重新启动到最后一个操作系统选择?” 这是链接的明显重复。提议的新标题(或更短的标题)有其优点,因为其他人可能会搜索相同的问题。我知道我之前遇到过 Windows 更新-重启-更新问题,并且从未想过要在此处搜索链接。
PS 您可以从 Windows 编辑 Grub,但是,您为什么要这样做?
更新:已解决(大部分) - 之所以如此棘手,是因为 Windows 已将 ESP 标记为隐藏,因此 WSL 出现访问被拒绝错误。我相信由于 MBR2GPT 转换。改变这不是直截了当的,如果有人好奇,如果你找不到自己的解决方案,我会解释。
我在下面添加了实现此设置的 windows 一半的最后步骤,我将省略运行 WSL 的过程,这很容易(提示:在 windows 商店中搜索 Linux)。
我提出的答案需要 UEFI 和 GPT 引导,这些天更常见。我避免 Windows 不知道 Linux 分区问题的方式受到 Windows 处理引导的方式的启发。
在 MBR 中启动的传统方式是切换到
/boot/grub
(第 2 阶段)并使用额外的空间来做 MBR 不能做的事情。EFI 分区本质上是一个巨大的 MBR,位于您想放置的任何磁盘上。尤里卡时刻是当我注意到 Windows 基本上将 Windows 启动管理器的第 2 阶段放在 EFI 分区上,bootmgr.efi
与bootmgfw.efi
. 那么为什么不把 Grub 阶段 2 也放在那里呢?TL;博士
逐步解释这如何回答 OP。
ESP(EFI 系统分区)格式为 FAT32 - 非常适合跨平台!
在 Linux 上,
mkdir /boot/efi
然后在上面挂载 ESP;等等。(希望我没有过度简化。)
重申其他人在此针对主要问题提出的解决方案
主显示 - #Grub 环境块 -
grub/grubenv
位于 FAT32 分区上,在 Linux 中修改起来很简单:哪里
X
是menuentry
从 0 开始的编号。好的,命令是:
请参阅底部的 SU 链接:脚本
最后一个问题是我现在太累了,无法编写脚本来执行此操作,wsl 命令不能单独工作,状态不能跨越。我不是程序员,我只是需要一些时间来弄清楚如何将这三个 Linux 命令串在一起。这足以满足目前“此答案是否有效”的要求。我会尽快更新最终版本。例如。目前,您必须启动 WSL 终端才能使用此解决方案。
我将更新此问题以寻求帮助编写批处理脚本 -如何在 Windows Subsystem for Linux (WSL) 中编写脚本并从批处理文件中调用它?
我不知道如何在 Windows 上执行此操作,但您可以在 Ubuntu 中使用 GUI 完成您所描述的大部分内容。
这就是您可以避免重新启动 Windows 始终启动到 Ubuntu 的方法
执行以下步骤。在这些步骤之后,重新启动 Windows 将始终自动启动到 Windows。重新启动 Ubuntu 将始终自动重新启动到 ubuntu。您不必每次都进行编辑。只需配置 Grub 以记住最后的选择。最后的选择将始终是自动默认值,每次都不会进行进一步的手动更改。
安装 GUI Grub 定制器。
在 GUI 中,您可以通过选择哪个 Boot 来选择它,然后单击向上/向下箭头以定位它的列出方式。
在常规选项卡下,您可以进一步自定义 Grub 的行为。您还可以单击
Advance
更改启用、禁用、添加、删除或更改 grub 文件的行。临时启动到 Windows 部分可以通过以下方式实现:
现在重新启动 Windows 后,它不会回到 Ubuntu
现在,当您执行 Windows 更新和其他维护时,系统将始终启动到 Windows(一旦您启动了 Windows),直到您选择 Ubuntu 重新进入。
虽然从 Linux 编辑 Windows 分区内容是可行的,但反之则不行。
Windows 本身并不支持 Linux FS。不过,有一些工具可以让你做到这一点。但这些都无济于事。
我自己没有测试过,但最近似乎有人在 BIOS 和 EFI 模式下将 GRUB2 移植到了 Windows 10、8、7、Vista 和 XP。
我怀疑,即使一切都按预期进行,也不会像喝一杯水那么容易。