Можно ли «вернуться» в GRUB после загрузки Linux без перезагрузки

21

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

Поэтому мне было интересно, можно ли пропустить эти инициализации и просто «вернуться» в GRUB после загрузки Linux. В идеале я также мог бы сделать то же самое из Windows, но моя надежда там не очень высока :)

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

Если нет, то есть ли техническая проблема, которая мешает нам написать такую ​​программу, или просто не хватает спроса?

ОБНОВЛЕНИЕ: мой друг только что рассказал мне о Kexec . Используя это, кажется возможным запустить другое ядро ​​Linux из работающего ядра, но возможно ли вернуться к GRUB или запустить установку Windows напрямую?

Димитар Асенов
источник
4
Интересный вопрос. Одной из причин, по которой я не могу быть заинтересованным, является то, что виртуальные машины в последнее время улучшились. Большинство людей просто запускают свои вторичные ОС внутри ВМ на своей основной вместо двойной загрузки.
Нуфал Ибрагим
Я также рассматривал возможность использования виртуальной машины, но мне нужна быстрая графическая производительность, и пока виртуальные машины не обеспечивают удовлетворительную производительность. Возможно, сейчас все изменится, когда у Xen (и вскоре у других) появится полная опция для графических карт. Тем не менее было бы интересно посмотреть, есть ли способ быстрого переключения. Что касается второго комментария, я фактически не знал о unix.stackexchange.com. Я обязательно посмотрю и, возможно, напишу там, если сначала не получу ответ. Спасибо за предложение.
1
30 секунд ? я думаю на сервере IBM как 5 минут.
Sirex
1
Должно быть возможно с загрузчиками EFI (понятия не имею, как). Несколько сложнее с MBR, поскольку они ожидают запуска в 16-битном реальном режиме и все настраивают сами, что может быть невозможно после однократной инициализации системы.
grawity
@Sirex: Но кто загружает серверы IBM? :)
grawity 9.09.11

Ответы:

6

Используя kexec, вы можете решить проблему. Нет необходимости привлекать GRUB. Вы можете использовать kexec-loader для загрузки непосредственно в различные операционные системы из Linux. (Убедитесь, что поддержка kexec скомпилирована в ваше ядро.)

Fabel
источник
1
Насколько я знаю, kexec_load()системный вызов предназначен только для загрузки ядра Linux. Похоже, инструмент kexec-loader, который вы связали, поддерживает только ядра Linux. --- Возможно загрузить, например, memtest86, но я никогда не видел, чтобы кто-нибудь загружал Windows напрямую, используя механизм kexec, но это возможно через GRUB : Как загрузить напрямую в Windows из kexec + Grub4DOS .
Пабук
1
Смотрите также: Как запустить загрузчик из Linux?
Пабук
2

Проверьте, есть ли у вас поддержка UEFI. Это может ДРАГОЦЕННО улучшить скорость загрузки.

Milind R
источник
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
Джава
1
@Jawa у ОП проблемы, потому что его POST занимает недопустимо много времени. UEFI определенно сокращает это время: сама цель его создания.
Milind R
2
Здесь две вещи: 1) Вопрос не в том, «как мне быстрее загрузиться», а в том, «как мне вернуться в GRUB после загрузки?». 2) Однострочные ответы лучше всего подходят в качестве комментариев.
Кевин Панко
Спасибо за предложение. С тех пор как я опубликовал исходный вопрос, я изменил конфигурацию жесткого диска и только сейчас оптимизировал некоторые настройки в BIOS, чтобы улучшить время загрузки. По сути, я мог отключить вещи, связанные с RAID (которые мне больше не нужны), а также включил загрузку EFI. Общий эффект - гораздо более быстрая загрузка. Тем не менее, оригинальный вопрос все еще интересен для меня, и до сих пор я не нашел надежного решения.
Димитар Асенов
1

Короче говоря, не с тем, как все работает сейчас. Лучшим подходом может быть выяснение того, почему ваш контроллер BIOS / RAID / SATA занимает так много времени. Возможно, доступны обновления BIOS и, возможно, обновления микропрограммы для контроллера raid.

Zeroedout
источник
Одной из возможных причин медленного POST является то, что у вас есть контроллер жесткого диска, настроенный на автоматическое обнаружение несуществующих дисков в BIOS. Если у вас есть один жесткий диск и один CD / DVD, нет смысла пытаться автоматически определять другие 2 (или 4) слота, эти тесты должны быть отключены и могут занять некоторое время.
Хака
1

Нет. Если в вашем BIOS нет специальной опции установки для пропуска POST во время перезагрузки (я видел это однажды), этого не было со времен Windows 98 / ME (трюк быстрой перезагрузки, который действительно только перезагружал Windows).

Может быть, кто-то, у кого достаточно времени для взлома загрузки, мог бы воспроизвести это и перезагрузить GRUB, но это должно было бы изменить способ перезапуска системы INIT.

Nakarti
источник
0

Если вы не можете найти обновления, предложенные Zeroedout, вы можете запустить хост-систему на виртуальных машинах, поэтому перезагрузка практически бесплатна.

Кроме того, некоторые системы имеют режим быстрой / быстрой загрузки, где некоторые проверки не допускаются. Вы можете проверить это.

billc.cn
источник