Зміна порядку завантаження на багатозавантажувальній системі Windows 10 - Ubuntu 15.10 - Fedora 23


1

У мене виникає проблема з налаштуванням порядку завантаження, оскільки я хочу, щоб це було на моєму багатозавантажувальному комп'ютері, що містить Windows 10 - Ubuntu 15.10 - Fedora 23.

Ось що я зробив: я використовую лише подвійну завантажувальну систему з Windows 10 та Ubuntu 15.10, яка працювала як слід:

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

Оскільки я хотів спробувати інші дистрибутиви Linux, я встановив Fedora 23.

Сталося, що Fedora взяти владу на завантаження. Мені спочатку потрібно змінити конфігурацію завантаження Fedora, замінивши Linux та initrd на linuxefi та initrdefi, щоб завантажуватись на Ubuntu, як пояснено тут .

Тоді я можу отримати доступ до всіх ОС, встановлених на моєму комп’ютері. Але я хочу повернути Ubuntu потужність завантаження.

Тому я спершу спробував відновити завантаження, запущений з Ubuntu, але це не ефективно.

Потім я спробував використовувати efibootmgr:

$ sudo efibootmgr 
Mot de passe [sudo] pour xavier : 
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0004,0006,0000,0007,0001,0002,0003
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002  UEFI: IP4 Qualcomm Atheros PCIe Network Controller
Boot0003  UEFI: IP6 Qualcomm Atheros PCIe Network Controller
Boot0004* Fedora
Boot0006* grub
Boot0007* ubuntu

Потім я спробував і Ubuntu, і Fedora змінити порядок:

$ sudo efibootmgr --bootorder 0006,0004,0000,0001,0007,0002,0003
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0006,0004,0000,0001,0007,0002,0003
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002  UEFI: IP4 Qualcomm Atheros PCIe Network Controller
Boot0003  UEFI: IP6 Qualcomm Atheros PCIe Network Controller
Boot0004* Fedora
Boot0006* grub
Boot0007* ubuntu

Але при перезавантаженні зміни, які я здійснив за допомогою efibootmgr, не застосовуються, і якщо я знову попрошу efibootmgr для завантаження, він видасть мені одну з Fedora ...

Я думаю, що проблема може виникати з різних параметрів, які я насправді не розумію, таких як:

  • Яка різниця між завантаженням efi, grub та grub2
  • Який вплив захисного завантаження?
  • Що таке спадщина завантаження?

Дякую будь-кому, хто може надати мені допомогу в чистоті.

EDIT: Відповідь Рода Сміта дає зрозуміти, що я можу отримати більше інформації за допомогою аргументу -v:

$ sudo efibootmgr -v
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0004,0006,0000,0007,0001,0002,0003
Boot0000* Windows Boot Manager  HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...3................
Boot0001* ubuntu    HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0002  UEFI: IP4 Qualcomm Atheros PCIe Network Controller    PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(448a5b4783b6,0)/IPv4(0.0.0.0:0<->0.0.0.0:0,0,0)..BO
Boot0003  UEFI: IP6 Qualcomm Atheros PCIe Network Controller    PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(448a5b4783b6,0)/IPv6([::]:<->[::]:,0,0)..BO
Boot0004* Fedora    HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\FEDORA\SHIM.EFI)
Boot0006* grub  HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\GRUB\SHIMX64.EFI)
Boot0007* ubuntu    HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\UBUNTU\GRUBX64.EFI)

Завдяки цій публікації від Рода Сміта я зрозумів роль обох записів ubuntu. Але груба одна, здається, небажана, оскільки файл не існує:

$ ls -a
.  ..  Boot  fedora  Microsoft  MSI  ubuntu

Я, можливо, варто її стерти?

Потім я спробую інше замовлення:

$ sudo efibootmgr --bootorder 0001,0004,0000,0006,0007,0002,0003

Але, на жаль, зміни не діють.

Тоді, якщо я добре розумію відповідь Рода Сміта, єдиним рішенням буде стерти запис Fedora? Це, можливо, спричинить деякі проблеми, якщо одного дня я хочу зберегти лише Fedora, але до цього часу це дозволить мені завантажуватися на USBLive?

