我在单独的外部驱动器上安装了 Ubuntu 18.04 和 Windows 10。Ubuntu 安装成功,但我无法再启动 Windows 10,甚至无法使用启动覆盖从 BIOS 启动。文件似乎完好无损,因为我可以安装驱动器并查看文件。它也没有出现在 GRUB 菜单中。
我已经尝试过给出的解决方案GRUB 未检测到 Windows但是 os-prober 找不到我的 Windows 安装。lsblk
显示分区,但没有,/boot/efi
如以下结果所示。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 14,8M 1 loop /snap/gnome-characters/296
loop1 7:1 0 3,7M 1 loop /snap/gnome-system-monitor/100
loop2 7:2 0 65,9M 1 loop /snap/discord/101
loop3 7:3 0 42,8M 1 loop /snap/gtk-common-themes/1313
loop4 7:4 0 181,1M 1 loop /snap/spotify/36
loop5 7:5 0 136,9M 1 loop /snap/code/20
loop6 7:6 0 4M 1 loop /snap/gnome-calculator/406
loop7 7:7 0 1008K 1 loop /snap/gnome-logs/61
loop8 7:8 0 149,9M 1 loop /snap/gnome-3-28-1804/67
loop9 7:9 0 88,5M 1 loop /snap/core/7270
loop10 7:10 0 54,4M 1 loop /snap/core18/1066
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 128M 0 part
└─sda2 8:2 0 931,4G 0 part
sdb 8:16 0 232,9G 0 disk
├─sdb1 8:17 0 450M 0 part
├─sdb2 8:18 0 99M 0 part
├─sdb3 8:19 0 16M 0 part
├─sdb4 8:20 0 231,8G 0 part
└─sdb5 8:21 0 517M 0 part
sdc 8:32 0 931,5G 0 disk
└─sdc1 8:33 0 931,5G 0 part /
为什么我无法启动 Windows 10?
编辑:正如 Paul Benson 所建议的,输出如下grep -i -A10 windows /boot/grub/grub.cfg
:
$ grep -i -A10 windows /boot/grub/grub.cfg
menuentry "Windows 10" {
set root='{hd0,1}'
chainloader + 1
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
和sudo fdisk -l|grep -A4 /dev/sd
:
Partition 1 does not start on physical sector boundary.
Disk /dev/sda: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
--
/dev/sda1 34 262177 262144 128M Microsoft reserved
/dev/sda2 264192 1953523711 1953259520 931,4G Microsoft basic data
Disk /dev/sdb: 232,9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
--
/dev/sdb1 2048 923647 921600 450M Windows recovery environment
/dev/sdb2 923648 1126399 202752 99M EFI System
/dev/sdb3 1126400 1159167 32768 16M Microsoft reserved
/dev/sdb4 1159168 487335654 486176487 231,8G Microsoft basic data
/dev/sdb5 487335936 488394751 1058816 517M Windows recovery environment
Disk /dev/sdc: 931,5 GiB, 1000170586112 bytes, 1953458176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
--
/dev/sdc1 * 2048 1953456127 1953454080 931,5G 83 Linux
Disk /dev/loop8: 149,9 MiB, 157184000 bytes, 307000 sectors
Units: sectors of 1 * 512 = 512 bytes
答案1
首次设置 Windows/Ubuntu 双启动时,一个常见问题是,您发现只能启动一个系统或另一个系统,在本例中是 Ubuntu。造成这种情况的原因可能有很多,但我见过的最常见的原因是使用 2 个磁盘分别安装每个系统,一个磁盘格式化为 DOS,另一个磁盘格式化为 GPT。
如果在 Ubuntu 或 Live Ubuntu 中启动,首先要做的是检查您的分区。运行sudo fdisk -l|grep -A4 /dev/sd
它不仅会显示分区上存储内容的所有详细信息,还会显示磁盘是采用 GPT 还是 DOS 格式(这是磁盘分区排列的旧 MBR 格式)。
在这里我们知道计算机正在以传统 BIOS 模式运行,但对于 Windows 10,我们有磁盘安全数据库格式化为 GPT。这两种状态不兼容。安装在 GPT 磁盘上的 W10 必须在 UEFI 模式下运行,否则将无法识别磁盘。但是这里的 Ubuntu 安装在磁盘上南达科他州是一种 DOS 磁盘格式。就其本身而言,即使在 UEFI BIOS 中运行也不会导致问题。但在双启动的情况下,如果一个磁盘采用 DOS 格式,另一个采用 GPT 格式,通常最终只允许用户启动一个系统。
因此,最好的解决方案是将 Ubuntu DOS 磁盘转换为 GPT,因为它是允许创建 4 个以上主分区的更现代格式(DOS 限制为 4 个)。这意味着需要重新安装 Ubuntu,因为将磁盘转换为 GPT 会清除其上的所有内容。将 Windows 磁盘改回 DOS 格式并在旧版 BIOS 中运行是没有意义的,而且重新安装 W10 也更加复杂,需要更长的时间才能完成。
因此,要做到这一点,请准备好您的 Live Ubuntu USB 驱动器。进入 BIOS 并将其切换到 UEFI(如果在 Legacy BIOS 中)。然后启动您的 USB 并运行 Gparted。如果显示为包含 Ubuntu 安装的磁盘,请选择 sdc。您现在要将 sdc 转换为 GPT 驱动器。单击设备选项卡->创建分区表。选择 GPT。sdc 上的所有内容现在都将被擦除。然后重新安装 Ubuntu,在 sdc 上创建 2 个主 ext4 分区,一个用于 Root,另一个用于 Home,让安装继续,然后重新启动。