![GRUB:向另一个分区中的 GRUB 发送命令](https://linux22.com/image/58694/GRUB%EF%BC%9A%E5%90%91%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%88%86%E5%8C%BA%E4%B8%AD%E7%9A%84%20GRUB%20%E5%8F%91%E9%80%81%E5%91%BD%E4%BB%A4.png)
假设我有一个远程管理电脑有这个分区结构:
/dev/sda1 LinuxA --> GRUB installed on /dev/sda
/dev/sda2 LinuxB
/dev/sda3 Windows
LinuxA 上安装的 GRUBGRUB 菜单上有所有三个操作系统。
如果我启动到 LinuxA 并且我这样做:
# grub-reboot 1
# reboot
然后我的计算机按照预期启动到 LinuxB。
现在,我想启动进入 Windows。
只要远程管理电脑,我知道的最好的办法是:
# reboot
然后我再次启动到 LinuxA,并且:
# grub-reboot 2
# reboot
所以我最终会启动进入Windows。
我认为,在 Windows 中,我没有机会改变这一点,但至少当我运行 LinuxB 时,有没有办法直接命令启动进入 GRUB 的第三个选项(Windows)?
我知道我可以从 LinuxB 安装 GRUB,但这样做似乎有点尴尬。
答案1
我还没有测试过,但它可能有效。
目前,您有两个 Linux 安装在两个不同的分区中,每个分区都有自己的/boot
分区。如果两个 Linux 具有相同的风格或grub
版本相同,下面的设置可能会起作用。
创建一个单独的分区,供
/boot
两个 Linux 使用,即/boot
两者共用。要使
/boot
两个 Linux 通用,首先安装 Windows,然后安装 Linux-A,然后安装 Linux-B。安装 Linux-B 时,不允许操作系统安装程序格式化分区,以便 Linux-A 的内核映像和 initramfs 完好无损。安装 Windows、Linux-A 和 Linux-B 后,该
/boot
分区将包含所有三个操作系统的 grub 配置以及 Linux-A 和 Linux-B 的 initramfs 和内核映像。现在,由于该
/boot
分区对于 Linux-A 和 Linux-B 都是通用的,因此您可以grub-reboot
从这两个操作系统运行,以便在重新引导时更改临时引导顺序。
您可能首先需要在不同的设置中对此进行测试,然后继续使用您的实际系统。
由于机器是远程管理的,您还可以尝试使用/设置控制台服务器为了这。