Чи можливо "повернутися" до GRUB після завантаження Linux без перезавантаження


21

Я на своєму SSD працює з подвійним завантаженням Windows і Linux і часто перемикаюся між двома ОС. SSD дійсно швидкий, і обидва ОС завантажуються приблизно за 3 секунди після вибору в GRUB. Однак для мого BIOS, RAID та другого SATA-контролера потрібно ініціалізувати назавжди (приблизно 30 секунд), перш ніж я нарешті в GRUB.

Тож мені було цікаво, чи можна пропустити ці ініціалізації та просто «повернутися» до GRUB, коли я завантажую Linux. В ідеалі я також міг би зробити те ж саме в межах Windows, але моя надія там не дуже велика :)

Я здійснив невеликий пошук в Інтернеті і не знайшов нічого, крім дещо застарілого завантажувача Linux - loadlin.exe, який можна було б запустити з Dos або Windows 95/98 для завантаження Linux. Тож принаймні концепція перемикання ОС без перезавантаження не нова. Хтось знає про поточний інструмент, який робить це?

Якщо ні, чи є технічна проблема, яка заважає нам писати таку програму, чи просто не вистачає попиту?

ОНОВЛЕННЯ: Мій друг щойно розповів мені про Kexec . Використовуючи це, здається, можливо запустити інше ядро ​​Linux із запущеного ядра, але чи можна повернутися до GRUB або запустити інсталяцію Windows безпосередньо?


4
Цікаве запитання. Однією з причин, про яку я можу подумати, що до цього не було великого інтересу, є те, що нещодавно вдосконалені машини змінилися. Більшість людей просто запускають свою вторинну ОС всередині VM на їх основній замість подвійного завантаження.
Нуфал Ібрагім

Я також розглядав можливість використання VM, але мені потрібна швидка графічна продуктивність, і поки що VM не забезпечують задовільних показників. Можливо, зараз зміниться ситуація, коли Xen (а незабаром і інші) має повний прохідний варіант для відеокарт. Тим не менш, все одно було б цікаво подивитися, чи є спосіб швидкої комутації. Щодо другого коментаря, я фактично не знав unix.stackexchange.com. Я обов'язково придивляюся і, можливо, допишу там, якщо я не отримаю відповіді першим. Дякую за пропозицію.

1
30 секунд? Я думаю, що на сервері ibm це як 5 хвилин.
Сірекс

1
Має бути можливим за допомогою завантажувачів EFI (не знаю як). Дещо складніше з MBR, оскільки вони розраховують запуститись у 16-бітному реальному режимі та налаштувати все, що може виявитися неможливим після ініціалізації системи один раз.
grawity

@Sirex: Але хто дублює сервери IBM? :)
grawity

Відповіді:


6

За допомогою kexec ви можете вирішити проблему. Не потрібно залучати GRUB. Ви можете використовувати kexec-loader для завантаження безпосередньо в різні операційні системи з Linux. (Переконайтеся, що підтримка kexec зібрана у ваше ядро.)


1
Наскільки мені відомо, kexec_load()syscall призначений лише для завантаження ядра Linux. Зв'язаний інструмент kexec-завантажувач, здається, також підтримує лише ядра Linux. --- Можна завантажитися, наприклад, memtest86, але я ніколи не бачив, щоб хто-небудь завантажував Windows безпосередньо за допомогою механізму kexec, але це можливо через GRUB : Як завантажуватися безпосередньо в Windows з kexec + Grub4DOS .
пабук


2

Перевірте, чи є у вас підтримка UEFI. Це може ДРАСТИЧНО підвищити швидкість завантаження.


Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх дописом.
Jawa

1
@Jawa OP має проблеми, оскільки його POST приймає неприйнятно тривалий час. UEFI, безумовно, скорочує цей час: сама мета його створення.
Milind R

2
Тут є дві речі: 1) Питання не в тому, "як я швидше завантажуюся", а в тому, "як повернутися до GRUB після завантаження?" 2) Відповіді на один рядок, мабуть, найкращі як коментарі.
Кевін Панько

Дякую за пропозицію. Оскільки я опублікував оригінальне запитання, я змінив конфігурацію жорсткого диска і лише зараз я оптимізував деякі параметри в біографії, щоб покращити час завантаження. По суті, я міг відключити речі, пов'язані з RAID (які мені вже не потрібні), а також включив завантаження EFI. Загальний ефект - це набагато швидше завантаження. Тим не менш, оригінальне питання все ще мені цікаве, і поки що я не знайшов надійного рішення.
Димитър Асенов

1

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


Однією з можливих причин повільного POST є те, що у вашому HDD-контролері налаштовано автоматичне виявлення неіснуючих накопичувачів у BIOS. Якщо у вас є один жорсткий диск і один CD / DVD, немає ніякого сенсу намагатися автоматично виявити інші 2 (або 4) слоти, ці тести повинні затримати час і можуть зайняти деякий час.
Хака

1

Ні, якщо у вашому BIOS немає конкретного параметра налаштування, щоб пропустити POST під час перезавантаження (я бачив це один раз), це не існує з Windows 98 / ME (хитрість швидкої перезавантаження, яка дійсно перезавантажила Windows.)

Можливо, хтось із достатньою кількістю часу хакерського завантаження міг би відтворити це та перезавантажити GRUB, але це має змінити те, як INIT перезапустить систему.


0

Якщо ви не можете знайти оновлення, як запропонував Zeroedout, можливо, ви захочете запустити свою хост-систему на віртуальних машинах, тому перезавантаження майже безкоштовна.

Крім того, деякі системи мають режим швидкого / швидкого завантаження, де деякі перевірки вимкнено. Ви можете перевірити це.

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