GRUB не обнаруживает Windows

Я наконец-то установил Ubuntu на свой второй диск. Когда я запускаю свой компьютер, GRUB предлагает мне загружать только Ubuntu, а не Windows 7. Что нужно сделать, чтобы я мог выбирать между Ubuntu и Windows в GRUB?

Когда я нажимаю 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.
87
задан 13 November 2016 в 20:33

11 ответов

Если у вас ранее был установлен RAID, который может вызывать проблемы. В моем случае я собрал свой рабочий стол в 2010 году и установил два 1.5 ТБ с полосатым RAID. User gracemercy54 упоминает здесь, что это осталось после метаданных прежней конфигурации RAID.

Когда я изначально пытался выполнить шаги Гермеса, я получил ошибку, указав "неправильное количество устройств в наборе RAID". Итак, если это случится, откройте терминал и запустите:

   sudo dmraid -rE
   sudo os-prober
   sudo update-grub

Что исправило это для меня.

3
ответ дан 13 November 2016 в 20:33

У меня была такая же проблема с Windows 10. Я установил 64-разрядную версию Linux Mint 18.1 Cinnamon на свой ноутбук для двойной загрузки с WIN10. После установки GRUB предлагал только загрузку Linux, но не Windows.

Я обнаружил, что видео решение для Windows 10 отсутствует в меню grub и ветка форума Grub не распознает Win10 после обновления / восстановления , но, к сожалению, у меня ничего не вышло, поэтому я использовал комбинацию этих двух для решения моей проблемы.

Откройте свой терминал, следуйте этим командам и откройте файл с именем 40_custom:

sudo gedit /etc/grub.d/40_custom

Добавьте эти строки в конец файл, а затем сохраните его и выйдите:

menuentry "Windows 10" {
   set root='{hd0,1}'
   chainloader + 1
}

После сохранения файла обновите GRUB с помощью этой команды:

sudo update-grub

Затем перезагрузите компьютер, чтобы проверить, работает ли он.

Надеюсь, это сработает и для других!

2
ответ дан 13 November 2016 в 20:33

У меня была запущена 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

Работают довольно хорошо. После этого смог найти и Windows, и Ubuntu в GRUB.

12
ответ дан 13 November 2016 в 20:33

Если вышеприведенный метод os-prober не работает, попробуйте добавить пользовательский пункт в меню grub. Документировано здесь.

Первые два шага - это поиск вашего .

  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
  1. Запустите 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"
  1. Добавьте в конец файла /etc/grub.d/40_custom:
menuentry "Windows 7" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set <UUID>
     chainloader +1  
}
  1. Запустите sudo update-grub и перезагрузитесь.
17
ответ дан 13 November 2016 в 20:33

Я решил аналогичную проблему, выполнив шаги Восстановление загрузки

Установить восстановление загрузки

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Нажмите «Рекомендуемое восстановление» И введите в терминал несколько команд, как он предлагал.

Я думаю, что мой Grub не распознает окна из-за плохого завершения работы, и это решило проблему.

8
ответ дан 13 November 2016 в 20:33
  1. Загрузите Ubuntu и смонтируйте раздел Windows (просто откройте диск в Nautilus)

  2. Выполните следующее в командной строке ( Ctrl + Alt + t ):

     sudo os-prober
     
  3. Если ваша установка Windows была найдена, вы можете запустить:

     sudo update-grub
     

Обратите внимание, что шаг 2 предназначен только для вашего удобства. Вы можете просто смонтировать раздел Windows 7 и затем запустить update-grub .

Связанный вопрос

108
ответ дан 13 November 2016 в 20:33

У меня была такая же проблема, и я потратил 2 дня на ее выяснение. Но сегодня утром у меня возникла эта внезапная идея, и она сработала.

Вам следует проверить настройки BIOS / uefi. В моем случае мне пришлось сначала разрешить загрузку Uefi. В противном случае я не смог бы обнаружить окна из ubuntu. Мне нужно было установить ubuntu> Windows Boot Manager> DISK1> DISK2> DISK3. Установлен DISK1> ubuntu> Windows Boot Manager> DISK3.

У меня было 2 установки ubuntu, одна на hdd и одна на ssd. Очевидно, установка ssd не отображалась как UEFI по какой-то причине, но я хотел сначала загрузить более быстрый диск.

Я не ожидал, что порядок загрузки может повлиять на grub при обнаружении систем. Так что стоит рассмотреть это.

1
ответ дан 13 November 2016 в 20:33

Метод немного отличается от того, что я скопировал из рабочего пример на другом компьютере, отправка для моих собственных записей.

Добавьте следующее в /etc/grub.d/40_custom [117683 0]:

menuentry "Windows 10" {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set <boot_efi_uuid>
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

где - это 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

Reboot, теперь вы сможете успешно запустить Windows.

3
ответ дан 13 November 2016 в 20:33

У меня были проблемы, как и здесь, и решением было добавление ручной записи, как показано ниже:

menuentry "WINDOWS10 (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(/dev/sda,msdos1)'
    search --no-floppy --fs-uuid --set=root 688EB92384B85968
    drivemap -s (hd0) ${root}
    chainloader +1
}

где UUID выше (688E....) был взят с загрузочного диска через blkid /dev/sdb1.

ВНИМАНИЕ: дополнительная строка

set root='(/dev/sda,msdos1)'

относится к sda, что видно под Ubuntu как /dev/sdb даже на самом деле это первый диск в sata bus, в то время как /dev/sda на самом деле второй диск, смонтированный как корневой /.

Может быть поэтому скрипты grub не могли корректно работать. Я не успел изменить физический порядок дисков, но вполне возможно, что это поможет решить проблему.

1
ответ дан 13 November 2016 в 20:33

У меня была такая же проблема после того, как я установил обновления из ubuntu. Следующие команды у меня отлично сработали:

sudo apt-get install os-prober

Сначала установите os-prober для обнаружения окон, а затем обновите grub:

sudo grub-mkconfig -o /boot/grub/grub.cfg
1
ответ дан 22 November 2019 в 23:32

В дополнение к ответу Бартоша Дабровски, который привел меня к решению моей проблемы:

Убедитесь, что если ваш Linux использует загрузку UEFI / GPT, то другая ваша ОС (например, Windows в мой случай) также использует загрузку UEFI / GPT. При переходе от старой установки Win7 к Win10 на жестком диске все еще была старая школа загрузки и MBR. Каким-то образом у os-prober и boot-repair возникли проблемы, чтобы исправить это.

Убедитесь, что в BIOS / Boot order есть ваш жесткий диск с ubuntu (например, uefi: ubuntu) и ваш жесткий диск с Windows Boot Manager (например, uefi: Windows Boot Manager)

Если WBM отсутствует, убедитесь, что загрузочный диск Windows имеет GPT. Вы можете проверить это в Windows, используя Управление дисками (Win + X, затем Управление дисками).

Существует инструмент Windows: mbr2gpt, который может преобразовать ваш MBR в GPT. После этого (и загрузки через UEFI) os-prober и, наконец, update-grub смогли найти мою установку Windows и добавить ее в параметры загрузки grub.

0
ответ дан 5 January 2021 в 23:34

Другие вопросы по тегам:

Похожие вопросы: