Reboot to bios linux

Как я научился напрямую перезагружаться в нужную ОС через UEFI

Добрый вечер, Habrahabr!

Сегодня мы научимся перезагружаться из Linux прямиком в Windows и обратно всего за один (двойной) клик.

Дано:

  • Два диска с GPT с разными ОС
  • Материнская плата с UEFI и отключеным Legacy Mode
  • Windows, которую бережно поставили с полной поддержкой UEFI
  • Linux (у меня Manjaro), который бережно поставили, выпилив любое упоминание GRUB и прочих старомодных вещей
  • rEFInd — красивый менеджер загрузки (нет, не загрузчик)

Надо:

  • Написать два скрипта на *sh и cmd (bat), которые позволят перезагрузиться в нужную ОС

Примечания:

  • Рабочие варианты обозначены, как Решение, остальное — мои рассуждения и описание пути к цели.
  • Я сознательно опускаю описание тех деталей, которые не относятся к сути настройки, либо легко варьируются. Упоминаются же эти детали потому, что для меня они не были очевидны на момент настройки, поэтому статья становится более понятной для неискушенных читателей, которые не будут видеть в ней инструкцию по рисованию совы.
  • Почему стоит быть осторожным при модификации NVRAM

Linux:


Linux — прекрасная база для работы с компьютером, поэтому всё, что нам нужно, уже есть в репозиториях, а коллективный разум сообщества знает всё и всегда готов помочь. Поэтому, после недолгого изучения интернета, ставим efibootmgr:

Отлично, теперь запускаем:

Внимательные читатели уже наверняка заметили, что в выводе что-то не так, но тогда я был окрылён мыслью о том, что через 15 минут буду летать между операционками без проблем, и не обратил на это должного внимания.
Ок, 3 минуты на документацию, и мы находим нужный параметр «-n«, который выставляет кастомый порядок загрузки ровно на один раз. Пробуем выполнить эту команду:
Решение

