我刚买了一台带有两个硬盘的新电脑,它预装了 Windows 10。我决定在第二块硬盘上安装 Kubuntu。一开始让我感到奇怪的是,Windows 似乎安装在 /dev/sdb 上,而不是像往常一样安装在 /dev/sda 上。以下是lsblk -o +FSTYPE -o +LABEL -o +PARTLABEL
安装后的输出。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT PARTLABEL
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 29.8G 0 part [SWAP]
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 901.7G 0 part /
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 260M 0 part EFI system partition
├─sdb2 8:18 0 128M 0 part Microsoft reserved partition
├─sdb3 8:19 0 930.7G 0 part Basic data partition
└─sdb4 8:20 0 500M 0 part Basic data partition
问题是 grub 似乎无法识别 Windows 或 EFI 分区。sudo update-grub
给了我以下内容:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.2.0-16-generic
Found initrd image: /boot/initrd.img-4.2.0-16-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
我已尝试按照说明操作这里安装 grub-efi 但现在运行时出现以下消息grub-install /dev/sdb
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: error: embedding is not possible, but this is required for cross-disk install.
我整个下午都在研究这个问题,现在我不知所措。是否有必要创建一个小的启动分区sdb
,这能解决问题吗?还是我遗漏了其他什么?
在此先感谢您的帮助。
答案1
看来您的 Windows 安装处于 EFI 模式,而您的 Ubuntu 安装(可能)处于 BIOS 模式。这很让人头疼。有许多可能的解决方案。最简单的两个可能是:
- 禁用兼容性支持模块 (CSM)在固件中,启动 Ubuntu 紧急磁盘,然后运行引导修复在计算机上。这将安装 EFI 版本的 GRUB 2,其运行效果应该比您现在的版本更好。
- 如果尚未禁用,请在固件中禁用安全启动。然后下载我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器,从中准备一个介质,然后启动它。这应该可以让你启动 Windows 或 Ubuntu。测试两者,如果两者都有效,请从 Ubuntu 安装 rEFInd PPA 或 Debian 包。
附带说明一下,磁盘标识(/dev/sda
与/dev/sdb
)有点随意,因此不要过分解读 Windows 所处的 Linux 标识为 的事实/dev/sdb
。此类映射甚至可能因每次启动而不同,尽管这种程度的随意性并不常见。