- Linux на UEFI — как перезагрузиться на экран настройки UEFI, как Windows 8?
- Вход в настройки прошивки из загрузочного меню grub-efi
- Переход от загрузки BIOS-GPT к загрузке UEFI-GPT без записи загрузочного компакт-диска EFI?
- Вход в меню настройки / загрузки прошивки в моей системе ASUS
- Как я научился напрямую перезагружаться в нужную ОС через UEFI
- Linux:
- Windows:
- Move your Linux from legacy BIOS to UEFI in place with minimal downtime
- The big caveat or the ten years of advanced warning UEFI gave us
- More Linux resources
- A word of warning and some caveats
- Am I using Legacy BIOS?
- Inspecting the boot disk and deciding on a strategy
- More about automation
- My name is /dev/sda1
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).
Переход от загрузки BIOS-GPT к загрузке UEFI-GPT без записи загрузочного компакт-диска EFI?
РЕДАКТИРОВАТЬ: этот раздел может работать на некоторых системах. Однако теперь я считаю, что это зависит от дополнительного поведения, которое не является частью стандарта UEFI. Когда-нибудь я выясню, что здесь происходит.
Я конвертировал существующую установку в EFI без загрузочного CD с поддержкой EFI. Некоторые люди думают, что это невозможно. По общему признанию, есть несколько смущающих предупреждающих сообщений. Я посмотрел на то, что происходит. Если вы в настоящее время можете войти в настройки прошивки, то это не так уж и плохо.
Сложность в том, что вы, вероятно, все еще используете таблицу разделов MBR, и вам почти наверняка потребуется преобразовать ее в GPT. Я не собираюсь рассказывать о переходе с MBR на GPT. Разбиение всегда немного опасно. gdisk можно конвертировать, но есть довольно много неудобных битов. Я не перечислил их всех здесь. Но, например, вам, вероятно, нужно сжать последний раздел, чтобы освободить место для GPT на конце диска. Вы не можете сделать это, если раздел смонтирован, поэтому вы захотите использовать загрузочный CD. (Я также организовал преобразование, убедившись, что могу загружаться с BIOS-GPT до того, как попробую UEFI-GPT, что потребовало создания еще одного типа загрузочного раздела.).
Предполагая, что вы установили GPT:
- Установите grub-efi. Это удалило grub-pc и остановило его работу. (grub-efi фактически все еще работал после того, как я удалил это!). Fedora кажется немного другой; Я только попробовал это на Ubuntu. Во время установки вы увидите ошибки, связанные с невозможностью доступа к переменным EFI, потому что вы не загрузились с помощью EFI.
- Неисправность.
- Включить. Убедитесь, что вы загружаетесь через EFI! Это системно-зависимая и тревожная часть. Моя система по умолчанию работала с загрузкой MBR, поэтому я увидел страшную ошибку от GRUB — но это было от старого grub-pc. В моей системе было легко войти в экран настройки прошивки на этом этапе (см. Ниже) и изменить приоритет загрузки на «ubuntu» (который был записан для загрузки моей ОС через EFI).
- Теперь вы можете повторить установку 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 и восстановил таким образом).
Источник
Как я научился напрямую перезагружаться в нужную ОС через 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 и работаем в нём. Это можно сделать командой
Перезагружаемся и видим, что порядок загрузки не изменился, а мы оказались в первом элементе в BootOrder (у меня это был rEFInd), выбираем Windows и видим страшный привет из времен DOS, который говорит нам, что \EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI не найден. Да, мы изменили параметры загрузчика Windows, но не UEFI.
Борьба с этой ошибкой заняла у меня все праздники, но ничего путного не получалось. Я уже подумывал написать на C++ небольшую программку для этого (то, что это возможно, следует из существования такого софта, как EasyUEFI).
Но тут на очередном сайте я обнаружил вот такую конструкцию
И тут меня осенило, что можно прямо сказать bcdedit что и куда писать. Дальше стоило только проверить догадку:
Решение
Тут важно, что мы явно сказали писать не в
Перезагружаемся, и всё работает так, как мы этого хотели. Сохраняем это дело в bat/lnk, дописываем
Выставляем запуск из-под администратора и готово!
Спасибо за внимание! Буду крайне рад замечаниям по технической части в комментариях, замечаниям по оформлению — в ЛС.
Источник
Move your Linux from legacy BIOS to UEFI in place with minimal downtime
Photo by cottonbro from Pexels
I don’t know about you but I don’t like to reinstall my operating system. I find it a complete waste of my time for something that should just update in place. Some people, often using other platforms, prefer a good once-a-year wipe and reinstall to regain the original speed of their systems. I just don’t subscribe to this point of view. There are many ways to maintain a system and I usually prefer some investigative debugging rather than wiping and hoping for the best.
For this reason, systems like my work laptop might have started their life a long time ago (Fedora 22 on an i7-based 4th generation laptop) and have by now seen three hardware refreshes, several solid state drive (SSD) upgrades, and many Fedora updates (I currently use Fedora 32).
When I switch systems, I like to take my operating system with me and expect it to boot on the new machine. But it turns out that’s a disaster waiting to happen because of hardware differences between the new and old systems. The problem is that it’s not as simple as pulling your hard drive from an old system and popping it into a new one and expecting everything to work as desired. This article describes how to move a Linux install from one piece of hardware, in this case, an older laptop, to a newer one.
The big caveat or the ten years of advanced warning UEFI gave us
More Linux resources
When Unified Extensible Firmware Interface (UEFI) was introduced in the early 2000s, it was designed to replace PC (Basic Input/Output System) BIOS and provide x86 users with something more technologically advanced. People with SPARC or PowerPC Mac systems with OpenBoot PROM (OBP)/OpenFirmware had already experienced the future many years before. UEFI wanted to evict the BIOS so its predecessors would no longer shame the PC.
For UEFI technology to be widely adopted, manufacturers opted to make it optional/selectable from the machine’s firmware: Do you want to boot in Legacy BIOS or UEFI mode? Over the course of the next ten years, UEFI slowly pushed Legacy BIOS out and became the default mode for machines shipped by manufacturers.
To be fair, UEFI provides multiple advantages, including these:
- It makes multi-booting more reliable and flexible.
- It gives us (Linux users) the ability to run fwupdmgr to flash the firmware in our machines from within Linux. This includes almost any firmware, even add-on cards.
On my personal systems, I simply ignored the UEFI problem and kept enabling Legacy BIOS on any fresh new machine I would obtain so I could boot my Linux OS without giving it a second thought.
Then, 2020 came, and a brand new laptop showed up with UEFI only. No legacy booting of any kind (except on external USB sticks). Months later, a new portable Xeon-based workstation made its way into our home, and again that beast would only do UEFI.
I was stuck with a master boot record (MBR) formatted SSD (Legacy BIOS) and a machine that would only boot in UEFI mode. Being a tinkerer and a Linux user, I set out to research the issue, and the solution turned out to be not too difficult and would only require about five minutes once you’ve determined what to do.
A word of warning and some caveats
In finding the «right procedure» for my physical systems, I corrupted the test virtual machine I was using a few times. I also corrupted one of my laptop systems once, but I had a full image of my SSD thanks to CloneZilla. Here’s some advice:
- Make a full image-level backup of your system before you proceed. You’ll be touching your disks, and the tools used to make it easy to delete something without confirmation. You could use CloneZilla, AOMEI Partition Assistant, dd , or even Norton Ghost to do that. There are dozens of tools that do the job just fine.
- This procedure works even if you have a dual-boot machine. It works with Logical Volume Manager (LVM), plain partitions, and also with Linux Unified Key Setup (LUKS) or any combination thereof. You simply need to be careful and adapt the instructions to your configuration.
- Doing this procedure requires that you put your beloved SSD into a machine that can do both boot modes: Legacy BIOS and UEFI. If you attempt the procedure on a BIOS-only device, you’ll have to wait until you move your HDD or SSD to a UEFI machine to know it worked.
- You don’t have to physically move your SSD to another machine. You could simply clone the old MBR-formatted SSD onto a new SSD in another machine and work from there. You’ll change the structure of the partitions on your disk. Whether it is a temporary device or a new SSD in a new laptop is entirely up to you.
- In the unfortunate case that you don’t have any disk space you can free up easily on your SSD, there are still ways to operate. The last few hundred MBs of your LVM PV (Physical Volume) could be removed from its PEs and the LVM PV be resized to make room for the EFI partition. I won’t describe this here, but you’ll find some references at the end of the article. Another option is to take the opportunity to buy a slightly larger SSD and restore your Linux system onto it so you have some free space.
- Work through the process slowly and don’t hesitate to ask questions online if you need help. There are dozens of Linux user groups out there who will help you if you are stuck.
- This article was written on a freshly reinstalled laptop system with Fedora 33 but applies to many different configurations.
- Do not try this if you use B-tree file system (BTRFS) with Fedora 33. I could not make it work after converting my disk to GUID Partition Table (GPT) when I used BTRFS.
Am I using Legacy BIOS?
There are two good indicators of a machine booted in Legacy BIOS.
1) Your boot disk has DOS/MBR partitioning:
2) Your Linux kernel does not have EFI variables:
On a UEFI-mode machine, the above yields output similar to this:
Inspecting the boot disk and deciding on a strategy
From the above, I discovered that my boot disk is /dev/sda . Take a closer look with parted :
From the above, you see that only two partitions are present. The first partition is a small 1GiB partition, formatted as ext4 and it holds the kernels. The second partition is a different beast and is using LVM. As much as I’ve been happy with LVM on my Linux systems, I’ll not touch it for the moment.
More about automation
Consequently, I will use the space occupied by the first partition to make room for GPT and UEFI.
Please note that if you’re using LUKS or LVM, the conversion to UEFI procedure might also be safer if you use the boot partition and its space.
If you picked up BTRFS (the default in Fedora 33), this might not work for you, and my initial attempt failed to boot right after converting the disk to GPT.
If your boot partition is smaller than 1G and all space is occupied by partitions, it may not be safe to make /boot smaller than 512-600Mib. You might not have enough space to proceed, and perhaps now might be a good time to get a slightly larger SSD onto which you could clone your system.
My name is /dev/sda1
The boot partition on this machine is 1Gib in size and has enough free space for us to proceed:
First, resize the filesystem to 512M:
Umount it first (You can, since Linux only mounts /boot as a convenience):
The ext4 filesystem got resized, but the partition is still 1Gib in size. You will resize it next. You will shrink the partition to a size slightly over that of the /boot file system to be safe from rounding errors. Shrink it to 700Mib, which will leave about 300Mib free. Since the filesystem inside that partition is now 512Mib, it is safe to shrink the partition from 1024Mib to 700Mib.
Next, extend the filesystem back to the full partition size (700Mib):
The resize operation concludes with growing the ext4 filesystem from 512Mib back to the size of the underlying partition, which is 700Mib.
I could also have used Gparted to monitor the progress of the previous steps. Here’s a screenshot of the initial situation:
Источник