Чим відрізняється GRUB від SYSLINUX?


13

Це питання пов'язане з моїм висновком, що Ubuntu та його похідна використовує завантажувачі SYSLINUX та GRUB на ISO-образах для настільних релізів.

Під час завантаження з 32-розрядного зображення ISO , говориться, що SYSLINUX обробляє процес завантаження (завантаження, на якому показаний прекрасний екран заставки, з прогресуванням точкової анімації).

Але під час завантаження із 64-бітного ISO-зображення , замість цього використовується GRUB (чорно-білий екран, чітко показаний GNU GRUB version...у верхній частині екрана).

Отже, перефразовуючи моє запитання, які відмінності змусили Ubuntu використовувати GRUB та SYSLINUX на своїх ISO-образах? Чому б просто не використовувати ні один, а не один?

Для уточнення

Це питання якимось чином бентежить через мою відсутність роз'яснень та доступності обладнання. Я додав цю відповідь (або прокрутіть вниз), щоб краще пояснити 64-бітове зображення ISO.

Що відповідь - ні

Нитка коментарів нижче вже дала деяку ідею, але я маю пояснити тут. Відповідь не тому, що будь-хто підтримує EFI належним чином. Це питання мало на меті з'ясувати основні причини, а не лише підтримку ІФІ.

Скажіть, якщо це потрібно було б задати іншим способом, тобто "Чому в ISO-образах використовуються і GRUB, і SYSLINUX?" тоді це може дати відповідь на кшталт: "GRUB включений для підтримки систем, що підтримують EFI. SYSLINUX завжди включався і працює на системах, що працюють лише в BIOS" - це не мій намір.

Треба визнати, що підтримка ІФІ, ймовірно, є частиною відповіді.

Однак я вважаю, що це не повинно бути єдиним у відповіді. Має бути більше, ніж просто підтримка EFI, завдяки чому Ubuntu включав два завантажувачі у свої ISO-зображення, так? Або, справді, підтримка ІФІ є єдиною різницею? Допоможіть мені відповісти на це, якщо є.


Анімація прогресивної точки повинна бути в будь-якому випадку, припускаючи, що з графікою нічого поганого. І чому ви говорите живий CD та живий USB жирним шрифтом, коли різниця між 64-бітним зображенням UEFI та іншими зображеннями? Ви спробували образ UEFI на компакт-диску та отримали Syslinux?
muru

Це призведе до збільшення плутанини, оскільки GRUB використовує лише 64-бітове зображення, що підтримує UEFI, а не інші. Я б запропонував інший спосіб: відкиньте формулювання "живого CD / USB" і просто дотримуйтесь зображень, які ви використовували, бо саме там лежать відмінності.
muru

1
Гаразд, замінивши відповідно ключові слова: Live CD -> 32-бітове зображення ISO; Живий USB -> 64-бітове зображення ISO.
clearkimura

Syslinux - завантажувач BIOS. Використовується для обох 32 та 64 бітних версій на розділах, відформатованих FAT32. Це завантажувач типу Windows тільки для BIOS. Grub2 використовується лише при завантаженні UEFI. Вони, ймовірно, могли використовувати grub2 з BIOS, але це завжди було більше, і історично вони використовували syslinux. Не точно знаю, чому. Деякі незначні переваги для різних завантажувачів, тому ви знаєте, яким способом завантажуєте, UEFI або BIOS.
oldfred

@oldfred Файлова система ISO-зображення ISO9660 і не FAT32. Syslinux, очевидно, працює і на підтримці EFI, тому чому все-таки використовувати як Syslinux, так і Grub?
clearkimura

Відповіді:


14

Це моя остаточна відповідь, яка ґрунтується на інформації, знайденій шляхом відповідності ключового слова в межах 2000+ сторінок цього списку в Ubuntu Wiki . Я знайшов датовані нотатки про розробку та технічні характеристики Ubuntu (читайте: слова, слова, слова), тому мені знадобилося певний час, щоб дійти до цієї відповіді.

Оп, неправильне називання

