Додайте Windows 10 до списку ОС GRUB


27

Нещодавно я отримав комп’ютер зі школи. Він поставлений із встановленим Windows 8.1. Потім я встановив ще одну копію Windows 8.1 (щоб вона використовувала вбудовану ліцензію Windows Pro) та оновив її до Windows 10. Потім я встановив Ubuntu поряд із Windows 8 та 10.

Зауважте, що я створив окремий розділ 255 Мб ext2 для / завантаження.

Тепер, коли я завантажую комп'ютер, я вперше бачу підказку GRUB (я вже відключив підказку grub 'тому що мені це подобається) з параметрами Windows 8 та Ubuntu. Однак варіанту для Windows 10 немає. Якщо я виберу Ubuntu, комп'ютер завантажується в Ubuntu. Однак якщо я вибираю опцію Windows 8, то мене надсилають до завантажувача Windows, де він надає мені можливість завантажувати або Windows 8, або Windows 10. (Однак до цього моменту комп'ютер уже завантажив ядро ​​та все . Мабуть, Microsoft неправильно зрозуміла концепцію завантажувача і вирішила, що це означає "завантажувати практично всю систему, перш ніж показувати завантажувач фактично". Типовий Microsoft.)

Як я можу відключити завантажувач Windows та додати опцію Windows 10 до GRUB? EDIT: Хтось відповів, що сказав мені відключити завантажувач Windows. Однак я досі не знаю, як додати Windows до списку ОС GRUB. Хтось може допомогти у цьому?

EDIT 2: Після видалення Windows 10 із завантажувача Windows за допомогою EasyBCD, здавалося, що після декількох перезавантажень вона буде постійно ховатися, і Windows 10 знову з’явиться. Однак пізніше я видалив Windows 10 зі списку ОС в msconfig, і, здається, залишився видалений.

Однак я ВЖЕ не встиг змусити Windows 10 з’явитися в GRUB. Це як би GRUB просто не виявляє цього.

Також я поставлю це питання, щоб люди його бачили - я спробував використовувати boot-repair, однак це НЕ допомогло жодному.


1
@ daltonfury42 Перестань вірити, якщо ти не слухаєш чи не розумієш, які вимоги ОП! Рекомендуючи інструмент, який в основному вирішує поширені проблеми в типових устарених установках завантаження, для нетипових установок UEFI зі спеціальними вимогами є оманливим і неефективним.
LiveWireBT

2
@LiveWireBT Мені так шкода. Я бачив вашу відповідь. Я видалив свій коментар (і перестав вважати: P). Дякую!
daltonfury42

1
Я думаю, я все-таки просто видалю весь розділ Windows 10 і переміщую його в VM.
Hitechcomputergeek

Чесно кажучи, не впевнений, чому люди все ще підтримують це, оскільки ІМО - це не велике питання. Однак цього року я вирішив це по-іншому - шляхом перетворення з MBR в GPT та UEFI boot. В основному я перетворив схему розділення на GPT, змінив розмір розділу Windows, додав системний розділ EFI і поставив на нього rEFInd, і створив BCD Windows за допомогою диска встановлення Windows. Тепер система завантажується з використанням завантажувача UEFI, що полегшує гру з ОС. Всупереч сказаному в Інтернеті, перетворити інсталяцію Windows з BIOS в UEFI було не надто складно, але і це було не просто.
Hitechcomputergeek

1
Для тих, хто в майбутньому хоче зробити щось подібне і хоче дотримуватися BIOS - я вважаю, що відповідь лежить у BCD Windows. Я вважаю, що установка Windows 10 не має належного завантажувача або BCD або чогось іншого, і насправді не може самостійно завантажуватися. Якщо все зроблено належним чином, у мене є думка, що GRUB повинен почати автоматично знаходити розділ Windows 10.
Hitechcomputergeek

Відповіді:


23

Використання:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

команди в терміналі Ubuntu, ймовірно, це вирішить вашу проблему.

За допомогою цієї команди система автоматично виявить ваші установки Windows та додасть їх до списку GRUB.


2
На жаль, це не спрацювало. Схоже, це не виявляє розділ Windows 10.
Hitechcomputergeek

1
Насправді у мене була така ж проблема з моєю системою (у мене Windows 10 і ubuntu 14.04), і це було вирішено за допомогою цих команд.
Ніл Шах

Яка команда вирішила це, update-grubчи grub-install? А у вас є окремий / завантажувальний розділ? Річ у тому, що у мене є окремий завантажувальний розділ, я думаю, що це насправді sda6.
Hitechcomputergeek

Виконання цих двох команд (очевидно) не вирішило.
Hitechcomputergeek

6
sudo update-grubзробив це.
thameera

18

Іноді ос-пробер помиляється.

Подивіться на UUID розділу Windows 10, наприклад:

sudo blkid /dev/sda2

Потім відредагуйте /etc/grub.d/40_customі в кінці файлу додайте:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

Не забудьте змінити UUID.

І нарешті оновіть свій конфігураційний файл grub:

sudo update-grub

Джерело


