GRUB 未检测到 Windows

Hyp*_*erX 87 grub2 dual-boot windows-7 os-prober

我终于在我的第二个驱动器上安装了 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.
Run Code Online (Sandbox Code Playgroud)

小智 115

  1. 启动 Ubuntu 并挂载您的 Windows 分区(只需在 Nautilus 上打开磁盘)

  2. 运行命令行(在下文Ctrl+ Alt+ t):

    sudo os-prober
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果找到您的 Windows 安装,您可以运行:

    sudo update-grub
    
    Run Code Online (Sandbox Code Playgroud)

请注意,第 2 步只是为了您的方便。您可以只挂载 Windows 7 分区,然后运行update-grub.

相关问题

  • 我有 2 个分区,安装了 2 个 Windows,它只检测到我在另一个分区上的安装,但不检测到新安装的 Windows(在 SSD 上)!甚至安装...一个想法? (2认同)

Phi*_*oud 18

如果上述os-prober方法不起作用,请尝试添加自定义 grub 菜单项。记录在这里

前两个步骤用于查找您的<UUID>.

  1. 运行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
Run Code Online (Sandbox Code Playgroud)
  1. Run sudo blkid /dev/sdaXwhere sdaXis the answer from上一步sda2在我的情况下)

示例输出(这里的答案是 58E4-427D)

/dev/sda2: UUID="58E4-427D" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b81727be-ba90-5f8c-ab98-d3ec67778b7d"
Run Code Online (Sandbox Code Playgroud)
  1. 在文件末尾添加以下内容/etc/grub.d/40_custom
menuentry "Windows 7" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set <UUID>
     chainloader +1  
}
Run Code Online (Sandbox Code Playgroud)
  1. 运行sudo update-grub并重新启动。


小智 13

我运行了 Windows 10,然后尝试了双启动。安装 Ubuntu 后,Win 10 没有出现在我的 GRUB 加载程序中。我尝试了以下-

首先,我在Win10中禁用了安全启动。然后在 Ubuntu 中运行以下命令:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Run Code Online (Sandbox Code Playgroud)

效果很好。之后能够在 GRUB 中找到 Windows 和 Ubuntu。


Rut*_*rus 9

我按照引导修复的步骤解决了类似的问题

安装引导修复

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Run Code Online (Sandbox Code Playgroud)

按“推荐修复”并按照建议在终端中输入一些命令。

我认为我的 Grub 由于关机错误而无法识别 Windows,它解决了问题。


Chr*_*eta 6

方法略有不同,因为我从另一台计算机上复制了工作示例,张贴作为我自己的记录。

\n\n

将以下内容附加到/etc/grub.d/40_custom

\n\n
menuentry "Windows 10" {\n        insmod part_gpt\n        insmod fat\n        search --no-floppy --fs-uuid --set <boot_efi_uuid>\n        chainloader /EFI/Microsoft/Boot/bootmgfw.efi\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中<boot_efi_uuid>是分区的 UUID /boot/efi。要找到这个:

\n\n
$ lsblk\nNAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT                                                  \nsda                 8:0    0 119.2G  0 disk\n\xe2\x94\x94\xe2\x94\x80md126             9:126  0 357.7G  0 raid0\n  \xe2\x94\x9c\xe2\x94\x80md126p1       259:0    0   499M  0 md\n  \xe2\x94\x9c\xe2\x94\x80md126p2       259:1    0   100M  0 md    /boot/efi                                                   \n
Run Code Online (Sandbox Code Playgroud)\n\n
$ sudo blkid | grep md126p2 # Replace with your device\n/dev/md126p2: UUID=<boot_efi_uuid>\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,保存文件后,运行:

\n\n
sudo update-grub\n
Run Code Online (Sandbox Code Playgroud)\n\n

重新启动,您现在应该能够成功启动 Windows。

\n