AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 834205
Accepted
David
David
Asked: 2016-10-08 04:40:45 +0800 CST2016-10-08 04:40:45 +0800 CST 2016-10-08 04:40:45 +0800 CST

从 Windows 编辑 grub?

  • 772

现在我不确定这是否是主题,但如果不是,我不知道在哪里发布它,超级用户似乎不合适,因为这与 grub 有关,但我退步了。

当我重新启动 Windows 时,它会启动到 grub,然后默认的 grub 选项是 Ubuntu,这会导致一些非常烦人的尝试安装更新的时间,所以我想要做的是能够临时编辑 grub 启动配置以将 Windows 置于顶部重新启动后,但在 Windows 启动后,它会回到 Ubuntu。

我该怎么做?

dual-boot
  • 4 4 个回答
  • 30129 Views

4 个回答

  • Voted
  1. Best Answer
    WinEunuuchs2Unix
    2016-10-08T15:32:48+08:002016-10-08T15:32:48+08:00

    问题的标题是OP提出的问题解决方案是什么。标题可以更改为“如何让 Grub 自动引导到上次使用的操作系统选项?” .

    这可以说是默认的 grub 行为。例如,我可能在 Windows 上玩了一周的质量效应 IV,但从未进入 Ubuntu。或者我可能正在使用特定内核在 Ubuntu 14.04 中测试某些东西,我不喜欢每次超过 50 次重新启动时都必须选择它。

    上面的各种评论中有一个链接,指向作为重复问题提出的 Stack Exchange 答案。我们也可以参考一个 AskUbuntu 问答:如何让 grub2 记住最后一个选择?

    在摘要编辑/etc/default/grub中,注释掉一行并在其下方插入两行:

    #GRUB_DEFAULT=0 # Rather than first menu option, we'll default to last  OS.
    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    

    然后保存更改并运行sudo update-grub。

    瞧!虽然在 Windows 中工作并且自动更新发生在凌晨 3 点,但系统会重新启动到 Windows 并应用Stage 3 of 3。

    OP 提议“从 Windows 编辑 Grub?” 在标题中作为问题的解决方案。但是,在说明原因之后,很明显应该将标题更改为:“如何确保 Windows 自动更新重新启动到 Windows 而不是 Ubuntu?” .

    如果问题是“如何重新启动到最后一个操作系统选择?” 这是链接的明显重复。提议的新标题(或更短的标题)有其优点,因为其他人可能会搜索相同的问题。我知道我之前遇到过 Windows 更新-重启-更新问题,并且从未想过要在此处搜索链接。

    PS 您可以从 Windows 编辑 Grub,但是,您为什么要这样做?

    • 9
  2. Jon T
    2019-01-11T07:19:31+08:002019-01-11T07:19:31+08:00

    更新:已解决(大部分) - 之所以如此棘手,是因为 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。

    1. ESP(EFI 系统分区)格式为 FAT32 - 非常适合跨平台!

    2. 在 Linux 上,mkdir /boot/efi然后在上面挂载 ESP;

      grub-install --boot-directory=boot/efi/EFI/grub /dev/nvme0n1
      

      等等。(希望我没有过度简化。)

    3. 重申其他人在此针对主要问题提出的解决方案

      GRUB_DEFAULT=saved
      GRUB_SAVEDEFAULT=true
      
    4. 主显示 - #Grub 环境块 -grub/grubenv位于 FAT32 分区上,在 Linux 中修改起来很简单:

      grub-editenv /boot/efi/EFI/grub/grubenv set next_entry=X
      

      哪里X是menuentry从 0 开始的编号。

    5. 好的,命令是:

      mountvol b: /S
      wsl sudo mount -t drvfs b: /mnt/b
      wsl sudo grub-editenv /mnt/b/EFI/grub/grubenv set next_entry=0
      wsl sudo umount /mnt/b
      mountvol b: /D
      

    请参阅底部的 SU 链接:脚本

    最后一个问题是我现在太累了,无法编写脚本来执行此操作,wsl 命令不能单独工作,状态不能跨越。我不是程序员,我只是需要一些时间来弄清楚如何将这三个 Linux 命令串在一起。这足以满足目前“此答案是否有效”的要求。我会尽快更新最终版本。例如。目前,您必须启动 WSL 终端才能使用此解决方案。

    我将更新此问题以寻求帮助编写批处理脚本 -如何在 Windows Subsystem for Linux (WSL) 中编写脚本并从批处理文件中调用它?

    • 3
  3. L. D. James
    2016-10-08T05:37:20+08:002016-10-08T05:37:20+08:00

    我不知道如何在 Windows 上执行此操作,但您可以在 Ubuntu 中使用 GUI 完成您所描述的大部分内容。

    这就是您可以避免重新启动 Windows 始终启动到 Ubuntu 的方法

    执行以下步骤。在这些步骤之后,重新启动 Windows 将始终自动启动到 Windows。重新启动 Ubuntu 将始终自动重新启动到 ubuntu。您不必每次都进行编辑。只需配置 Grub 以记住最后的选择。最后的选择将始终是自动默认值,每次都不会进行进一步的手动更改。

    安装 GUI Grub 定制器。

    $ sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    $ sudo apt-get 更新
    $ sudo apt-get install grub-customizer
    

    在 GUI 中,您可以通过选择哪个 Boot 来选择它,然后单击向上/向下箭头以定位它的列出方式。

    在常规选项卡下,您可以进一步自定义 Grub 的行为。您还可以单击Advance更改启用、禁用、添加、删除或更改 grub 文件的行。

    临时启动到 Windows 部分可以通过以下方式实现:

    1) 选择 GRUB_DEFAULT 条目 -> 单击值列。替换“0”
       与“保存”
    2)添加一个名为“GRUB_SAVEDDEFAULT”的条目->将值设置为“true”
    3) 现在点击关闭 -> 保存(当您点击保存时,Grub 将更新为您的新
       配置)
    

    现在重新启动 Windows 后,它不会回到 Ubuntu

    现在,当您执行 Windows 更新和其他维护时,系统将始终启动到 Windows(一旦您启动了 Windows),直到您选择 Ubuntu 重新进入。

    • 2
  4. EnzoR
    2016-10-08T05:42:14+08:002016-10-08T05:42:14+08:00

    虽然从 Linux 编辑 Windows 分区内容是可行的,但反之则不行。

    Windows 本身并不支持 Linux FS。不过,有一些工具可以让你做到这一点。但这些都无济于事。

    我自己没有测试过,但最近似乎有人在 BIOS 和 EFI 模式下将 GRUB2 移植到了 Windows 10、8、7、Vista 和 XP。

    我怀疑,即使一切都按预期进行,也不会像喝一杯水那么容易。

    • 0

相关问题

  • 如何在 ubuntu 中挂载加密的 windows 分区?[关闭]

  • 如何使用 Debian 进行双引导?

  • 如何使用 Ubuntu 和 Windows XP 安装双启动配置?[关闭]

  • 如何让双启动 USB 驱动器在 Vista 中工作 [关闭]

  • 如何从双启动计算机访问加密的主文件夹?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve