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


66

Я наконец установил 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.

Пожалуйста, укажите ваш Boot-Info URL . Это предоставит соответствующую информацию, чтобы помочь вам.
LovinBuntu

Ответы:


100
  1. Загрузите Ubuntu и смонтируйте раздел Windows (просто откройте диск на Nautilus)

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

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

    sudo update-grub
    

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

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


У меня есть 2 раздела с установкой 2 окон, он только определяет мою установку на другом разделе, но не новые установленные окна (на SSD)! даже смонтированный ... идея?
Филипп Гачу

Благодарю. Интересно, что os-prober, похоже, нужен шаг 1. Очень важно, иначе окна не будут работать.
эллиптический вид

mount -t ntfs-3g -o ro /dev/sda4 /media/windowsсмонтировать раздел Windows
Юварадж Логанатан

идеальный! Выполнение обеих команд сделало свое дело
Арье Бейтц

работал! благодарю вас!
DigaoParceiro

10

Если 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
  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и перезагрузите компьютер.

Спасибо @Christopher Markieta за все подробности в другом ответе. Также добавили их к этому (хотя специфика пользовательской записи иная.
Кэрол

9

У меня была запущена Windows 10, а затем попробовал двойную загрузку. После установки Ubuntu Win 10 не появлялась в моем загрузчике GRUB. Я попробовал следующее -

Прежде всего я отключил Secure Boot в 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.


Этот PPA все еще существует? Я не смог добавить его, и он утверждал, что его не существует с загрузочного диска Ubuntu 18.04
jocull

Только что получил 404 Not Foundошибку на Debian
winklerrr

5

Я решил похожую проблему, выполнив шаги Boot-Repair

Установить boot-repair

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

Нажмите «Рекомендуемый ремонт» и вставьте в терминал несколько команд, как это было предложено.

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


3

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

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

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

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


Я думаю, что мой также вызван рейдом. Но sudo dmraid -rEу меня не работает. Я, наконец, сделал это, переключившись на AHCIвременный BIOS, затем загрузившись в Ubuntu и выполнив sudo update-grub, затем переключился RAID ONобратно.
Реалху

1
ВНИМАНИЕ : это разрушит ваш RAID-массив, если вы все еще используете его.
Кристофер Маркиета

3

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

Добавьте следующее к /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.


2

У меня была такая же проблема с 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

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

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


Я считаю, что этот ответ, хотя и правильный, в значительной степени является копией ответа, представленного 29 мая 2015 г.
Чарльз Грин

1

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

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

У меня было 2 установки Ubuntu, одна на HDD и одна на SSD. Судя по всему, установка ssd не была показана как UEFI для какой-то причины, но сначала я хотел быстрее загрузить диск.

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


1

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

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 ...) был взят с загрузочного диска Windows через blkid /dev/sdb1.

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

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

относится к тому, sdaчто видно под Ubuntu, так как /dev/sdbдаже фактически это первый диск в шине sata, хотя /dev/sdaфактически второй диск монтируется как root /.

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


0

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

sudo apt-get install os-prober

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

sudo grub-mkconfig -o /boot/grub/grub.cfg
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.