Для початку слід уточнити найменування завантажувачів:

  • Ім'я з усіма великими літерами відноситься до завантажувача (наприклад, GRUB, SYSLINUX)

  • Ім'я з початковою літерою з великої літери відноситься до назви проекту або декількох або всіх варіантів сімейства завантажувачів (наприклад, Syslinux)

  • Зокрема, "Syslinux" - це колекція завантажувачів, що включає "SYSLINUX", "ISOLINUX", "EXTLINUX" та "PXELINUX"

Після домовленості про іменування , питання фактично стосується "ISOLINUX" для завантажувача "El Torito no-emulation", а не "SYSLINUX". Можливо, останній використовується взаємно з першим за старих часів. Тоді не забудьте.

Коротка історія

2005: ISOLINUX обраний для завантажувача Ubuntu CD замість GRUB.

GRUB був запропонований раніше як можливий замінний завантажувач, але цей підхід був випробуваний на живому компакт-диску Warty, де ми спостерігали значні регресії завантажуваності порівняно з компакт-диском для встановлення ISOLINUX. Ми вважаємо, що дотримання рішень на базі ISOLINUX є найбільш підходящим підходом для довготривалої підтримки.

- від CdBootloader - Ubuntu Wiki

2006 рік: додано gfxboot; Це підтверджує інформацію, цитовану у 2010 році.

У Dapper ми додали gfxboot до зображень CD з amd64 та i386, забезпечуючи дружнє графічне меню завантаження, як перше, що бачать користувачі під час завантаження зображень CD Ubuntu на цих архітектурах [...]

- від PortableGfxboot - Ubuntu Wiki

2009 рік: ISOLINUX (позначений як SYSLINUX) досі використовується для завантаження CD Ubuntu.

Живі компакт-диски Ubuntu досі завантажуються за допомогою SYSLINUX, який не включає підтримку запуску ядра в графічному режимі. Це означає, що живі компакт-диски відображають меню графічного завантаження, а потім переходять у текстовий режим, щоб запустити ядро, а потім згодом зазвичай перейдуть у графічний режим. Як результат, живі компакт-диски в даний час мерехтять більше, ніж звичайно встановлені системи під час завантаження.

- від BootGraphicsArchitecture - Ubuntu Wiki

2010 рік: ISOLINUX був використаний, але для підтримки UEFI необхідний GRUB 2.

Поточні компакт-диски Ubuntu використовують ISOLINUX, з розширеннями gfxboot від SuSE, що реалізують графічні меню.

Це виявилося досить важким у підтримці, лише одна особа в Ubuntu, яка розуміє тематичний код, що стосується [...]

[Оскільки] GRUB 2 нещодавно додала підтримку графічного меню вгору за течією, переміщення до якої може зменшити навантаження на обслуговування. Здається, ймовірно, що нам потрібно буде використовувати GRUB 2 у будь-якому випадку для підтримки EFI, і необхідність налаштування двох різних завантажувачів на наших компакт-дисках буде небажаною.

- від FoundationsTeam / Specs / MaverickCDBoot - Ubuntu Wiki

Відповідно до основ-m-grub2-boot-framebuffer, нам потрібно буде вивчити нашу здатність підтримувати графічні меню завантаження в EFI. GRUB має певний рівень підтримки графіки UGA та GOP.

Для цього потрібно використовувати GRUB для завантаження CD або хоча б мати мінімум конфігурації для його підтримки [...]

- від FoundationsTeam / Specs / MaverickUefiSupport - Ubuntu Wiki

Знайдені відмінності чи ні

Після короткої історії ми тепер розуміємо, що:

  • ISOLINUX віддав перевагу через те, що GRUB тоді регресував (2005)

  • ISOLINUX все ще віддав перевагу, незважаючи на відсутність підтримки для запуску ядра в графічному режимі, що спричиняє мерехтіння під час переходу під час завантаження (2009)

  • ISOLINUX використовувався з gfxboot для надання графічного меню, яке тоді не було реалізовано або неможливо за допомогою GRUB (2010)

  • GRUB додано пізніше для завантаження з підтримкою UEFI з Maverick (після 2010 року)

Тоді я зрозумів , що це НЕ різниця між GRUB і SYSLINUX , який зробив Ubuntu Live CD включає два загрузчиков.

Фундаментальні причини