И оказываемся в Windows, как того и желали. Теперь эту команду записываем в скрипт/alias/*.desktop-файл и радуемся тому, как всё здорово получилось.

Windows:


Началось всё с поиска аналога efibootmgr для Windows, которого в чистом виде, конечно же, нет. Для успокоения совести я даже попытался использовать Linux Subsystem, но это, конечно же, не сработало.
Беглый поиск по интернетам показал, что схожим функционалом по модификации NVRAM обладает утилита bcdedit. Отлично, думаю я, запускаю PowerShell из-под Администратора и пишу

Где Linux? Куда грузиться? Ненавижу винду
На самом деле оказалось, что виновата не Windows, а я (да-да, тот самый момент для внимательных пользователей), и вот почему: rEFInd — прекрасная утилита, которая обычно, для корректной работы, требует только установить себя. Она умеет подхватывать все .efi файлы, разные дистрибутивы с разными ядрами, сама подставляет иконки. Прелесть, а не инструмент. Но это сыграло со мной злую шутку, так как оказалось, что UEFI ничего не знает про Linux, так как отсутствует соответствующий ему .efi-файл.
Поэтому презагружаемся обратно в Linux, конфигурируем systemd-boot (bootctl). Теперь всё выглядит вот так:

Возвращаемся обратно и снова запускаем.

Тут стоит упомянуть, что проблему мне помогали решать пользователи reddit. Именно благодаря им мы имеем следующий шаг:

Где аргументом является identifier необходимого варианта — Linux Boot Manager.

Powershell не даёт нормально выполнить эту команду, ругаясь на

Всё из-за того, что Microsoft периодически любит что-нибудь сломать. Решение просто и элегантно — вызываем классический CMD и работаем в нём. Это можно сделать командой

Читайте также:  Когда будет обновление windows для lumia 920

Перезагружаемся и видим, что порядок загрузки не изменился, а мы оказались в первом элементе в BootOrder (у меня это был rEFInd), выбираем Windows и видим страшный привет из времен DOS, который говорит нам, что \EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI не найден. Да, мы изменили параметры загрузчика Windows, но не UEFI.
Борьба с этой ошибкой заняла у меня все праздники, но ничего путного не получалось. Я уже подумывал написать на C++ небольшую программку для этого (то, что это возможно, следует из существования такого софта, как EasyUEFI).
Но тут на очередном сайте я обнаружил вот такую конструкцию

И тут меня осенило, что можно прямо сказать bcdedit что и куда писать. Дальше стоило только проверить догадку:
Решение

Тут важно, что мы явно сказали писать не в (как он, видимо, делает по-умолчанию), а в , что и является нашими настройками UEFI.
Перезагружаемся, и всё работает так, как мы этого хотели. Сохраняем это дело в bat/lnk, дописываем

Выставляем запуск из-под администратора и готово!
Спасибо за внимание! Буду крайне рад замечаниям по технической части в комментариях, замечаниям по оформлению — в ЛС.

Источник

Linux на UEFI — как перезагрузиться на экран настройки UEFI, как Windows 8?

makeuseof.com объясняет, что в сертифицированном Windows 8 оборудовании появился новый способ входа в экран настройки UEFI (аналог BIOS). С Как получить доступ к BIOS на A Windows 8 Компьютер :

Мы больше не нажимаем определенную клавишу во время процесса загрузки, чтобы открыть BIOS — вместо этого опция для доступа к BIOS находится в меню параметров загрузки Windows 8 . Если вы находитесь здесь, чтобы получить доступ к UEFI BIOS вашего компьютера, нажмите Устранение неполадок

Главный разработчик Secure Boot для Linux говорит, что альтернативные ОС не могут предполагать, что старый способ продолжит работать . Так есть ли в Linux новый способ входа в настройку UEFI?

У меня есть материнская плата ASUS. Предполагается, что обновленная версия прошивки содержит опцию быстрой загрузки . Обратная сторона в том, что эта опция может усложнить «раскрытие BIOS», чем она есть.

Я не против возиться. Просто, если известно, что это плохая идея, я не хочу ни с чем сталкиваться с риском обновления прошивки (и, возможно, придется отключить дело, сбросить настройки и заново настроить их все).

В качестве альтернативы, как это обрабатывается для пользователей Windows 7? Если они оптимистично выбирают опцию быстрой загрузки, как они снова получают доступ к настройке «BIOS», когда им это нужно?

В современных дистрибутивах Linux, использующих systemd, вы можете перейти прямо в меню настройки прошивки, используя

Я не уверен, как именно Windows 8 делает это, но я могу предположить, что он использует переменные UEFI, используемые для параметров загрузки.

Вы можете использовать efibootmgr, чтобы определить значения различных загрузочных переменных. В моей системе Boot0000 — это программа установки, поэтому использование efibootmgr -n 0 должно привести к загрузке системы при следующей загрузке.

Я попробовал загрузку EFI с Ubuntu 12.04 и нашел ответ на свой вопрос.

(Я не обновлял свою прошивку. Первоначально я неправильно прочитал примечания к выпуску — скорее всего, это будет не так быстро).

Вход в настройки прошивки из загрузочного меню grub-efi

efibootmgr Кажется, не поддерживает перезагрузку для установки прошивки для меня. Но Граб-Эфи делает. В меню загрузки GRUB можно создать запись для настройки прошивки.

Вы можете войти в меню загрузки GRUB, удерживая нажатой клавишу Shift «в начале процесса загрузки». Я нажимаю на нее сразу же после включения подсветки NumLock на клавиатуре, и это работает для меня.

Если вам интересно, я тоже посмотрел на команду: это «fwsetup». Т.е. вы можете войти в меню GRUB, следовать инструкциям на экране, чтобы переключиться на командную строку, затем набрать «fwsetup» и нажать клавишу возврата.

Если вы делаете установку EFI с нуля, я считаю, что пункт меню будет создан автоматически. Я не установил как EFI, что означало, что я должен был пнуть его (см. Ниже, шаг 4).

Читайте также:  Как настроить ldap windows

Переход от загрузки BIOS-GPT к загрузке UEFI-GPT без записи загрузочного компакт-диска EFI?

РЕДАКТИРОВАТЬ: этот раздел может работать на некоторых системах. Однако теперь я считаю, что это зависит от дополнительного поведения, которое не является частью стандарта UEFI. Когда-нибудь я выясню, что здесь происходит.

Я конвертировал существующую установку в EFI без загрузочного CD с поддержкой EFI. Некоторые люди думают, что это невозможно. По общему признанию, есть несколько смущающих предупреждающих сообщений. Я посмотрел на то, что происходит. Если вы в настоящее время можете войти в настройки прошивки, то это не так уж и плохо.

Сложность в том, что вы, вероятно, все еще используете таблицу разделов MBR, и вам почти наверняка потребуется преобразовать ее в GPT. Я не собираюсь рассказывать о переходе с MBR на GPT. Разбиение всегда немного опасно. gdisk можно конвертировать, но есть довольно много неудобных битов. Я не перечислил их всех здесь. Но, например, вам, вероятно, нужно сжать последний раздел, чтобы освободить место для GPT на конце диска. Вы не можете сделать это, если раздел смонтирован, поэтому вы захотите использовать загрузочный CD. (Я также организовал преобразование, убедившись, что могу загружаться с BIOS-GPT до того, как попробую UEFI-GPT, что потребовало создания еще одного типа загрузочного раздела.).

Предполагая, что вы установили GPT:

  1. Установите grub-efi. Это удалило grub-pc и остановило его работу. (grub-efi фактически все еще работал после того, как я удалил это!). Fedora кажется немного другой; Я только попробовал это на Ubuntu. Во время установки вы увидите ошибки, связанные с невозможностью доступа к переменным EFI, потому что вы не загрузились с помощью EFI.
  2. Неисправность.
  3. Включить. Убедитесь, что вы загружаетесь через EFI! Это системно-зависимая и тревожная часть. Моя система по умолчанию работала с загрузкой MBR, поэтому я увидел страшную ошибку от GRUB — но это было от старого grub-pc. В моей системе было легко войти в экран настройки прошивки на этом этапе (см. Ниже) и изменить приоритет загрузки на «ubuntu» (который был записан для загрузки моей ОС через EFI).
  4. Теперь вы можете повторить установку grub ( grub-install или grub2-install в Fedora), и она не выдаст никаких ошибок. И теперь при запуске update-grub (или grub2-mkconfig -o /boot/grub/grub.cfg на Fedora) будет создан пункт меню для входа в настройки прошивки.

Вход в меню настройки / загрузки прошивки в моей системе ASUS

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: это не самая последняя прошивка / плата. Ваша система ASUS может работать не так, как моя.

Моя текущая прошивка ASUS замечает, когда «загрузочная конфигурация» изменилась — например, когда я установил grub-efi. Там есть текст, говорящий, что он изменился, если вы посмотрите на начальный экран «EZ setup». И, когда он обнаруживает такое изменение, он облегчает доступ к экрану настройки. Что он делает, это показывает заставку с «нажмите DEL, чтобы войти в настройку» в течение нескольких секунд. (Если вы включили опцию «быстрой загрузки», она обычно пропускает заставку).

Я думаю, что также возможно вызвать заставку, выключив систему и отключив ее на минуту или около того, перед перезагрузкой.

На моей текущей прошивке я могу войти в настройку прошивки, мигая клавишей DEL во время загрузки, даже без заставки. Однако это зависит от включения поддержки клавиатуры в прошивке.

Возможно переключить прошивку, чтобы не проверять клавиатуры во время загрузки, что должно ускорить процесс. Я думаю, что это следующий эксперимент, который я попробую, теперь я более уверен в этом EFI! (Вполне вероятно, что это может убить поддержку клавиатуры в загрузочном меню GRUB. Но я все еще должен иметь возможность использовать grub-set-default, чтобы GRUB загрузил запись fwsetup и восстановил таким образом).

Источник

Thread: looking for command: reboot to bios

Thread Tools
Display

looking for command: reboot to bios

I have install Ubuntu server 12.04 in my Samsung Ultrabook series 5. I have some problem with my laptop and not able to go to bios setting by pressing any keys: F2, F10, F12, Del, F etc. Please don’t give suggestion to go to bios setting with this option.
I am looking for command in Ubuntu such that my laptop reboot to bios setting directly. without pressing any keys. Thanks.

Re: looking for command: reboot to bios

As far as I know, there is not such a linux command to enter into BIOS.

There are combination keys given by computer manufacturer in order to enter into BIOS.

Читайте также:  Heic heif windows 10

Here, http://www.pendrivelinux.com/how-to-access-bios/ there are some of them, you will be to look for the specific key combination given by samsung for your laptop: http://linux.seindal.dk/2013/03/31/s. -installation/

Re: looking for command: reboot to bios

IMO it has nothing to do with Ubuntu itself.

Re: looking for command: reboot to bios

I have windows 8 installed and I was able to boot with bios setting by just using some option in Windows 8. If Windows 8 can configure the boot directly to bios, then I was guessing Ubuntu may have similar procedure.

Re: looking for command: reboot to bios

Maybe you can do an «apropos bios» (without the quotes), in the terminal, and see what commands pertinent to the BIOS exist on your computer.
On my computer (not a laptop, not a Toshiba) apparently exists

toshset (1) — manipulate bios and hardware settings of Toshiba laptops

If you are lucky, you may have luck, who knows

Re: looking for command: reboot to bios

Topsiho, thanks for help. this is what I got when type «apropos bios»

biosdecode (8) — BIOS information decoder
check-bios-nx (1) — determine if BIOS has blocked CPU’s NX capabilities
intel_bios_dumper (1) — Saves the Intel video BIOS contents to a file.
intel_bios_reader (1) — Parses an Intel BIOS and displays many of its tables
lmhosts (5) — The Samba NetBIOS hosts file
nmbd (8) — NetBIOS name server to provide NetBIOS over IP naming .
nmblookup (1) — NetBIOS over TCP/IP client used to lookup NetBIOS names
nmblookup.samba3 (1) — NetBIOS over TCP/IP client used to lookup NetBIOS names
toshset (1) — manipulate bios and hardware settings of Toshiba laptops
vbetool (1) — run real-mode video BIOS code to alter hardware state

next what should I do ? I am really beginner.

Re: looking for command: reboot to bios

This is what I get, too. So I guess there is no luck here.

I never (for what that is worth) have seen a computer in which could not enter the BIOS somehow. Sometimes you have to press the right button at exactly the right time, or you are too late or too fast. Some perseverance helps here. *** Knowing *** which button to press helps in such a case. You can find that in the manual, the manual of the mother board, or so. If you don’t have the manual of the mother board, you might try and find this on the internet (google, or duckduckgo or so). You must know what mother board you have then. One possibility is opening up your computer and try and find the name somewhere on this board, you also might try what (in a terminal) you get when you do «sudo lshw | less» (without quotes), and try and find line(s) with Mother board (or Motherboard) in it. In one computer I have I could thus find the name of the mother board (and what buttons to press), on this computer I use now i can’t.

You can also (opening up a laptop is not advisable if you don’t know exactly what you are doing) google (duckduckgo) on the computer’s name and see what info you get. But: you have a computer manual, don’t you?

Other than this, I am afraid i can not help you.

Источник

Оцените статью