Uefi boot
Содержание:
- The cp Command:
- Как перейти в UEFI из Windows 10
- Intel Tianocore OS:
- UEFI bootable media
- Create UEFI bootable USB from ISO
- Как исправить ошибки EFI Shell при загрузке ПК
- The help Command:
- Как перейти в UEFI из Windows 10
- Установка Windows UEFI
- Как делать не надо
- Remove UEFI boot support from ISO
- MBR горит красным или желтым
- Мультизагрузка в UEFI
The cp Command:
The cp command is used to copy files from one storage device to another or within the same storage device.
I have a hello.txt file in the storage device fs1, as you can see in the screenshot below.
fs1:\> ls

To make a new copy of hello.txt, run the cp command as follows:
fs1:\> cp hello.txt hello2.txt

A new file hello2.txt should be created, and the contents of the hello.txt file should be copied to the hello2.txt file.
fs1:\> ls

If you want to copy the hello.txt file to the scripts\ directory on the same storage device using a relative directory path, run the cp command as follows:
fs1:\> cp hello.txt scripts

As you can see, the hello.txt file is copied into the scripts\ directory.
fs1:\> ls scripts

You can also use an absolute path to copy the hello.txt file to the \scripts directory as follows:
fs1:\> cp \hello.txt \scripts
As the file already exists, the cp command will ask you whether you want to overwrite it.
If you want to overwrite the file, press y and then press <Enter>.
If you don’t want to overwrite the file, press n and then press <Enter>.
If you want to overwrite all the files that already exist, press a and then press <Enter>.
If you don’t know what to do, press c and press <Enter> to cancel the copy operation.

The hello.txt file should be copied to the \scripts directory.

In the same way, if you want to copy the hello.txt file to the root directory of another storage device fs0, you can run the cp command as follows:
fs1:\> cp hello.txt fs0:\

As you can see, the hello.txt file is copied to the root of the fs0 storage device.
Shell> ls fs0:\

You can also recursively copy the contents of a directory to another directory or storage device using the -r option of the cp command.
To recursively copy the contents of the fs0:\EFI directory to the storage device fs1, run the cp command as follows:
Shell> cp -r fs0:\EFI\ fs1:\
All the files and directories in the fs0:\EFI directory should be copied to the storage device fs1, as you can see in the screenshot below.

As you can see, the ubuntu\ and BOOT\ directories from the fs0:\EFI directory are recursively copied to the fs1 storage device.
Shell> ls fs0:\EFI
Shell> ls fs1:\

If you want to copy the fs0:\EFI directory as well as the contents of that directory to the fs1 storage device, run the cp command as follows:
Shell> cp -r fs0:\EFI fs1:\

As you can see, the fs0:\EFI directory is recursively copied to the fs1 storage device.
Shell> ls fs0:\
Shell> ls fs1:\