1
Варто зазначити, що для Windows 10, як правило, перший розділ НЕ є системою Windows один, (тобто sdb2 правильний, а sdb1 НЕ). Це пов'язано з тим, як Windows 10 зберігається на диску під час встановлення, а система резервує розділ або ремонт системи завжди є першим). Grub часто не в змозі знайти другий розділ, якщо перший на диску вже містить щось завантажувальне. найпростіший спосіб знайти правильний UUID - це знайти найбільший розділ через sudo fdisk -lі зіставити його з результатом blkid.
janmyszkier

8

використовуйте цей додаток EasyBCD для Windows http://neosmart.net/EasyBCD/, завантажте безкоштовну версію та встановіть її.

коли ви відкриєте його, ви побачите запис для Windows 8 та один для Windows 10.

видаліть запис Windows 8, і ви будете готові йти.

Оновіть, виконавши вказані вище кроки, поверніться до Ubuntu,

відкрийте термінал, натиснувши ctrl+ alt+T

потім скопіюйте одну за одною ці команди,

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

і цим ви встановите інструмент під назвою boot-repair.

відкрити ремонт завантаження з тире, і ви отримаєте це вікно

введіть тут опис зображення

виберіть рекомендований ремонт та виконайте кроки.

Зверніть увагу, що вам потрібно підключитися до Інтернету під час використання завантажувального ремонту.


1
@Hitechcomputergeek, якщо вам потрібна додаткова допомога, дайте мені знати, що я завантажусь до Windows і зроблю вам кілька знімків екрана.
RonnieDroid

Це додає Windows 10 до GRUB? (Дозвольте здогадатися: ні) Я хочу мати доступ до всіх трьох ОС від GRUB, і це вирішує лише частину проблеми.
Hitechcomputergeek

Я оновив питання, щоб запитати, як додати Windows 10 до списку ОС GRUB. Я схвалив вашу відповідь, оскільки вона вирішила частину проблеми, але оскільки мені все ж потрібно додати Windows 10 до GRUB, я ще не приймаю відповідь.
Hitechcomputergeek

2
Також я помітив, що ви говорите про відкриття Boot Repair з тире, але лінія sudo apt-get install -y boot-repair && boot-repairвже відкрила б його.
Hitechcomputergeek

1
Ви також можете використовувати цей інструмент у "тестовому режимі ubuntu (режим живого cd)" iso, де ви можете встановити, запустити та використовувати його після підключення до Інтернету чи дружини.
Аламджіт Сінгх

7

Це рішення забезпечує належний запис у меню grub2 та завантажує ланцюжок безпосередньо в Windows 10 без посилання на BIOS. Він походить від https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi, тому я не претендую на кредит. Таке полегшення було знайти робоче рішення

Коротко відредагуйте /etc/grub.d/40_custom та додайте:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Щоб знайти UUID для кореневої лінії --set = (CC66-4B02 у прикладі), ви використовуєте sudo fdisk -l для ідентифікації розділу EFI, а потім sudo blkid / dev / sda1 (або будь-яку іншу), щоб знайти UUID розділу EFI . Зауважте, що це не розділ Windows, а потрібний EFI. Після збереження редагування запустіть sudo update-grub для створення файлу /boot/grub/menu.cfg та перезапустіть для тестування.


Я думаю, команда sudo / dev / sda1 має бути sudo blkid / dev / sda1
makapuf

@makapuf - ви абсолютно праві, дякую. Виправлено.
peterthevicar

Я дотримувався цього підручника, і отримую "Помилка: Розділ не знайдено", коли я намагаюся завантажувати запис. Після монтажу розділу, здається, що "EFI / Microsoft / Boot / bootmgfw.efi" на цьому розділі не існує.
Ксерус

4

Наскільки я зрозумів ваше запитання, у вас є дві різні установки Windows на одному або декількох жорстких дисках, і ви не хочете, щоб завантажувач Windows перешкоджав або керував обома установками Windows. Я пам'ятаю, що в застарілих установках можна було безпосередньо завантажувати ядро ​​Windows з Grub (я можу помилятися тут), але мені не вдалося це зробити в налаштуваннях UEFI. Маючи дві незалежні конфігурації завантажувача Windows, які можна викликати від Grub самостійно, має бути дуже близьким до того, що ви шукаєте.

Він поставлений із встановленим Windows 8.1.