Ще раз дякую!

Відповіді:


1

Почну з відповіді на запитання в кінці вашого допису:

  • Завантаження в режимі EFI використовує вбудований режим вбудованого програмного забезпечення, тоді як для завантаження BIOS / CSM / застарілого режиму використовується модуль підтримки сумісності, який дозволяє завантажувати старі завантажувачі BIOS-режиму. Дивіться це питання та мою відповідь на нього на superuser.com для отримання додаткової інформації з цього приводу.
  • GRUB - один із декількох завантажувачів режиму EFI для Linux. (Існують також версії GRUB для BIOS та інших типів вбудованого програмного забезпечення.) GRUB Legacy, також відомий як GRUB 1, ніколи офіційно не підтримувався для EFI, хоча у Fedora була сильно зашифрована версія, яка зараз залишає програмне забезпечення. Таким чином, більшість посилань на GRUB у контексті EFI стосуються GRUB 2.
  • Безпечна завантаження - це додаткова функція EFI, призначена для покращення безпеки системи, блокуючи EFI не запускати бінарні файли, які не криптографічно підписані довіреною владою. В принципі, цим авторитетом могли бути ви; або це може бути хтось інший. На практиці Microsoft тримає єдині загальнодоступні клавіші для безпечного завантаження, і таким чином контролює процес. На щастя, Microsoft підписує сторонні двійкові файли, а Ubuntu використовував це для того, щоб Microsoft підписала двійковий файл під назвою Shimщо, в свою чергу, включає ключ Canonical, який використовується для підпису GRUB та ядра Linux в Ubuntu. Зауважте, що при подвійному завантаженні двох дистрибутивів Linux жоден Shim дистрибутива не буде включати ключ для іншого дистрибутива. Таким чином, ви повинні зареєструвати інший ключ розповсюдження зі списком ключа власника машини (MOK), що ви можете зробити з MokManager.efiутилітою в EFI. Я думаю, що sb-updatevarутиліта може це робити і в Linux, але у мене з цим менше досвіду. Дивіться тут кілька ключів в одному зручному місці; вам знадобиться .cerабо .derключі. Докладніше про цю тему див. На моїй сторінці в безпечному завантаженні .

Що стосується вашої основної проблеми, команда efibootmgr -o(або efibootmgr --bootorder) повинна контролювати будь-яку програму завантаження, яку ви вказали. Однак зауважте, що ви, ймовірно, мали намір надати контроль Boot0001або Boot0007, ні, Boot0006- Ubuntu використовує ім'я ubuntu, а не ім'я grubдля опису власних записів завантаження. Ви можете краще ідентифікувати кожне з них, ввівши sudo efibootmgr -v, який створює цілі шляхи до записів завантаження (ідентифіковані за допомогою ідентифікаторів шляху EFI, які є довгими і складними і посилаються, між іншим, на GUID-номери розділів, які ви можете отримати з gdiskдеякими або деякими версії blkid). Таким чином, перш ніж робити щось інше, ви можете спробувати змінити порядок завантаження на правильне значення, а не на Boot0004.

На практиці efibootmgrзміни іноді не спрацьовують через помилкові ІФІ або пошкоджені дані в NVRAM машини (саме там зберігаються дані, які efibootmgrвідображаються та коригуються). Зазвичай використовуються три рішення таких проблем:

  • Стерти небажані записи - Іноді видалення небажаного або дублюючого запису, як і sudo efibootmgr -b 0004 -Bдля видалення Boot0004, виправить проблему. (Однак ви можете або не хочете фактично хотіти видалити цей запис.) Іноді вам може знадобитися видалити кілька записів для завантаження, щоб система знову працювала. Не видаляйте записи, які потрібно завантажити. Крім того, на більшості комп'ютерів є записи, які створює сама прошивка, як і дві Network Controllerзаписи у вашому висновку. Видалення цих записів, як правило, недоцільно.
  • Скидання прошивки до встановлених за замовчуванням - Більшість EFI надають можливість скинути всі параметри до своїх стандартних налаштувань у утиліті налаштування прошивки. (Те, що деякі називають "екранами налаштування BIOS" чи чимось подібним - хоча ІФІ технічно не є BIOS, незважаючи на те, що багато людей, і навіть виробники, часто називають їх такими.) Недоліком такого підходу є те, що це ймовірно, буде видалено всі записи EFI, що зробить систему незавантаженою, поки ви не скористаєтеся аварійним диском, щоб відновити хоча б один робочий запис.
  • Зворотний завантажувач завантажувача під інший запис - Цей підхід включає копіювання або переміщення / перейменування потрібного завантажувача, щоб використовувати ім'я файлів, на чому EFI наполягає на запуску. Зазвичай він використовується, коли EFI відмовляється запускати що-небудь крім завантажувача Windows, тому це не повинно бути необхідним у вашому випадку.