З мого читання ці підтверджуючі факти насправді натякали, що:

  1. Ubuntu live CD використовує особливий завантажувач, який мав кращу підтримку для надання графічного меню та теми, а також плавний перехід для показу сплеску завантаження. У цьому випадку SYSLINUX (саме ISOLINUX).

  2. Коли системи UEFI стали все більш поширеними, тоді лише Ubuntu включив GRUB (саме GRUB 2) в живий компакт-диск Ubuntu, щоб завантажуватися з підтримкою UEFI.

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

TL; DR GRUB та ISOLINUX обидва використовуються на живому компакт-диску Ubuntu з ексклюзивних причин; Обидва були включені в живий компакт-диск для кращого завантаження та апаратної підтримки.


Хороші дослідження. Інформація про груб до 2009/10 року з Ubuntu була спадщиною. Потім Ubuntu перейшов на grub2 за замовчуванням. Я не вважаю, що спадщина утиліти тоді працювала з UEFI, хоча багато функцій, щоб отримати спадщину для роботи з новішими системами, часто робилося дистрибуцією.
Олдфред

6

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

Деякі пояснення нижче:

  • На відміну від 32-бітного ISO-зображення, 64-бітове зображення ISO насправді включає в себе і GRUB, і SYSLINUX (це підтверджується, /boot/grubі /isolinuxкаталоги містяться в ISO-образі)
  • GRUB відображається при завантаженні ISO-зображення на машині, сумісній з EFI.
  • SYSLINUX відображається при завантаженні ISO-зображення на машині, що працює лише в BIOS.
  • Плімут обробляє анімацію крапок прогресу, незалежно від показаного GRUB або SYSLINUX (це правильно натякнув @muru в першому коментарі)

Досвід завантаження : Я написав "Здатний до EFI", тому що навіть моя машина реалізувала EFI, я вимкнула функцію "Безпечна завантаження" (1,2), щоб завантажити Ubuntu (у моєму випадку Xubuntu 14.04) з Live USB.

  1. 64-розрядний реліз Xubuntu 14.04 може завантажуватися під час увімкнення Secure Boot після його встановлення на локальний диск (не Live USB).

  2. 64-розрядний реліз Xubuntu 16.04 може завантажуватися під час увімкнення Secure Boot.

Випробуваний метод : Замість того, щоб спробувати фізичні носії DVD та завантажуватися із зовнішнього оптичного накопичувача, я використав програмне забезпечення для віртуалізації (VirtualBox 4.3 в моєму випадку), щоб довести вищевикладені випадки.

  • У VirtualBox 4.3 вже є можливість перемикання між системою EFI та BIOS, її можна знайти в розділі Машина> Налаштування> Система> Материнська плата - Розширені функції: Увімкнути EFI (лише спеціальні ОС) . За замовчуванням параметр не знімається (3).

  • Віртуальну машину потрібно створити за допомогою 64-розрядної версії VirtualBox, що працює на 64-бітній хост-системі. 64-бітове зображення Xubuntu 14.04 використовується в моїх наступних спробах.

  • Перша спроба: я запустив образ ISO із налаштуваннями за замовчуванням (це передбачає систему BIOS). Віртуальна машина покаже фіолетовий фон з піктограмами внизу. Це SYSLINUX .

  • Друга спроба: я закрив машину і перейшов до налаштувань, перевірив опцію (3), щоб увімкнути EFI. Використовуючи той самий образ ISO, я знову запустив віртуальну машину. Цього разу пройшло певний час, поки не з’явиться GNU GRUB version...монохромний текст. Це GRUB .

  • В обох спробах процес завантаження покаже анімацію прогресу крапок під час завантаження.

  • Цей розділ сторінки в Ubuntu Wiki містить скріншоти, щоб описати два випадки вище.

Відмова : Ця відповідь має на меті уточнити досвід завантаження та перевірений метод. Однак це не остаточна відповідь на моє запитання. Остаточну відповідь буде розміщено окремо, якщо мені вдалося самостійно відповісти на питання.


Дякую за цю інформацію! Мені вдалося запустити завантаження з usb лише при використанні rufos .iso зображення, яке створило syslinux в завантажувальному інструменті, але не за допомогою команди "dd <iso>" - що я помітив, що він не створює syslinux. Вся справа в тому, що ubuntu від hdd має grub. Тому я не розумію, чому grub працює з hdd, але не з usb.
ransh

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