Я припускаю, що це комп'ютер, здатний на UEFI.

  1. Перевірте, чи комп’ютер насправді здатний до UEFI (я видалю свою відповідь, якщо її немає) та ознайомтесь із відмінностями між BIOS та UEFI ( різні режими завантаження , efibootmgr, різні таблиці розділів, системний розділ EFI (ESP), навантажувачі EFI …).
  2. Потім перевірте, чи всі ОС встановлені в режимі UEFI, і перевірте , чи є у вас таблиця розділів GPT. Ви можете використовувати Windows ' dismдля резервного копіювання та відновлення розділів у новому макеті таблиць розділів і використовувати командний рядок з останнього інсталяційного носія Windows для перевстановлення завантажувача, детальніше про це в наступному пункті.
    • Оскільки вам рекомендували спробувати різні інші інструменти, які не вирішують вашу проблему, вам доведеться повернути ці зміни до незайманого стану, інакше це стане все більш заплутаним. Вибач за те. :(
  3. Ви можете використати мою відповідь у розділі Як завантажувати Windows 8 зі застарілого розділу MBR в режимі UEFI через GRUB?
    • Ця відповідь встановлює незалежну конфігурацію завантажувача Windows через bcdbootінше місце, де Grub зателефонує. Для зручності я вибрав кореневий розділ Windows. Це потрібно робити для кожної інсталяції Windows, щоб у кожної інсталяції Windows була своя та завантажилася тільки сама (очистіть окремі завантажувальні меню Windows від інших записів).
    • Пам’ятайте, що вам потрібно створити індивідуальний запис для кожної інсталяції Windows, яку ви хочете завантажувати, /etc/grub.d/40_customта дотримуйтесь інструкцій та пояснень щодо UUID, розділів та таблиць розділів.
    • Можливо, вимкніть кожну напів-розумну функцію, яка виявляє різні ОС, наприклад ОС-prober в Grub ( GRUB_DISABLE_OS_PROBER) або усунення неполадок завантаження в Windows або відновлення завантаження (або очищення вручну після них).

NB: Ваш запит полягав у тому, щоб мати змогу керувати всіма операційними системами з Grub, однак з UEFI традиційний термін "dualboot" стає майже помилковим. UEFI дозволяє співіснувати декілька завантажувачів на ESP, і ви можете вибрати, який з них завантажувати (якщо вони були зареєстровані у вбудованому програмному забезпеченні UEFI і прошивка виробників не виключає специфічних покровительств, як тільки завантаження Windows). Сумно в тому, що лише дуже мало людей можуть задуматися про встановлення на одному комп’ютері більш ніж однієї (незалежної) версії Windows , Linux або одного випуску Ubuntu.(або жорсткий диск, який використовується з декількома комп'ютерами та завантажується різною установкою однієї і тієї ж версії ОС на кожному комп'ютері). Більшість це вже можливо, але механізми в Windows та Ubuntu (Fedora,…) однозначно вибирають замінити те, що є у їх просторі імен, під помилковим припущенням, що може бути лише одне.

(Я завантажую Windows8 / 10, Ubuntu, Ubuntu LTS і Fedora на одному комп’ютері і декілька разів працював із завантаженням UEFI під різними вимогами.)


1
Я не використовую Windows. Але хтось намагався скопіювати / EFI / Windows в / EFI / Windows10 та / або / EFI / Windows8 та відредагувати кожен BCD, щоб бути лише для цієї версії? А потім в УЄФІ створюють антуражі для кожного. Якщо це працює від UEFI, то grub може зв’язуватися безпосередньо з кожним.
Олдфред

@oldfred Це те, на що я хотів вказати в нижньому розділі, і може бути навіть параметр, bcdbootщоб вказати інший цільовий каталог, але я не впевнений. Завантаження ланцюжком інших бінарних файлів EFI лише з одного ESP значно спрощує 40_customта робить його менш схильним до помилок, ви маєте рацію з цим. Я думаю, що було зосереджено занадто багато на мульти жорстких сценаріях (я думаю, у такому випадку ви все-таки зможете сказати bcdboot для завантаження Windows на hdd2 з ESP на hdd1). м (
LiveWireBT

Комп'ютер здатний до UEFI, але я, чесно кажучи, не маю уявлення, що wtf зараз працює з розділами. У школі був встановлений спеціальний образ Windows 8, і хоча він використовував UEFI та Secure Boot (я вважаю, що BIOS налаштований так, щоб зараз дозволяти як UEFI, так і застаріле завантаження; я пам'ятаю, що вимкнути Secure Boot), сам жорсткий диск форматується за допомогою MBR. Тут є скріншот: imgur.com/1vDS4jf (Так, я планую незабаром змінити частину розділів.) Крім того, сам Ubuntu (від grepping dmesg), здається, не був запущений в режимі EFI, але Я не знаю, чи може сам GRUB
Hitechcomputergeek

@Hitechcomputergeek На скріншоті показана таблиця розділів msdos / MBR з розширеним розділом і відсутнім розділом EFI. Як я вже говорив, у вас повинен бути GPT і ви можете використовувати його dismдля розділів Windows.
LiveWireBT

запускатись як UEFI, але потім запускати інші ОС як не UEFI чи щось подібне. УЄФІ плутає. EDIT: GRUB не запускається як UEFI. Я поняття не маю, що сталося з оригінальним Windows. Власне, подумайте про це, я думаю, можливо, це НЕ БУЛО УЄФІ в першу чергу. Я припускав, що це було тому, що взагалі неможливо потрапити в BIOS через сплячку Windows 8, якщо ви спочатку не завантажили його, потім натиснули "Перезапустити", ТОГО намагалися потрапити в BIOS. Мені не потрібно було робити це ще раз після встановлення Ubuntu (і GRUB).
Hitechcomputergeek

2

Просто увійдіть до вашої ОС Ubuntu, відкрийте термінал:

sudo update-grub

перезавантажити

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