Как перейти в UEFI из Windows 10
На девайсах с BIOS для перехода к настройкам низкоуровневого ПО нужно перезагружать устройство и нажимать назначенную для этой цели клавишу или сочетание клавиш, тогда как перейти к UEFI можно также прямо из интерфейса операционной системы. Если компьютером не предусмотрена такая возможность, например, девайс работает в режиме эмуляции BIOS, тогда в UEFI переходим стандартным способом – нажатием назначенной клавиши. Это обычно Del, F2, Fn+F2 или пр., для разных материнских плат клавиши или их комбинации могут отличаться, эта информация обычно указывается на начальном экране при загрузке компьютера.
Рассмотрим, как войти в UEFI из Windows 10:
Intel Tianocore OS:
• ядро(kernel) совмещенное с bootmanager = efildr20• пользовательское меню• командный процессор shellx64, переименованный minishell для дискет ы Tianocore_UEFI_DUET_Builds автор Keshav Padram Amburay ,• основные дисковые утилиты • диагностика
DUET.imz образ дискеты 1.44
• efildr переименован в DUET – renamed efildr• поддержка SATA support
extracted from Clover EFI bootloader project by Sergey Isakov a.k.a Slice with S ATA & mouse support DUET.ISO извлеченный из проекта загрузчик EFI клевер цвета хаки разработчик Сергей Исаков (Sergey Slice) с поддержкой SATA и мыши
The EFI boot process by Jonathan de Boyne Pollard
About the Copyright: In accordance with Title 17 U.S.C. Section 107, the material on this page is distributed without profit to those who have expressed a prior interest in receiving the included information for research, criticism, news reporting and comment purposes.
UEFI bootable media
Remove UEFI boot support from optical media
Note:
- This section mentions removing UEFI boot support from a CD/DVD only (Optical Media booting via EL Torito), not from a USB flash drive.
- In order to hide the UEFI equipment on USB stick, use a partition editor after having copied the ISO to the flash drive. Remove the partition of type . Do not accept offers to convert to GPT.
Most of the 32-bit EFI Macs and some 64-bit EFI Macs refuse to boot from a UEFI(X64)+BIOS bootable CD/DVD. If one wishes to proceed with the installation using optical media, it might be necessary to remove UEFI support first.
Extract the ISO skipping the UEFI-specific directories:
$ mkdir extracted_iso $ bsdtar -x --exclude=EFI/ --exclude=loader/ -f archlinux-version-x86_64.iso -C extracted_iso
Then rebuild the ISO, excluding the UEFI optical media booting support, using from . Be sure to set the correct volume label, e.g. ; it can be acquired using on the original ISO.
Burn to optical media and proceed with installation normally.
This article or section needs expansion.
Tip: Archboot iso supports booting on 32-bit (IA32) UEFI systems.
Using GRUB
This section describes how to setup GRUB as the USB’s UEFI bootloader.
- .
- for 32-bit UEFI systems by running the following commands:
# echo 'configfile ${cmdpath}/grub.cfg' > /tmp/grub.cfg
# grub-mkstandalone -d /usr/lib/grub/i386-efi -O i386-efi --modules="part_gpt part_msdos" --locales="en@quot" --themes="" -o "/mnt/EFI/BOOT/BOOTIA32.EFI" "boot/grub/grub.cfg=/tmp/grub.cfg" -v
Create /mnt/EFI/boot/grub.cfg with the following contents (replace ARCH_YYYYMM with the ISO 9660 volume label e.g. ARCH_202010):
Tip:
- The ISO’s volume label can be acquired using .
- The given configuration entries can also be entered inside a .
/mnt/EFI/boot/grub.cfg
insmod part_gpt
insmod part_msdos
insmod fat
insmod all_video
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
insmod gfxterm
set gfxmode="1024x768x32;auto"
terminal_input console
terminal_output gfxterm
fi
menuentry "Arch Linux install medium (x86_64, UEFI)" {
set gfxpayload=keep
search --no-floppy --set=root --label ARCH_YYYYMM
linux /arch/boot/x86_64/vmlinuz-linux archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap
initrd /arch/boot/intel-ucode.img /arch/boot/x86_64/initramfs-linux.img
}
During installation, in the , using the option .
Create UEFI bootable USB from ISO
Note: The instructions below are specifically for Archiso /official media; Archbootpreparation is identical, with this instead of the one mentioned below (which is for Archiso) and without the filesystem label requirement.
Note: The USB can use either MBR or GPT partition table. The filesystem should be either FAT32 (recommended) or FAT16. FAT12 is designed for floppy drives and therefore not recommended for USB drives.
First create a MBR partition table in the USB using fdisk. Mount the USB partition and create a FAT32 filesystem with LABEL as used in the Archiso configuration.
# mkdir -p /mnt/{usb,iso}
# mount -o loop archlinux-2012.12.01-dual.iso /mnt/iso
Obtain the label from ; this is used by the hook in initramfs to identify the udev path to the installation media.
# awk 'BEGIN {FS="="} /archisolabel/ {print $3}' /mnt/iso/loader/entries/archiso-x86_64.conf | xargs mkfs.vfat /dev/sdXY -n
Mount the newly created FAT32 USB partition, and copy the contents of the installation media to the USB media.
# mount /dev/sdXY /mnt/usb
# cp -r /mnt/iso/* /mnt/usb
# umount /mnt/{usb,iso}
# sync
If you find the error: «No loader found. Configuration files in /loader/entries/*.conf are needed.« A possible fix is to use a different uefi bootloader to the included one, gummiboot.
Download refind-efi pkg and extract the file from within the package to (overwrite or rename any existing file).
Then copy this text to . Take care that the label in the Arch menu section ( here) matches that of your usb’s.
refind.conf
timeout 5
textonly
showtools about,reboot,shutdown,exit
# scan_driver_dirs EFI/tools/drivers_x64
scanfor manual,internal,external,optical
scan_delay 1
dont_scan_dirs EFI/boot
max_tags 0
default_selection "Arch Linux Archiso x86_64 UEFI USB"
menuentry "Arch Linux Archiso x86_64 UEFI USB" {
loader /arch/boot/x86_64/vmlinuz
initrd /arch/boot/x86_64/archiso.img
ostype Linux
graphics off
options "archisobasedir=arch archisolabel=ARCH_201302 add_efi_memmap"
}
menuentry "UEFI x86_64 Shell v2" {
loader /EFI/shellx64_v2.efi
graphics off
}
menuentry "UEFI x86_64 Shell v1" {
loader /EFI/shellx64_v1.efi
graphics off
}
You should now be able to successfully boot, and you can choose which EFI you’d like to load.
Как исправить ошибки EFI Shell при загрузке ПК
- Подключите жесткий диск в другой порт
- Отключить MSI Fast Boot или UEFI Boot в BIOS
- Удалить CMOS аккумулятор
Решение 1. Подключите жесткий диск к другому порту
Первый шаг, с которым мы сталкиваемся как возможное решение, – это изменение порта жесткого диска. По-видимому, переключая порты SATA, некоторым пользователям удалось получить EFI (Extensible Firmware Interface). Это, конечно, указывает на некоторые аппаратные проблемы, поэтому, даже если ваш компьютер может загрузиться в систему, всегда есть страх перед HDD или, что менее вероятно, проблемами с материнской платой.
Кроме того, если вы застряли в цикле загрузки, попробуйте выключить компьютер и переключить слоты оперативной памяти. Если у вас есть две RAM-карты, поменяйте их местами. Также рекомендуется отключить все USB-устройства, за исключением клавиатуры.
Попробуйте загрузиться снова и ищите изменения. Если вы можете получить доступ к настройкам загрузки, убедитесь, что жесткий диск находится в верхней части списка. Если вы не видите свой жесткий диск в списке загрузочных дисков, мы, скорее всего, обратимся к проблеме с оборудованием.
Решение 2. Отключите MSI Fast Boot или UEFI Boot в BIOS
Каждый OEM материнской платы имеет несколько конкретных настроек. Хотя некоторые из них являются уловками, такие функции, как MSI Fast Boot, часто используются для ускорения загрузки в систему.
Однако, похоже, что эта функция не работает должным образом с Windows 10. Некоторые пользователи смогли выйти из оболочки EFI, отключив эту функцию.
Кроме того, если у вас UEFI загружается где-то в настройках EFI, отключите его. Это еще одна возможная причина проблемы. Кроме того, попробуйте сбросить настройки EFI до заводских настроек по умолчанию. Таким образом, вы будете уверены, что никаких изменений не было.
ОТНОСИТЕЛЬНО: 5 лучших программ для восстановления загрузки Windows 10, чтобы оживить ваш компьютер в 2019 году
Решение 3 – Удалить батарею CMOS
Наконец, если ни один из предыдущих шагов не вывел вас из EFI Shell, мы можем предложить только одно решение. А именно, конфигурация BIOS/UEFI может быть повреждена, и единственный реальный способ решить эту проблему в этом текущем состоянии – извлечь батарею CMOS.
Таким образом, вся кэшированная конфигурация будет сброшена, и вы сможете загрузить систему. Конечно, это означает, что все жесткие диски работоспособны.
Это не совсем сложно. Просто выключите компьютер и удалите все кабели. Получите доступ к внутренней части корпуса, и где-то посередине материнской платы вы увидите батарею для ручных часов. Удалите его и вставьте снова. Подключи все и попробуй еще раз. Если жесткий диск распознан и установлен в качестве первого варианта загрузки, рассмотрите возможность переустановки системы. Просто не забудьте сделать резервную копию ваших файлов.
Если у вас есть альтернативные решения, о которых мы забыли упомянуть, обязательно сообщите нам об этом в разделе комментариев ниже.
The help Command:
The help command is used to find EFI Shell commands using patterns.
For example, to find all the EFI Shell commands that start with m, you can run the help command as follows:
Shell> help m*
All the EFI Shell commands that start with m are listed, as you can see in the screenshot below.

In the same way, you can find all the EFI Shell commands that end with m as follows:
Shell> help *m
All the EFI Shell commands that end with m are listed, as you can see in the screenshot below.

You can also learn how to use an EFI Shell command, what options they support, and what each option does use the help command. Finally, you can compare it to the Linux man command.
For example, to learn how to use the alias command, run the help command as follows:
Shell> help alias
A lot of information about the help command should be displayed.
If the help information of a certain command is very long, you can press the <Page Up> and <Page Down> keys of your keyboard to scroll up and down, respectively.

If the output is way too long, then you will need a pager to read it. Again, you can compare it to the Linux less program. But unlike the Linux less program, the EFI Shell pager scrolls page by page instead of lines.
To use a pager for the help command, use the -b option of the help command as follows:
Shell> help -b alias
The usage information of the alias command is displayed in a pager, as you can see in the screenshot below.
You can press <Enter> to go to the next page.
To close the pager, press q and then press <Enter>.

Как перейти в UEFI из Windows 10
На девайсах с BIOS для перехода к настройкам низкоуровневого ПО нужно перезагружать устройство и нажимать назначенную для этой цели клавишу или сочетание клавиш, тогда как перейти к UEFI можно также прямо из интерфейса операционной системы. Если компьютером не предусмотрена такая возможность, например, девайс работает в режиме эмуляции BIOS, тогда в UEFI переходим стандартным способом – нажатием назначенной клавиши. Это обычно Del, F2, Fn+F2 или пр., для разных материнских плат клавиши или их комбинации могут отличаться, эта информация обычно указывается на начальном экране при загрузке компьютера.
Рассмотрим, как войти в UEFI из Windows 10:
Установка Windows UEFI
Установка windows через BIOS кардинально отличается от установки через UEFI. Первым делом необходимо создать загрузочную флешку. Одна из самых подходящих для таких целей программ – утилита Rufus 1.4.6. Она бесплатная, не требует установки и поэтому не занимает много места на жестком диске или съемном носителе
Что важно , она подходит для GPT-разметки жесткого диска и может работать со спецификацией UEFI. Подходящее обновление утилиты можно скачать на официальном веб-сайте разработчиков
Запускаем утилиту и указываем название флешки, предназначенной для установки(предварительно нужно удалить важные файлы, очистив память). В пункте «File system» (файловая система) выбираем FAT 32, далее в качестве схемы раздела – GPT (GUID Partition Table), системный интерфейс – UEFI. Поставьте галочку у пункта «Create a bootable disk using:» (создать загрузочное устройство с использованием…), выберите рядом ISO Image и укажите полный путь к ISO-образу операционной системы Windows.
После введения всех описанных параметров можно нажимать на « Start » и программа самостоятельно подготовит флеш-накопитель к загрузке ОС. Время, затраченное на этот процесс, зависит от быстродействия вашего компьютера и от поколения USB.
Если работа утилиты Rufus вас не устраивает или появляются проблемы с загрузкой UEFI, можно использовать абсолютно аналогичную программу, которая называется WinSetupFromUSB.
Скачивание также доступно на сайте производителя, а ее название (в переводе «Загрузка Windows с USB») говорит само за себя. Загрузочная флешка создается полностью аналогично, так как программы имеют практически одинаковый интерфейс.
Как делать не надо
Есть, на самом-то деле, несколько способов настроить UEFI-загрузку. Я начну с описания других вариантов — чтобы было понятно, как (и почему) делать не надо. Если вы пришли за руководством — мотайте в самый низ.
Не надо лезть в NVRAM и трогать efivars
Наиболее «популярная» процедура установки загрузчика в систему такова: установщик ОС создаёт специальный раздел, на нём — структуру каталогов и размещает файлы загрузчика. После этого он с помощью особой утилиты (efibootmgr в linux, bcdedit в windows) взаимодействует с прошивкой UEFI-чипа, добавляя в неё загрузочную запись. В этой записи указывается путь к файлу загрузчика (начиная от корня файловой системы) и при необходимости — параметры. После этого в загрузочном меню компьютера появляется опция загрузки ОС. Для linux существует возможность вообще обойтись без загрузчика. В загрузочной записи указывается путь сразу к ядру вместе со всеми параметрами. Ядро должно быть скомпилировано с опцией EFISTUB (что давно является стандартом для большинства дистрибутивов), в этом случае оно содержит в себе заголовок «исполняемого файла EFI», позволяющий прошивке его запускать без внешнего загрузчика.
При старте системы, когда пользователь выбирает нужную ему загрузочную запись, прошивка UEFI сперва ищет на прописанном в этой записи диске особый EFI-раздел, обращается к файловой системе на этом разделе (обязательно FAT или FAT32), и запускает загрузчик. Загрузчик считывает из файла настроек свой конфиг, и либо грузит ОС, либо предоставляет загрузочное меню. Ничего не замечаете? Да, у нас два загрузочных меню — одно на уровне прошивки чипа UEFI, другое — на уровне загрузчика. В реальности о существовании второго пользователи могут даже не догадываться — если в меню всего один пункт, загрузчик Windows начинает его грузить без лишних вопросов. Увидеть экран с этим меню можно, если поставить вторую копию Windows или просто криво её переустановить.
Обычно для управления загрузочными записями руководства в интернете предлагают взаимодействовать с прошивкой UEFI. Есть аж пять основных вариантов, как это можно сделать: efibootmgr под linux, bcdedit в windows, какая-то софтина на «Маках», команда bcfg утилиты uefi shell (запускается из-под UEFI, «на голом железе» и без ОС, поскольку скомпилирована в том самом особом формате) и для особо качественных прошивок — графическими средствами UEFI (говоря популярным языком, «в настройках BIOS»).
За всеми вышенаписанными «многобуков» вы могли легко упустить такую мысль: пользователь, чтобы изменить настройки программной части (например, добавить параметр запуска ОС), вынужден перезаписывать flash-память микросхемы на плате. Есть ли тут подводные камни? О да! Windows иногда способна сделать из ноутбука кирпич, linux тоже, причём . Качество прошивок часто оставляет желать лучшего — стандарты UEFI либо реализованы криво, либо не реализованы вообще. По логике, прошивка обязана переживать полное удаление всех переменных efivars без последствий, не хранить в них критичных для себя данных и самостоятельно восстанавливать значения по-умолчанию — просто потому что пользователь имеет к ним доступ, и вероятность их полного удаления далека от нуля. Я лично в процессе экспериментов неоднократно (к счастью, обратимо) «кирпичил» свой Lenovo — из загрузочного меню исчезали все пункты, включая опцию «зайти в настройки».
Работа с загрузочными записями UEFI — тоже не сахар. К примеру, утилита efibootmgr не имеет опции «редактировать существующую запись». Если ты хочешь немного изменить параметр ядра — ты удаляешь запись целиком и добавляешь её снова, уже измененную. При этом строка содержит в себе двойные и одинарные кавычки, а также прямые и обратные слеши в не особо очевидном порядке. Когда я наконец заставил эту магию работать — я сохранил её в виде bash-скриптов, которые до сих пор валяются у меня в корневой ФС:
Не надо использовать GRUB
Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе — гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь — надо обязательно лезть в документацию
Для сравнения — самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой
Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на EFI-раздел и добавляет свою загрузочную запись в прошивку. А конфиг для неё занимает ровно СЕМЬ строчек.
Remove UEFI boot support from ISO
Warning: In the event that UEFI+isohybrid El Torito/MBR really causes problems, it would be better to just UEFI boot using the USB stick instructions in the previous section
Most of the 32-bit EFI Macs and some 64-bit EFI Macs refuse to boot from a UEFI(X64)+BIOS bootable CD/DVD. If one wishes to proceed with the installation using optical media, it might be necessary to remove UEFI support first.
Mount the official installation media and obtain the as shown in the previous section.
Rebuild the ISO using from libisoburn :
$ xorriso -as mkisofs -iso-level 3 \
-full-iso9660-filenames\
-volid "ARCH_201212" \
-appid "Arch Linux CD" \
-publisher "Arch Linux <https://www.archlinux.org>" \
-preparer "prepared like a BAWSE" \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr "/mnt/iso/isolinux/isohdpfx.bin" \
-output "~/archiso.iso" "/mnt/iso/"
Burn to optical media and proceed with installation normally.
MBR горит красным или желтым
После того как вы скачали программу, распаковываем архив в любое удобное место, и в зависимости от разрядности системы запускаем BOOTICEx64_2016.06.17_v1.3.4.0.exe для 64 разрядных систем и BOOTICEx86_2016.06.17_v1.3.4.0.exe для 32 разрядных.
После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.
Затем нажимаем кнопку «Process MBR», откроется окно с выбором типа загрузочной записи, выбираем последний вариант, как на картинке ниже, и нажимаем кнопку «Instal/Config»
Затем в открывшемся окошке нажимаем на кнопку «Windows NT 6.x MBR».
После завершения процесса записи загрузочной части утилита уведомит вас об этом уведомлением. Нажимаем ОК.
После этого закрываем программу и заново выбираем диск в WinNTSetup. Теперь огонек около MBR, должен гореть зеленым.
Мультизагрузка в UEFI
С самого начала массового распространения персональных компьютеров, время от времени вставала задача развертывания нескольких операционных систем на одном ПК, в котором мог размещаться один или несколько физических носителей. Не так давно ситуацию существенно изменило открытие технологии виртуализации, но полностью проблему это не сняло. В классическом своём понимании, применительно к станциям, загружающимся по традиционному способу PC/AT BIOS с использованием классической разметки MBR, мультизагрузка представляла собой сторонний код в главном загрузочном секторе (MBR), который загружает так называемый менеджер загрузки (мультизагрузчик), хранящий настройки для каждой установленной на компьютере операционной системы и предоставляющий меню выбора загрузки той или иной ОС. Если говорить про наше время, то есть про мультизагрузку применительно к носителя, разбитым уже при помощи GPT разметки, то теперь многое изменилось. Как мы уже отмечали, UEFI напрямую умеет работать с GPT-дисками, поэтому задача по установке нескольких операционных систем существенно упрощается. Теперь все функции мультизагрузчика берет на себя встроенный UEFI Boot Manager, принципы функционирования которого мы описали выше. Инсталлятору ОС достаточно лишь сделать то, с чем он и так прекрасно справляется: разместить загрузчик на специальный раздел ESP в «свою» иерархию директорий, после чего этот загрузчик становится «видимым» в настройках UEFI. Помимо установщика ОС, теперь и сам пользователь при помощи настроек (графического/текстового интерфейса UEFI) может вручную добавить загрузчик, находящийся на любом подключенном и видимом системой физическом носителе. Все эти добавленные различными способами загрузчики становятся доступными через Меню загрузки, которое пользователь может настраивать/вызывать непосредственно во время работы UEFI, то есть на начальной стадии загрузки ПК. Другими словами, мультизагрузка в UEFI просто вопрос запуска UEFI-приложений (загрузчиков конкретных ОС), размещающихся на подключенных носителях на специальном разделе ESP в иерархии директорий с корнем в .