![GRUB 未检测到 Windows](https://linux22.com/image/1078577/GRUB%20%E6%9C%AA%E6%A3%80%E6%B5%8B%E5%88%B0%20Windows.png)
我终于在我的第二个驱动器上安装了 Ubuntu。当我启动计算机时,GRUB 仅提供启动 Ubuntu 的功能,而不是 Windows 7。我需要做什么才能在 GRUB 中选择 Ubuntu 和 Windows?
当我在启动时按 F12 打开启动菜单并选择Windows Boot Manager
它启动到 Windows 7 时。
我运行了命令sudo fdisk -l
,这里是日志(http://pastebin.com/Cgv1igHc):
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 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
Disk identifier: 0xc3ffc3ff
Device Boot Start End Blocks Id System
/dev/sda1 1 1953525167 976762583+ ee GPT
Partition 1 does not start on physical sector boundary.
答案1
启动 Ubuntu 并挂载 Windows 分区(只需在 Nautilus 上打开磁盘)
在命令行上运行以下命令(++ Ctrl):Altt
sudo os-prober
如果找到了你的 Windows 安装,你可以运行:
sudo update-grub
请注意,步骤 2 只是为了方便您。您只需挂载 Windows 7 分区,然后运行 即可update-grub
。
相关问题
答案2
如果os-prober
上述方法不起作用,请尝试添加自定义 grub 菜单项。记录这里。
前两个步骤用于查找您的<UUID>
。
- 运行
lsblk
并查找行的名称/boot/efi
示例输出(此处答案是 sda2):
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 477G 0 disk
├─sda1 8:1 0 450M 0 part
├─sda2 8:2 0 100M 0 part /boot/efi
├─sda3 8:3 0 16M 0 part
├─sda4 8:4 0 47G 0 part /windows
├─sda5 8:5 0 425,6G 0 part /
└─sda6 8:6 0 3,7G 0 part [SWAP]
mmcblk0 179:0 0 14,9G 0 disk
└─mmcblk0p1 179:1 0 14,9G 0 part
- 运行上一步的
sudo blkid /dev/sdaX
答案sdaX
(sda2
就我而言)。
示例输出(此处答案为 58E4-427D):
/dev/sda2: UUID="58E4-427D" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b81727be-ba90-5f8c-ab98-d3ec67778b7d"
- 在文件末尾添加以下内容
/etc/grub.d/40_custom
:
menuentry "Windows 7" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set <UUID>
chainloader +1
}
- 运行
sudo update-grub
并重新启动。
答案3
我运行了 Windows 10,然后尝试了双启动。安装 Ubuntu 后,我的 GRUB 加载程序中没有显示 Win 10。我尝试了以下操作——
首先,我在 Win10 中禁用了安全启动。然后在 Ubuntu 中运行以下命令:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
效果很好。之后能够在 GRUB 中找到 Windows 和 Ubuntu。
答案4
方法略有不同,因为我是从另一台计算机上的工作示例中复制而来,以供我自己记录。
将以下内容附加到/etc/grub.d/40_custom
:
menuentry "Windows 10" {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set <boot_efi_uuid>
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
<boot_efi_uuid>
您的分区的 UUID 在哪里/boot/efi
。要找到它:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
└─md126 9:126 0 357.7G 0 raid0
├─md126p1 259:0 0 499M 0 md
├─md126p2 259:1 0 100M 0 md /boot/efi
$ sudo blkid | grep md126p2 # Replace with your device
/dev/md126p2: UUID=<boot_efi_uuid>
当然,一旦保存了文件,请运行:
sudo update-grub
重新启动,您现在应该能够成功启动 Windows。