Хоча трохи відступивши назад, я скажу, що насправді не має значення, який GRUB ви використовуєте (Fedora чи Ubuntu); вони в основному те саме програмне забезпечення. Якщо у вас виникають проблеми з налаштуванням GRUB Fedora робити те, що ви хочете, ви завжди можете налаштувати його налаштування - але налаштування OTOH, GRUB 2, як відомо, важко, коли ви виходите за рамки деяких дуже основних речей. З цієї причини багато людей, які мають подвійне завантаження декількох дистрибутивів Linux, воліють мати незалежний від дистрибуції завантажувач - або власний GRUB, або щось інше. Мій власний менеджер завантаження rEFInd має ряд переваг для таких конфігурацій, як відсутність опори на файли конфігурації для виявлення оновлень ядра та його незалежність від будь-яких сценаріїв конфігурації ОС. Це сказав, якщо виefibootmgrщоб переключитися з одного GRUB на інший, у вас також можуть виникнути проблеми із завантаженням rEFInd (або будь-якого іншого завантажувача). Крім того, якщо ви використовуєте Secure Boot, можливо, вам доведеться зареєструвати принаймні один ключ Secure Boot у вашій MOK, щоб заставити rEFInd працювати. З цього питання, якщо ви хочете перейти на GRUB Ubuntu, це те, що GRUB Fedora не запустить ядра Ubuntu, тоді проблема, швидше за все, - Безпечна завантаження; додавання ключа Secure Boot для Canonical / Ubuntu повинно подолати цю проблему.


Редагувати:

Boot0001це запис, який, швидше за все, робить те, що ви хочете, тому він повинен перейти на початку вашого завантажувального списку; але це здається, що це не працює для вас.

Якщо ви можете жити з тим, щоб залишити Fedora відповідальним за процес завантаження, можливо, найкраще це зробити, щоб у вас в кінцевому підсумку не було створено каскад нових проблем. Безумовно, прямо видалити запис Fedora є ризикованим, оскільки якщо ви не зможете нічого іншого працювати, ви, можливо, не зможете нічого завантажити.

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


Дуже дякую за таку повну відповідь! Що насправді турбує мене з цією фактичною конфігурацією, це те, що я не можу легко завантажуватися на LiveUSB, і здається, що я не дуже в змозі вибрати, як це конфігурувати ... Як ви пропонуєте, я використовую efibootmgr -v для отримання додаткової інформації. Тому я відредагував своє запитання, і це було б дуже приємно, якби ви могли ще раз відповісти на нього.
Ксав'єр К.

Перегляньте мою редакцію вище.
Rod Smith

0

Я нарешті, завдяки допомозі Рода Сміта, знайшов рішення вибрати замовлення завантаження, яке я хочу.

Як він згадував про відключення захищеного завантаження, я отримую доступ до налаштувань біографії, і, як очікувалося, захищене завантаження вже було відключено, але я скористався можливістю змінити налаштування bios / uefi без зміни efibootmgr порядку завантаження. .

Тоді я вирішив спочатку завантажити на USB-пристрої, а потім встановив порядок завантаження на жорсткому диску, спочатку з ubuntu, і це працює!

Тому я чітко думаю, що коли efibootmgr з будь-якої причини не в змозі змінити порядок, перехід безпосередньо до налаштувань bios / uefi може бути найкращим варіантом, а не дуже складним.

Я сподіваюся, що це може допомогти іншим.

Ще раз дякую за вашу допомогу.

Ксав'є

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