我在硬盘上安装了三个不同的系统:Windows Server 2012 R2、Ubuntu Client 16.04 和 Ubuntu Server 16.04。当我安装完 Ubuntu Server 后,我无法通过新的 GRUB 访问 Windows Server,只能访问 Ubuntu 系统。这是为什么?这是我所做的事情的日志:
- 格式化 250GB HDD(格式化为 NTFS?)
- 为Windows Server创建150GB分区
- 在该分区上安装了 Windows Server
- 测试了Windows Server,运行良好
- 安装了 Ubuntu 客户端,工作正常,我可以在 GRUB 中选择 Windows 和 Linux
- 安装了Ubuntu Server,安装过程中安装了新的GRUB
- Windows 不显示在 GRUB 中,仅显示 Linux 客户端和 Linux 服务器
- 插入Windows安装驱动器,进入修复模式,输入
bootrec /fixmbr
- Windows 启动,但没有 GRUB
- 进入 Ubuntu Server 安装程序,高级选项并输入
rescue/enable=true
- Windows 不显示在 GRUB 中,仅显示 Linux 客户端和 Linux 服务器。
如何让所有系统都出现呢?所有分区都很好。我想我在 sda1 上有 windows,在(sda3?)上有 ubuntu 客户端,在 sda5 上有交换空间,在 sda4 上有服务器。
答案1
Grub 菜单不是动态的,它们是在update-grub
操作系统内部运行某些内容时创建的。
当从多个操作系统进行管理时,Grub 无法正常工作。这不是问题的原因,但对解决问题没有帮助。因此,您需要从 Ubuntu 服务器或“Ubuntu 客户端”(Ubuntu 桌面?)中删除 Grub。由于 Ubuntu Server 似乎没有为你检测到 Windows,所以我会保留 Ubuntu Desktop 的 grub 并销毁 Ubuntu Server 的 grub。
启动进入 Ubuntu 桌面(客户)。并通过在命令行上运行以下命令来确保 Ubuntu 桌面的 grub 已正确安装:
sudo grub-install
sudo update-grub
这应该会让您回到检测所有操作系统的系统,因为您说它在您第一次安装时检测到了 Windows。
要清理,你应该启动进入 Ubuntu 服务器并删除所有 grub 软件包,让 Ubuntu Desktop 管理您的启动。您可以使用 或 列出已安装的 grub 软件包,dpkg --list | grep grub
并使用 删除它们sudo apt-get autoremove <packages>
。或者你可以运行这个:
sudo apt-get autoremove $(dpkg --list | awk '/grub/ {print $2}')