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.

Будь-ласка, вкажіть свою завантажувальну інформацію . Це дасть відповідну інформацію, яка допоможе вам.
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. Дуже важливий, інакше Windows не працюватиме.
Еліптичний вигляд

mount -t ntfs-3g -o ro /dev/sda4 /media/windowsдля монтажу перегородки Windows
Yuvaraj Loganathan

ідеально!
Виконання

працювали! спасибі!
DigaoParceiro

10

Якщо os-proberметод, описаний вище, не працює, спробуйте додати користувальницьку грубну меню. Задокументовано тут .

Перші два кроки - це пошук вашого <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 за всі деталі в іншій відповіді. До цього додали їх (навіть якщо специфіка користувацького запису відрізняється.
Carolus

9

У мене працювала 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.


Чи існує цей ППА? Я не зміг додати його, і він стверджував, що його не існує на завантажувальному диску Ubuntu 18.04
Jocull

Щойно отримав 404 Not Foundпомилку на Debian
winklerrr

5

Подібну проблему я вирішив, виконавши кроки завантаження системи

Встановіть ремонт завантаження

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назад.
realhu

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 Boot Manager> DISK1> DISK2> DISK3. Insted DISK1> ubuntu> Диспетчер завантаження Windows> DISK3.

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

Я не сподівався, що порядок завантаження може вплинути на невдачу у виявленні систем. Тож варто це переглянути.


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 /.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.