Время прочтения
6 мин
Просмотры 500K
Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?
Я обещал «самое краткое руководство». Вот оно:
- Создаём на диске таблицу разделов GPT
- Создаём FAT32-раздел на пару сотен мегабайт
- Скачиваем из интернета любой UEFI-загрузчик
(нам нужен сам загрузчик, это один бинарный файл!) - Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
- Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
(настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете) - После перезагрузки видим меню загрузчика
(Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)
TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному «пути по-умолчанию», где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается
Как делать не надо
Есть, на самом-то деле, несколько способов настроить 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-скриптов, которые до сих пор валяются у меня в корневой ФС:
efibootmgr -c -L "Archlinux (debug)" -l 'EFIarchlinuxvmlinuz-linux' -u "root=/dev/mapper/vg1-lvroot rw initrd=EFIarchlinuxinitramfs-linux.img systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M enforcing=0"
Не надо использовать GRUB
Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе — гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь — надо обязательно лезть в документацию
grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub
Для сравнения — самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой
bootctl install --path=/boot
Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на EFI-раздел и добавляет свою загрузочную запись в прошивку. А конфиг для неё занимает ровно СЕМЬ строчек.
«Самое краткое руководство» — чуть более подробно
Загрузочное меню надо реализовывать на уровне загрузчика — править текстовые конфиги гораздо проще и безопасней.
Загрузочная запись нам не нужна — дело в том, что при выставлении в настройках BIOS загрузки с диска прошивка UEFI сначала ищет на нём EFI-раздел, а затем пытается исполнить файл по строго фиксированному адресу на этом разделе: /EFI/Boot/BOOTX64.EFI
Что такое «EFI-раздел»? В теории, он должен иметь особый тип «EFI System» (ef00). На практике, годится первый раздел на GPT-диске, отформатированный в FAT32 и имеющий достаточно места, чтобы разместить загрузчик и вспомогательные файлы (если есть).
Пункт 3: «Скачиваем из интернета любой UEFI-загрузчик». Что это значит? Загрузчик — это просто исполняемый файл определенного формата, к которому в комплекте идет конфиг. К примеру, если у вас есть под рукой установленный пакет с systemd — файл загрузчика можно найти по адресу /usr/lib/systemd/boot/efi/systemd-bootx64.efi, переименовать его в bootx64.efi и скопировать в /EFI/Boot/ на EFI-разделе. Нет под рукой systemd? Скачайте архив с сайта Archlinux. Или с репозитария Ubuntu. Или Debian. Есть под рукой система с Windows? Возьмите виндовый загрузчик оттуда, тоже сгодится )) Если сумеете настроить, я честно говоря не пробовал.
Пункт 4: «Настроить конфиг». Как и обычная программа, когда загрузчик запускается — он ожидает найти по определенным путям файлы конфигурации. Обычно эту информацию легко найти в интернете. Для загрузчика systemd-boot нам необходимо в корне EFI-раздела создать каталог «loader», а в нём файл «loader.conf» с тремя строчками (привожу свои):
default archlinux
timeout 10
editor 1
Параметр editor отвечает за возможность отредактировать пункт загрузочного меню перед запуском.
Рядом с loader.conf необходимо создать каталог entries — один файл в нём будет отвечать за одну загрузочную запись в boot-меню. У меня там один файл arch.conf с таким содержанием:
title Arch Linux
linux /efi/archlinux/vmlinuz-linux
initrd /efi/archlinux/initramfs-linux.img
options root=/dev/mapper/vg1-lvroot rw initrd=EFIarchlinuxintel-ucode.img
Я не упомянул, но довольно очевидно — ядро и initramfs должны лежать в одной файловой системе с загрузчиком, то есть на EFI-разделе. Пути к ним в конфигах отсчитываются от корня этой ФС.
Другие загрузчики
systemd-boot очень простой и предоставляет спартанского вида чёрно-белое меню. Есть варианты красивей, если душа просит красоты.
rEFind — очень красивый загрузчик. Скачать можно тут в виде deb-пакета. Использую на своём ноуте. Умеет создавать загрузочное меню автоматически, без конфига — просто сканируя файлы.
Clover. Позволяет выставлять нативное разрешение экрана, имеет поддержку мыши на экране загрузки, разные темы оформления. Дефолтная тема ужасна, конфиг в виде xml нечитаем, настроить не смог.
Различные неочевидные последствия
Вы можете легко попробовать эту схему в работе. Берёте USB-флешку, форматируете в таблицу разделов GPT, создаете FAT-раздел и копируете туда загрузчик. Комп сможет с неё стартовать.
Если просто скопировать на такую флешку boot-раздел установленного linux — система будет спокойно загружаться с флешки, не видя разницы.
- Печать
Страницы: [1] 2 3 Все Вниз
Тема: Редактирование раздела EFI и загрузчика UEFI [Решено] (Прочитано 18141 раз)
0 Пользователей и 1 Гость просматривают эту тему.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
AndreyMos
Добрый день.
Искал в сети инфу по этому вопросу, но что-то не много нашел, поэтому пишу здесь.
Устанавливал несколько раз Ubuntu и теперь имею в меню загрузки UEFI несколько одинаковых строчек ubuntu, которые загружают одну и ту же систему.
Хочу от них избавиться. Читал, что можно редактировать меню в самом UEFI. Но! Эти пункты (строки) появились после установки ОС, значит, наверное, в разделе EFI имеются записи или какие-то куски загрузчиков, которые эти пункты в меню и обуславливают.
Если просто удалить пункты в меню, то огрызки загрузчиков (на диске в разделе EFI), очевидно, останутся? Значит надо править сам раздел EFI.
Правильно ли я понимаю ситуацию и как это из под Винды сделать?
ТС не появлялся на Форуме более трех месяцев по состоянию на 25/02/2020 (последняя явка: 11/05/2019). Модератором раздела принято решение закрыть тему.
—zg_nico
« Последнее редактирование: 18 Марта 2020, 11:47:53 от zg_nico »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
andytux
что можно редактировать меню в самом UEFI
Да. И не можно, а нужно.
наверное, в разделе EFI имеются записи или какие-то куски загрузчиков
Нет. Загрузчик один. Оставьте один пункт в меню УЕФИ, который вам больше нравится.
Значит надо править сам раздел EFI.
Не надо. В общем случае это не связано с количеством загрузчиков. Загрузчиков может вообще не быть, а записи в меню УЕФИ останутся.
Все это зависит только от вашего конкретного УЕФИ. Изучайте его. Вам с ним жить.
Правильно ли я понимаю ситуацию
Неправильно.
как это из под Винды сделать?
Спрашивайте у винды. В Ubuntu это делается утилитой efibootmgr.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
AndreyMos
Понятно, спасибо. Значит буду править само меню UEFI
А как бы узнать, что за папки и файлы лежат в разделе EFI? там есть папка Boot, а есть ещё и ubuntu. хочется понять назначение папок и файлов, лежащих в них
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Sydybyl
Notebook W54_W94_W955TU, Arch linux KDE.
«Чем больше я узнаю, тем больше я понимаю как много я не знаю».
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
AndreyMos
Да. И не можно, а нужно.
В самом UEFI нет возможности править меню. Можно запретить пункты меню, но при загрузке и нажатии клавиши F12 все эти пункты все-равно видны.
Зато они не видны (пропадают), если отключить (физически) жёсткий диск. Получается, что меню UEFI зависит от записей на жёстком диске? То есть в разделе EFI?
Вот эта efibootmgr редактирует память на материнке (прошивку) или записи в разделе EFI на диске
« Последнее редактирование: 21 Апреля 2019, 15:53:03 от AndreyMos »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
andytux
Получается, что меню UEFI зависит от записей на жёстком диске?
Как я писал, это зависит от вашего конкретного УЕФИ.
В некоторых УЕФИ автоматически сам добавляет и удаляет записи, в зависимости от того, какие загрузчики найдет.
В некоторых нужно самому добавлять и удалять.
В самом UEFI нет возможности править меню.
Зачастую, появляется больше настроек, если установить пароль на УЕФИ. Если установите пароль, то хорошенько его запомните. А лучше запомните и запишите. Т.к. если забудите, то сбросить его будет весьма проблематично, иногда невозможно.
Иногда бывает установлен UEFI shell. Все операции с УЕФИ можно делать в нем.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
vladimirzhuravlev
Я убираю записи оттуда с помощью виндового приложения bootice, выбираем опцию UEFI > Edid boot entries и в оконце видим все записи. Выбираем не нужную, лишнюю и Del.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
AndreyMos
Попробовал efiboomgr (из Линукса) и вот эту bootice. Обе программы удаляют записи из меню UEFI, а когда загружаешься, то опять те же пункты в меню: 3 ubuntu
Кривая UEFI у меня?? не хочет удалять записи
В некоторых УЕФИ автоматически сам добавляет и удаляет записи, в зависимости от того, какие загрузчики найдет.
Так вот почему UEFI добавляет пункт ubunte целых три раза? добавил бы один раз и все
« Последнее редактирование: 21 Апреля 2019, 21:57:54 от AndreyMos »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
vladimirzhuravlev
Там с этим довольно сложно всё, наверное подписи ОС различные которые мы не видим. Ну и как выше написали, версии прошивок UEFI очень разные на железках, у меня получается удалять на 2-х компах на которых чаще экспериментирую.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
andytux
что за папки и файлы лежат в разделе EFI?
Если кратко, то…
Для загрузки в режиме EFI загрузчики распологаются на ESP-разделе с файловой системой FAT32, с флагами «boot,esp».
EFI/BOOT — в этом какалоге UEFI будет искать загрузчики.
BOOTX64.EFI — загрузчик по умолчанию. Любой UEFI обязан уметь его загружать. На все остальные в принципе может наплевать.
Загрузчик виндовс называется bootmgfw.efi. Загрузчик груб обычно называется grubx64.efi. Но может быть и другое имя.
При включенном «secure boot», используется специальный подписанный загрузчик shimx64.efi. Но может иметь другое имя. Например, на образе Ubuntu он называется BOOTX64.EFI.
UEFI запускает shimx64.efi, а он запускает grubx64.efi. Поэтому, в UEFI обычно как минимум две записи: одна для shim, другая для grub.
/EFI/Microsoft — здесь находятся файлы, необходимые для работы загрузчика виндовс.
/EFI/ubuntu — здесь находятся файлы, необходисые для загрузчика груб.
В образе Ubuntu файлы груб находятся в каталоге /boot/grub.
« Последнее редактирование: 22 Апреля 2019, 15:56:04 от andytux »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
zg_nico
Правильно ли я понимаю ситуацию и как это из под Винды сделать?
Правильно ли я понимаю ситуацию: Ubuntu у Вас удалена, и пользоваться Вы ею не намерены, — установлена сейчас Windows, и вопрос посвящен исключительно тому, что Вы хотите почистить UEFI от остатков Ubuntu полностью?
Обе программы удаляют записи из меню UEFI, а когда загружаешься, то опять те же пункты в меню
Программу bootice запускали от имени администратора? Если нет — то поведение как раз то, что Вы описываете. С efibootmgr скорее всего что-то не так сделали (не верно задали параметры командной строки).
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb. Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Morisson
Вы про загрузочные записи или про старые ядра в grub?
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Morisson
┌─ jeronimo {Linux 5.0.8-zen1-1-zen x86_64} /home/jeronimo [21:43:21]
— удаляется запись под номером 0001
└─> $ sudo efibootmgr
[sudo] пароль для jeronimo:
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0000
Boot0000* ArchLinux
Boot0001* Arch
┌─ jeronimo {Linux 5.0.8-zen1-1-zen x86_64} /home/jeronimo [21:43:41]
└─> $ sudo efibootmgr -b 0001 -B
Если вы про загрузочные записи UEFI
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Morisson
Виндовую запись так тоже можно удалить. Но, если есть загрузчик винды- он ее опять создаст
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
AndreyMos
Спасибо за ответы. Пару дней не было доступа к Интернету, так что сорри, что не ответил.
Значит у меня стоит Ubuntu на одном винте и Винда на другом. При нажатии F12 (при старте) вылезают три строчки с просто ubuntu, одна с UEFI Ubuntu, одна с Windows boot manager, и еще для обоих жестких дисков по строчке. Строчки с жесткими дисками выбирать не пробовал — не знаю, что будет. Каждый ubuntu загружает одну ту же Ubuntu. На кой мне три строчки с одной и той же реакцией??
bootice запускал просто кликом, возможно, вы правы, что я не от админа запускал. Попробую это сделать.
- Печать
Страницы: [1] 2 3 Все Вверх
4 ответы
- Загрузитесь с помощью любого инструмента Linux, который позволяет разбивать диск. …
- Запустите инструмент разбиения на разделы по вашему выбору.
- При необходимости создайте новый раздел. …
- Поместите файловую систему FAT32 в раздел. …
- Отметьте указанный раздел как ESP.
- Снимите отметку или удалите старый ESP.
- При необходимости сохраните изменения.
Как мне найти свой раздел EFI в Windows 10?
3 ответы
- Откройте окно командной строки администратора, щелкнув правой кнопкой мыши значок командной строки и выбрав вариант запуска от имени администратора.
- В окне командной строки введите mountvol P: / S. …
- Используйте окно командной строки для доступа к тому P: (системный раздел EFI или ESP).
Что такое раздел EFI в Windows 10?
Раздел EFI (аналогично разделу, зарезервированному системой на дисках с таблицей разделов MBR), хранит хранилище конфигурации загрузки (BCD) и ряд файлов, необходимых для загрузки Windows. Когда компьютер загружается, среда UEFI загружает загрузчик (EFIMicrosoftBootbootmgfw.
Нужен ли системный раздел EFI?
Да, при использовании режима UEFI всегда требуется отдельный раздел EFI (в формате FAT32). ~ 300 МБ должно быть достаточно для мультизагрузки, но предпочтительнее ~ 550 МБ. ESP — EFI System Partiton — не следует путать с / boot (не требуется для большинства установок Ubuntu) и является стандартным требованием.
Должен ли быть раздел EFI первым?
UEFI не накладывает ограничений на количество или расположение системных разделов, которые могут существовать в системе. (Версия 2.5, стр. 540.) На практике рекомендуется ставить ESP на первое место, потому что на это местоположение вряд ли повлияют операции перемещения и изменения размера раздела.
Нужен ли Windows 10 раздел EFI?
Системный раздел 100 МБ — необходим только для Bitlocker. … Вы можете предотвратить создание этого в MBR, используя приведенные выше инструкции.
Как мне найти свой раздел EFI?
Если значение типа, показанное для раздела, — C12A7328-F81F-11D2-BA4B-00A0C93EC93B, то это системный раздел EFI (ESP) — см. Пример системного раздела EFI. Если вы видите системный зарезервированный раздел размером 100 МБ, значит, у вас нет раздела EFI, и ваш компьютер находится в устаревшем режиме BIOS.
Что такое системный раздел EFI и нужен ли он мне?
Системный раздел EFI (ESP) — это раздел на устройстве хранения данных (обычно на жестком диске или твердотельном накопителе), который используется компьютерами, поддерживающими Unified Extensible Firmware Interface (UEFI).
Сколько разделов создает Windows 10?
Поскольку Windows 10 установлена на любой машине с UEFI / GPT, она может автоматически разбивать диск на разделы. В этом случае Win10 создает 4 раздела: восстановление, EFI, Microsoft Reserved (MSR) и разделы Windows. Никаких действий пользователя не требуется. Один просто выбирает целевой диск и нажимает «Далее».
Что произойдет, если я удалю раздел EFI?
Если по ошибке удалить раздел EFI на системном диске, Windows не загрузится. Иногда, когда вы переносите свою ОС или устанавливаете ее на жесткий диск, она может не создать раздел EFI и вызвать проблемы с загрузкой Windows.
Могу ли я удалить системный раздел EFI?
Любой сторонний редактор разделов также сможет удалить системный раздел EFI. Примечание. Убедитесь, что система на самом деле не использует этот системный раздел EFI для загрузки вашей ОС.
В чем разница между EFI и UEFI?
UEFI — это новая замена BIOS, efi — это имя / метка раздела, в котором хранятся загрузочные файлы UEFI. В некоторой степени сопоставима с MBR с BIOS, но гораздо более гибкая и позволяет сосуществовать нескольким загрузчикам.
Может у вас два раздела EFI?
На одном диске может быть несколько системных разделов EFI. Установщику Windows это не нравится, но он не повлияет на фактический процесс загрузки после его установки.
Что такое загрузка из файла EFI?
Файлы EFI — это загрузчики UEFI, и вот как они работают
Они являются исполняемыми файлами загрузчика, существуют в компьютерных системах на основе UEFI (Unified Extensible Firmware Interface) и содержат данные о том, как должен происходить процесс загрузки.
Aptio V UEFI Editor (AMIBCP alternative)
https://boringboredom.github.io/UEFI-Editor/
Usage guide
Prerequisites
- UEFITool NE (press
Show all 14 assets
) - UEFITool 0.28.0 (why?)
- IFR Extractor
- UEFI Editor
Extracting the necessary files
-
Drag and drop the BIOS file into
UEFITool NE
. -
Search (
CTRL + F
) for a known setting. -
Double-click the reference to
Setup/PE32 image section
at the bottom. -
Extract
PE32 image section
as is
. -
Move
ifrextractor.exe
to the current folder, open the command line inside and convert the.sct
file you just extracted.ifrextractor.exe "Section_PE32_image_Setup_Setup.sct" verbose
-
Scroll down inside the currently expanded section and find
AMITSE
andsetupdata
(sometimes both required files are underAMITSE
). ExtractPE32 image section
as is
andsetupdata
asbody
.
-
Upload the 4 files to the
UEFI Editor
page.
Using the UEFI Editor GUI
-
Navigation
- Dotted underlined text has references to Forms and can be clicked.
-
Menu
-
You can change the target Form of top-level references here. This is useful for UEFIs that have a custom
Advanced
Form.
-
E.g. on MSI boards you can replace
OC Profiles
withAdvanced
(child ofSetup
) to gain access to a lot of Forms that are otherwise inaccessible due to missing references while still retaining access toOC Profiles
. PressESC
after selectingOC Profiles
to accessSetup
.
-
-
Item visibility control
-
If one method doesn’t work, try the other one. Using both at the same time can cause issues. It varies from UEFI to UEFI.
-
Suppress If
-
A
Suppress If
opcode hides nested items if the condition is true. The presence of aSuppress If
opcode doesn’t always mean the condition is true. However, if it is, you can remove the suppression by unchecking the offset.
-
-
Access level
-
Another method of controlling item visibility is changing the access level.
05
usually works. Here is a forum post by Lost_N_BIOS with possible access level values (CTRL + F
05/Yes
).
-
-
Inserting modified files
-
Press the
UEFI Files
download button to download the modified files and the change log. -
To find the correct sections in
UEFITool 0.28.0
you can search forFile GUID
s you copy fromUEFITool NE
. -
Replace files the same way you extracted them:
Extract as is
->Replace as is
andExtract body
->Replace body
Example for
Setup/PE32 image section
:UEFITool NE
:UEFITool 0.28.0
:
-
Save the modifications.
The section below is unrelated to the above tool.
How to change hidden settings without flashing a modded BIOS
Preparation
Download datasone’s modded shell and rename it to BOOTX64.EFI
.
Format a USB drive as FAT32
and move BOOTX64.EFI
to USB:EFIBOOT
(create the folders EFI
and BOOT
manually). The final path of the shell will be USB:EFIBOOTBOOTX64.EFI
.
Download your current BIOS version from the motherboard vendor’s site. The structure changes across different versions, so make sure you have the same BIOS.
Follow these instructions until and including the conversion with ifrextractor.exe
.
Disable Secure Boot
and CSM
and boot from the USB drive in UEFI mode.
Example
VarStore Guid: B08F97FF-E6E8-4193-A997-5E9E9B0ADB32, VarStoreId: 0x2, Size: 0x3C1, Name: "CpuSetup" { 24 1F FF 97 8F B0 E8 E6 93 41 A9 97 5E 9E 9B 0A DB 32 02 00 C1 03 43 70 75 53 65 74 75 70 00 }
OneOf Prompt: "Intel C-State", Help: "[...]", QuestionFlags: 0x10, QuestionId: 0x1EB, VarStoreId: 0x2, VarOffset: 0x14, Flags: 0x10, Size: 8, Min: 0x0, Max: 0x2, Step: 0x0 { 05 91 00 11 01 11 EB 01 02 00 14 00 10 10 00 02 00 }
OneOfOption Option: "Auto" Value: 2, Default, MfgDefault { 09 07 06 00 30 00 02 }
OneOfOption Option: "Enabled" Value: 1 { 09 07 03 00 00 00 01 }
OneOfOption Option: "Disabled" Value: 0 { 09 07 04 00 00 00 00 }
End { 29 02 }
Size
(not the VarStore
size) is shown in bits.
Value
is a decimal.
Syntax (READ THIS)
Writing
setup_var_cv VarStoreName VarOffset Size(bytes) Value(hexadecimal)
setup_var_cv CpuSetup 0x14 0x1 0x0
Reading
setup_var_cv VarStoreName VarOffset Size(bytes)
setup_var_cv CpuSetup 0x14 0x1
Miscellaneous
To exit and reboot, type:
Workarounds for various issues (e.g. multiple Setup
VarStores
): legacy commands
If something unexpected happens, force shutdown and reset CMOS.
В этой статье будет рассказано как удалить не используемые или не нужные записи в загрузчике Efi linux. Таким же способом можно почистить загрузчик любой операционной системы windows.
Вы ставите несколько операционных систем. Удаляете их и ставите другие снова.
В результате остаются старые записи о загрузке операционных систем которых уже нет. Приходит момент когда вы задумываетесь — как удалить не нужные записи.
Если вы используете для выбора загрузки, операционных систем, загрузчик Grub то установив утилиту Grub Customizer вы отредактируете не только загрузочные записи но и сам внешний вид. Достаточно поставить его на одну из установленных операционных систем Linux вашего компьютера.
Подробно о установке Grub Customizer вы можете почитать в этой статье.
Если вы хотите просто отредактировать загрузчик Efi linux, то вы сможете это сделать в любой операционной системе linux на вашем компьютере с помощью нескольких команд.
Для редактирования воспользуемся пакетом efibootmgr. Как правило он по умолчанию уже присутствует в большинстве операционных систем linux.
Для редактирование efi Linux установим пакет efibootmgr
Для установки efibootmgr введите команду в терминале
sudo apt install efibootmgr
Если пакет отсутствует то он будет установлен. Если он уже присутствует и установлен то вы увидите такое сообщение.
Смотрим меню efi linux
Для того, чтоб посмотреть все записи в вашем загрузочном меню efi linux вводим команду
sudo efibootmgr
Если у вас не используется efi то вам напишут, что efi не используется
Если на вашем компьютере используется загрузка efi вы увидите список с загрузочными записями операционных систем и их вариантов запуска.
Запись каждого загрузочного пункта системы в efi содержит свой номер
Теперь нам остается лишь определится — какая запись вам более не нужна и ввести команду для ее удаления
sudo efibootmgr --bootnum номер_записи --delete-bootnum
sudo efibootmgr — утилита efibootmgr запущенная от sudo
—bootnum номер_записи — указываем свой номер записи для удаления в виде цифр
—delete-bootnum — опция удаления
Например:
Нам нужно удалить 4 пункт в записи обозначенный как 0004*
Наша запись будет выглядеть так
sudo efibootmgr --bootnum 0004 --delete-bootnum
Для удаления нескольких записей.
Чтоб удалить несколько записей вам необходимо проделать процедуру повторно, указывая каждый раз нужную запись для удаления. Повторяем так, пока не удалите все лишние записи, которые являются не рабочими в вашем компьютере.
Если у вас windows и нет установленного linux
Если в данный момент у вас нет установленной операционной системы Linux или вы хотите отредактировать запись efi windows.
Вариант описанный выше тоже Вам подойдет. Все. что вам нужно, это скачать операционную систему Linux, сделать загрузочный диск или флешку с ней.
Загрузить ПК с флешки в linux live режиме. Потом запустить терминал и проделать все те же пункты описанные выше.
В результате не понадобится даже устанавливать Linux, а efi раздел бует почищен.
Рекомендую использовать для этого образ Linux mint.
Если есть что сказать или поделится опытом, пишите в комментариях.
Всем Удачи !
1 февраля 2022
- Главная
- Песочница
- Архив
- Полезности от Joker-2013
РЕДАКТИРУЕМ ВНЕШНИЙ ВИД МЕНЮ ЗАГРУЗКИ
Изначально вид загрузочного меню не особо красив,
можно это исправить, отредактировать и персонализировать.—Для этого потребуется:
Редактор ресурсов: Restorator 2007
BOOTICE для редактирования файла BCD
Программа для работы с образом диска: UltraISO
(нужна, если будем тестировать из образа)
Любой текстовый редактор, например: Notepad2
Виртуальная машина для тестирования, например: lilQEMU
UEFI загрузочный экран, тестируем на виртуальной машине: QemuBootTester
BOOTMGR_Recompiler для упаковки BOOTMGR
(Только при редактировании Bootmgr.exe)
И терпение…—
Скриншоты
Еще
Редактировать надо не запакованную версию BOOTMGR.exe или BOOTMGR.EXE.MUI
Обучаться лучше, редактируя BOOTMGR.EXE.MUI
(Так как не нужно корректировать размер файла: BOOTMGR.XSL и упаковывать каждый раз Bootmgr)
Открываем файл в RestoratorОткрываем ресурс в блокноте, запускаем поиск и вводим критерий для поиска: <Диспетчер загрузки Windows>Загрузочные экраны BOOTMGR имеются нескольких видов, в зависимости от ситуации и настроек, включается тот или иной экран!
И так в поисковой строке пишем <Диспетчер загрузки Windows> и запускаем поиск к первой найденной записи дописываем цифру 1 (Диспетчер загрузки Windows1)
Ко второй найденной записи 2, 3 и далее.
Это нужно, для того чтобы понять какой загрузочный экран нужно редактировать.
Сохраняем файл в блокноте, не закрывая блокнот.
Переносим ресурс в окно Restorator, подменяем его и сохраняем.
BOOTMGR.EXE.MUI переносим на загрузочный проект и тестируем.
Запускаем виртуальную машину и смотрим какая цифра написана после:
Диспетчер загрузки Windows (в примере: 3)
В данном меню мы и будем редактировать вид, менять надписи, расширять пункты, изменять фон…
Редактируем ресурс
Редактируем ресурс, продолжение
Удаление надписи
Удаляем меню Средства
Редактируем BCD в программе BOOTICE (режим профессиональный)
Тестируем. Вид загрузочного меню изменен.
Убираем стрелочки, если не нужны:
За отображение стрелок отвечает параметр: show-arrows=»true» . true-Да . false-Нет
Доступна палитра из 16 цветов
Что означает код: RGBI, XXXX и.т.д.
Представьте четыре выключателя и три лампочки
Каждый выключатель включает или отключает одну лампочку, четвертый типо димера, включает на полную яркость или в пол накала
Лампочки у нас R-красная G-зеленая B-синяя
Включаем R-красный. Выключаем X, вместо символа R, пишем символ X
Строка должна состоять из четырех символов, пример RGBI в данном случае белый цвет,
так как включены все три лампочки и полная яркость.
Как смешиваются цвета, я думаю вы знаете.
Если мы хотим изменит цвет, просто выключаем или включаем лампочки. Пример XGXX в данном случае темно зеленый
X означает выключить. Последний выключатель это яркость, имеет два положения X-темный I-яркий
Внимание! Порядок расположения символов не меняем. Так правильно: RGBX, а так нет GBRX
Первый символ-Красный, второй-Зеленый, третий-Синий, четвертый-Яркость
Как сменить фон
Экран загрузки и текст
Если появляется ошибка при запуске
Отключаем проверку целостности.
Открываем файл: BCD в программе BootIce Профессиональный режим.
Переходим в глобальные настройки и создаем параметр:
Ну а теперь пример:
В Bootmgr, точнее BOOTMGR.EXE редактируется тот же ресурс, только есть несколько отличий:
Ресурс BOOTMGR.XSL должен быть того же размера до и после редактирования!!! Иначе BOOTMGR даст ошибку и не запустится!!!!
Минус в том что после каждого редактирования BOOTMGR.EXE нужно упаковывать в BOOTMGR и только потом, можно протестировать.
Для облегчения редактирования, создана утилита автоматизации: WBM Customizer
Меню загрузки в режиме UEFI, тоже можно изменить. Редактируем MUIшку: bootx64.efi.mui или bootia32.efi.mui (в зависимости от разрядности системы)
Файлы лежат в папке ru-ru, рядом с bootx64.efi или bootia32.efi
Пока все…—В статье использованы наработки conty9—Внимание!
Данная статья представлена в качестве ознакомления.
Все что вы делаете, делаете на ваш страх и риск.
Никакой ответственности автор статьи не несет. Не уверены, не редактируйте!
При копировании статьи на другие ресурсы, обязательно указывайте кликабельную ссылку на источник, этот сайт и автора статьи, меня JOKER-2013
Последний раз редактировалось: (2015-03-03 08:54), всего редактировалось 67 раз(а)
Отправлено: 14-Дек-2014 17:51
(спустя 4 часа)
Отправлено: 14-Дек-2014 17:51
(спустя 4 часа)
Гость |
Последний раз редактировалось: (2015-01-08 13:13), всего редактировалось 7 раз(а) |
Отправлено: 14-Дек-2014 17:56
(спустя 5 минут)
Отправлено: 14-Дек-2014 17:56
(спустя 5 минут)
Гость |
|
Отправлено: 14-Дек-2014 18:05
(спустя 9 минут)
Отправлено: 14-Дек-2014 18:05
(спустя 9 минут)
Гость |
0 1 2 3 4 5 6 7 8 9 A B C D E F И еще на сайте: переход> Открываем Блокнот, нажимаем и не отпускаем клавишу ALT и цифрами ╩ работает!!! (нажал ALT и набрал 202) Последний раз редактировалось: (2014-12-26 15:50), всего редактировалось 3 раз(а) |
Отправлено: 14-Дек-2014 18:10
(спустя 4 минуты)
Отправлено: 14-Дек-2014 18:10
(спустя 4 минуты)
Гость |
СкриншотХотя я подумал немножко… Лучше не надо. Размер файла BOOTMGR.XSL не подогнать по размеру. Последний раз редактировалось: (2015-03-03 08:35), всего редактировалось 4 раз(а) |
Отправлено: 14-Дек-2014 18:29
(спустя 19 минут)
Отправлено: 14-Дек-2014 18:29
(спустя 19 минут)
Гость |
<p pad-left=»2″>Текст</p> где: left=»2″ отступ от левого края 2 символа Последний раз редактировалось: (2015-01-16 12:36), всего редактировалось 1 раз |
Отправлено: 16-Дек-2014 14:19
(спустя 1 день 19 часов)
Отправлено: 16-Дек-2014 14:19
(спустя 1 день 19 часов)
zxen |
|
Отправлено: 16-Дек-2014 14:43
(спустя 24 минуты)
Отправлено: 16-Дек-2014 14:43
(спустя 24 минуты)
Гость |
|
Отправлено: 16-Дек-2014 14:53
(спустя 10 минут)
Отправлено: 16-Дек-2014 14:53
(спустя 10 минут)
zxen |
|
Отправлено: 16-Дек-2014 22:43
(спустя 7 часов)
Отправлено: 16-Дек-2014 22:43
(спустя 7 часов)
Гость |
|
Отправлено: 16-Дек-2014 22:49
(спустя 5 минут)
Отправлено: 16-Дек-2014 22:49
(спустя 5 минут)
Гость |
<title color=»RGBIXXBI»><xsl:text> Диспетчер загрузки ParAAvis Flash 1.0 New </xsl:text></title> RGBIXXBI-отвечает за выбор цвета. Последний раз редактировалось: (2014-12-25 23:07), всего редактировалось 5 раз(а) |
Отправлено: 16-Дек-2014 22:56
(спустя 6 минут)
Отправлено: 16-Дек-2014 22:56
(спустя 6 минут)
puhpol |
|
Отправлено: 17-Дек-2014 10:24
(спустя 11 часов)
Отправлено: 17-Дек-2014 10:24
(спустя 11 часов)
Гость |
|
Отправлено: 17-Дек-2014 10:56
(спустя 32 минуты)
Отправлено: 17-Дек-2014 10:56
(спустя 32 минуты)
Гость |
|
Отправлено: 17-Дек-2014 11:03
(спустя 7 минут)
Отправлено: 17-Дек-2014 11:03
(спустя 7 минут)
Гость |
|
Страница 1 из 11
Текущее время: 10-Фев 13:40
Часовой пояс: UTC + 3
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы
Материнские платы UEFI нового поколения поставляются с UEFI Interactive Shell. Интерактивная оболочка UEFI — это простая программа-оболочка (например, bash), отвечающая за загрузку вашей операционной системы. Вы также можете использовать интерактивную оболочку UEFI для выполнения команд и сценариев оболочки EFI. Его также можно использовать для обновления системной прошивки материнской платы.
В этой статье показано, как получить доступ к интерактивной оболочке UEFI на материнских платах UEFI и использовать некоторые из распространенных команд EFI в интерактивной оболочке UEFI. Итак, приступим.
Оглавление:
- Что вам нужно знать
- Чтение USB-накопителей из оболочки UEFI
- Запуск интерактивной оболочки UEFI
- Команда cls
- Команда echo
- Псевдоним Command
- Команда помощи
- Команда набора
- Команда карты
- Команды cd и ls
- Команда cp
- Команда mv
- Команда rm
- Команда редактирования
- Команда выхода
- Команда сброса
- Другие команды оболочки EFI
- Перенаправление вывода
- Вывод
- использованная литература
Что вам нужно знать:
Я использовал 2 разных приглашения для написания команд оболочки EFI в этой статье.
Оболочка> — Я использовал это приглашение для команд, которые можно запускать откуда угодно.
fs1: *> — Я использовал это приглашение, чтобы уточнить, что вам нужно выбрать определенное устройство хранения (в данном случае fs1) или находиться в определенном каталоге перед запуском команд.
Обязательно помните об этом, пока читаете эту статью.
Чтение USB-накопителей из оболочки UEFI:
Интерактивная оболочка UEFI может читать флэш-накопители USB, если вы отформатируете их как FAT16 или FAT32. Итак, предположим, что вы написали несколько сценариев EFI или загрузили какие-либо сценарии EFI с официального сайта производителя вашей материнской платы. В этом случае вам придется поместить их на флэш-накопитель USB в формате FAT16 или FAT32, чтобы получить доступ и запустить их из интерактивной оболочки UEFI.
Сначала выключите компьютер. Затем включите компьютер. Сразу после нажатия кнопки питания продолжайте нажимать или клавишу клавиатуры, чтобы войти в прошивку BIOS / UEFI материнской платы.
Затем в разделе выбора загрузки прошивки BIOS / UEFI вашей материнской платы вы должны найти возможность войти в интерактивную оболочку UEFI.
На моем одноплатном компьютере Odyssey X86 эта опция находится в Сохранить и выйти> UEFI: встроенная оболочка EFI, как вы можете видеть на изображении ниже.
На моей виртуальной машине VMware можно использовать внутреннюю оболочку EFI, как вы можете видеть на снимке экрана ниже.
Когда вы впервые входите в интерактивную оболочку UEFI, она распечатывает все устройства хранения, обнаруженные вашим компьютером, как вы можете видеть на снимке экрана ниже.
После того, как вы нажмете любую клавишу, кроме или подождите 5 секунд, оболочка EFI должна быть готова к выполнению команд.
В следующих разделах я покажу вам, как использовать некоторые из наиболее распространенных команд оболочки EFI. Итак, идем дальше.
Команда cls:
Команда cls в основном используется для очистки выходных данных на экране.
У вас может быть много текстов на экране, как вы можете видеть на скриншоте ниже.
Чтобы очистить тексты на экране, выполните команду cls следующим образом:
Оболочка> cls
Тексты на вашем экране должны быть очищены.
Вы также можете изменить цвет фона оболочки EFI с помощью команды cls.
Чтобы изменить цвет фона оболочки EFI, выполните команду cls следующим образом:
Оболочка> cls <цветовой код>
На момент написания этой статьи команда cls поддерживает следующие .
0 — Чернить
1 — Синий
2 — Зеленый
3 — голубой
4 — Красный
5 — пурпурный
6 — Желтый
7 — Светло-серый
Например, чтобы изменить цвет фона на Синий (1), выполните команду cls следующим образом:
Оболочка> cls 2
Цвет фона должен быть изменен на Синий (1), как вы можете видеть на скриншоте ниже.
Чтобы изменить цвет фона на черный, выполните команду cls следующим образом:
Оболочка> cls 0
Цвет фона должен быть изменен на Черный (0), как вы можете видеть на скриншоте ниже.
Команда эха:
Команда echo используется для печати строки текста в оболочке EFI Shell.
Например, чтобы напечатать текст Hello World, выполните команду echo следующим образом:
Оболочка>эхо«Привет мир»
Как видите, текст Hello World напечатан на оболочке EFI Shell.
При желании вы также можете отказаться от использования кавычек.
Команда псевдонима:
Вы можете перечислить все псевдонимы команд оболочки EFI с помощью команды alias.
Чтобы вывести список всех псевдонимов команд оболочки EFI, выполните команду псевдонима следующим образом:
Оболочка>псевдоним
Как видите, перечислены все псевдонимы команд оболочки EFI.
Вы также можете использовать команду alias для создания или удаления псевдонимов.
Чтобы создать псевдоним команды print_hello, который запускает команду echo Hello World, вы можете запустить команду псевдонима следующим образом:
Оболочка>псевдоним print_hello «эхо, привет мир»
Как видите, создается новый псевдоним print_hello.
Теперь вы можете запустить команду print_hello следующим образом:
Оболочка> print_hello
По умолчанию созданные вами псевдонимы сохранятся после перезагрузки системы. Конечно, это хорошо. Но если вы не хотите, чтобы ваши псевдонимы пережили перезагрузку системы, вы можете создать изменчивый псевдоним, используя параметр -v.
Вы можете создать тот же псевдоним print_hello, что и изменчивый псевдоним, используя параметр -v следующим образом:
Оболочка>псевдоним-v print_hello «эхо, привет мир»
Вы можете удалить псевдоним, используя параметр -d команды псевдонима.
Чтобы удалить псевдоним print_hello, запустите команду alias с параметром -d следующим образом:
Оболочка>псевдоним-d print_hello
Как видите, псевдоним print_hello удален из списка псевдонимов.
Оболочка>псевдоним
Команда помощи:
Команда help используется для поиска команд оболочки EFI с использованием шаблонов.
Например, чтобы найти все команды оболочки EFI, начинающиеся с m, вы можете запустить команду help следующим образом:
Оболочка>помощь м*
Все команды оболочки EFI, начинающиеся с m, перечислены в списке, как вы можете видеть на снимке экрана ниже.
Таким же образом вы можете найти все команды оболочки EFI, заканчивающиеся на m, следующим образом:
Оболочка>помощь*м
В списке перечислены все команды оболочки EFI, заканчивающиеся на m, как вы можете видеть на снимке экрана ниже.
Вы также можете узнать, как использовать команду EFI Shell, какие параметры они поддерживают и для каких параметров используется команда справки. Наконец, вы можете сравнить это с командой Linux man.
Например, чтобы узнать, как использовать команду псевдонима, запустите команду справки следующим образом:
Оболочка>помощьпсевдоним
Должно отображаться много информации о команде справки.
Если справочная информация по определенной команде очень длинная, вы можете нажать кнопку и клавиши клавиатуры для прокрутки вверх и вниз соответственно.
Если вывод слишком длинный, вам понадобится пейджер, чтобы прочитать его. Опять же, вы можете сравнить это с программой Linux less. Но в отличие от программы Linux less, пейджер EFI Shell прокручивает страницу за страницей, а не по строкам.
Чтобы использовать пейджер для команды справки, используйте параметр -b команды справки следующим образом:
Оболочка>помощь-bпсевдоним
Информация об использовании команды псевдонима отображается на пейджере, как вы можете видеть на снимке экрана ниже.
Вы можете нажать чтобы перейти на следующую страницу.
Чтобы закрыть пейджер, нажмите q, а затем нажмите .
Команда набора:
Команда set используется для вывода списка всех доступных переменных среды EFI Shell.
Чтобы вывести список всех доступных переменных среды оболочки EFI, выполните команду set следующим образом:
Оболочка>задавать
В списке перечислены все переменные среды EFI Shell, как вы можете видеть на снимке экрана ниже.
Вы также можете создать свои собственные переменные среды EFI Shell.
Чтобы создать файл переменной среды EFI Shell с содержимым boot.img, выполните команду set следующим образом:
Оболочка>задаватьфайл boot.img
Файл переменных среды установлен, как вы можете видеть на скриншоте ниже.
По умолчанию переменные среды EFI Shell, которые вы создаете, выдерживают перезагрузку системы. Однако вы можете создать изменчивые переменные среды EFI Shell, используя параметр -v команды set, если вам это не нужно.
Например, чтобы создать ту же переменную среды файла, что и переменная среды volatile, выполните команду set следующим образом:
Оболочка>задавать-vфайл image.boot
Вы также можете удалить переменные среды EFI Shell.
Чтобы удалить файл переменной среды EFI Shell, выполните команду set следующим образом:
Оболочка>задавать-dфайл
Переменная файловой среды больше не должна быть доступна, как вы можете видеть на снимке экрана ниже.
Оболочка>задавать
Команда карты:
Команда map распечатывает таблицу сопоставления всех запоминающих устройств вашего компьютера. В таблице сопоставления вы можете найти имена устройств хранения вашего компьютера. Чтобы получить доступ к устройству хранения из EFI Shell, вам потребуется имя устройства этого устройства хранения.
Чтобы вывести список всех запоминающих устройств вашего компьютера из оболочки EFI, выполните команду map следующим образом:
Оболочка> карта
Все устройства хранения и их названия должны быть перечислены, как вы можете видеть на скриншоте ниже.
Если вы вставите в компьютер новое запоминающее устройство, например флэш-накопитель USB, оно не будет автоматически отображаться в таблице сопоставления. Вместо этого вам придется обновить таблицу сопоставления вручную.
Вы можете обновить таблицу сопоставления оболочки EFI, используя параметр -r команды map следующим образом:
Оболочка> карта -р
Таблица сопоставления EFI Shell должна быть обновлена, и ваше новое устройство хранения должно быть указано в новой таблице сопоставления, как вы можете видеть на снимке экрана ниже.
Команды cd и ls:
Вы можете выбрать запоминающее устройство, используя имя запоминающего устройства.
Например, чтобы выбрать запоминающее устройство fs1, вы можете выполнить следующую команду:
Оболочка> fs1:
Приглашение следует изменить на fs1: >, как вы можете видеть на скриншоте ниже.
Теперь вы можете перечислить все файлы и каталоги, которые есть на устройстве хранения fs1 (текущий рабочий каталог), следующим образом:
fs1: >ls
Как видите, перечислены все файлы и каталоги запоминающего устройства fs1.
Вы также можете использовать относительные пути к каталогам с командой ls для вывода списка файлов и каталогов этого каталога.
Например, чтобы вывести список файлов и каталогов каталога scripts (относительно вашего текущего рабочего каталога), вы можете запустить команду ls следующим образом:
fs1: >ls скрипты
Должны быть перечислены файлы и каталоги каталога scripts .
В моем случае каталог scripts пуст.
Вы также можете использовать абсолютные пути с командой ls.
Например, чтобы вывести список всех файлов и каталогов на устройстве хранения fs0, выполните команду ls следующим образом:
Оболочка>ls fs0:
Все файлы и каталоги устройства хранения fs0 должны быть перечислены, как вы можете видеть на скриншоте ниже.
Вы можете рекурсивно выводить список файлов и каталогов, используя параметр -r команды ls.
Например, чтобы рекурсивно вывести список всех файлов и каталогов устройства хранения fs0, выполните команду ls следующим образом:
Оболочка>ls-р fs0:
Все файлы и каталоги устройства хранения fs0 должны быть перечислены рекурсивно, как вы можете видеть на скриншоте ниже.
Если список файлов и каталогов слишком длинный и не помещается на экране, вы можете использовать параметр -b команды ls, чтобы использовать пейджер.
Вы можете рекурсивно перечислить все файлы и каталоги устройства хранения fs0 и использовать пейджер для вывода следующим образом:
Оболочка>ls-р-b fs0:
Команда ls должна использовать пейджер для отображения вывода, как показано на снимке экрана ниже.
Вы можете использовать команду cd для перехода в другой каталог выбранного вами устройства хранения. Это сделает ваши команды короче, так как вам не придется вводить длинные пути к каталогам.
Например, чтобы перейти в каталог scripts выбранного запоминающего устройства fs1, вы можете запустить команду cd следующим образом:
fs1: >компакт диск скрипты
Текущий рабочий каталог следует изменить на fs1: scripts , как вы можете видеть на скриншоте ниже.
Чтобы вернуться на один каталог — в родительский каталог, вы можете запустить команду cd следующим образом:
fs1: scripts>компакт диск ..
Вы должны быть на один каталог вверх, как вы можете видеть на скриншоте ниже.
Команда cp:
Команда cp используется для копирования файлов с одного устройства хранения на другое или внутри одного устройства хранения.
У меня есть файл hello.txt на устройстве хранения fs1, как вы можете видеть на скриншоте ниже.
fs1: >ls
Чтобы создать новую копию hello.txt, выполните команду cp следующим образом:
fs1: >cp hello.txt hello2.txt
Необходимо создать новый файл hello2.txt, а содержимое файла hello.txt скопировать в файл hello2.txt.
fs1: >ls
Если вы хотите скопировать файл hello.txt в каталог scripts на том же устройстве хранения, используя относительный путь к каталогу, выполните команду cp следующим образом:
fs1: >cp скрипты hello.txt
Как видите, файл hello.txt скопирован в каталог scripts .
fs1: >ls скрипты
Вы также можете использовать абсолютный путь для копирования файла hello.txt в каталог scripts следующим образом:
fs1: >cp hello.txt scripts
Поскольку файл уже существует, команда cp спросит вас, хотите ли вы его перезаписать.
Если вы хотите перезаписать файл, нажмите y, а затем нажмите .
Если вы не хотите перезаписывать файл, нажмите n, а затем нажмите .
Если вы хотите перезаписать все уже существующие файлы, нажмите a, а затем нажмите .
Если вы не знаете, что делать, нажмите c и нажмите для отмены операции копирования.
Файл hello.txt нужно скопировать в каталог scripts.
Таким же образом, если вы хотите скопировать файл hello.txt в корневой каталог другого устройства хранения fs0, вы можете запустить команду cp следующим образом:
fs1: >cp hello.txt fs0:
Как видите, файл hello.txt копируется в корень устройства хранения fs0.
Оболочка>ls fs0:
Вы также можете рекурсивно скопировать содержимое каталога в другой каталог или устройство хранения, используя параметр -r команды cp.
Чтобы рекурсивно скопировать содержимое каталога fs0: EFI на устройство хранения fs1, выполните команду cp следующим образом:
Оболочка>cp-р fs0: EFI fs1:
Все файлы и каталоги в каталоге fs0: EFI должны быть скопированы на устройство хранения fs1, как вы можете видеть на скриншоте ниже.
Как видите, каталоги ubuntu и BOOT из каталога fs0: EFI рекурсивно копируются на устройство хранения fs1.
Оболочка>ls fs0: EFI
Оболочка>ls fs1:
Если вы хотите скопировать каталог fs0: EFI, а также содержимое этого каталога на устройство хранения fs1, выполните команду cp следующим образом:
Оболочка>cp-р fs0: EFI fs1:
Как видите, каталог fs0: EFI рекурсивно копируется на устройство хранения fs1.
Оболочка>ls fs0:
Оболочка>ls fs1:
Команда mv:
Команда mv работает так же, как команда cp. Единственное отличие состоит в том, что команда mv перемещает файлы или каталоги из источника в место назначения, а не копирует их.
Поскольку команда mv и команда cp похожи, я не буду их здесь объяснять. Просто прочтите раздел «Команда cp» и замените команды cp на команду mv. Вам будет хорошо идти.
Есть еще один вариант использования команды mv. Команда mv также используется для переименования файлов и каталогов.
Например, чтобы переименовать файл hello2.txt в hello3.txt, выполните команду mv следующим образом:
fs1: >мв hello2.txt hello3.txt
Файл hello2.txt следует переименовать в hello3.txt.
Как видите, файла hello2.txt больше нет на устройстве хранения fs1, и он был переименован в hello3.txt.
fs1: >ls
Таким же образом вы можете переименовать каталог с помощью команды mv.
Например, чтобы переименовать каталог ubuntu в debian , выполните команду mv следующим образом:
fs1: >мв Ubuntu Debian
Как видите, каталог ubuntu переименован в debian .
fs1: >ls
Команда rm:
Команда rm используется для удаления файлов и каталогов с ваших устройств хранения.
Чтобы удалить файл hello3.txt с устройства хранения fs1, выполните команду rm следующим образом:
fs1: >rm hello3.txt
Файл hello3.txt следует удалить.
Как видите, файла hello3.txt больше нет на устройстве хранения fs1.
fs1: >ls
Таким же образом вы можете удалить каталог debian с устройства хранения fs1 следующим образом:
fs1: >rm дебиан
Когда вы удаляете каталог, который может содержать другие файлы и каталоги, команда rm спрашивает вас, хотите ли вы их удалить. Это мера безопасности, чтобы вы случайно не удалили важные файлы.
Чтобы подтвердить операцию удаления, нажмите y, а затем нажмите .
Каталог debian и его содержимое следует удалить.
Как видите, каталог debian больше не доступен на устройстве хранения fs1.
fs1: >ls
Команда редактирования:
EFI Shell поставляется с базовой программой текстового редактора под названием EFI Editor. Это очень полезно, так как вы можете очень легко редактировать файлы конфигурации из EFI Shell.
Вы можете открыть файл hello.txt с запоминающего устройства fs1 с помощью программы EFI Editor следующим образом:
fs1: > редактировать hello.txt
Файл hello.txt следует открыть с помощью программы EFI Editor. Здесь вы можете редактировать текстовый файл / файл конфигурации.
После редактирования файла hello.txt нажмите с последующим чтобы сохранить файл.
Файл hello.txt следует сохранить.
Чтобы закрыть программу EFI Editor, нажмите .
Если у вас есть несохраненные изменения, программа EFI Editor спросит вас, хотите ли вы их сохранить.
Нажмите y, чтобы сохранить изменения и закрыть программу EFI Editor.
Нажмите n, чтобы отменить изменения и закрыть программу EFI Editor.
Нажмите c, если вы передумали и больше не хотите закрывать программу EFI Editor.
Программа EFI Editor имеет много других удивительных функций. К сожалению, это выходит за рамки данной статьи, чтобы показать их все.
Вы можете посмотреть в нижней части программы EFI Editor, и вы должны найти всю информацию, необходимую для использования других функций программы EFI Editor. Кроме того, вы можете сравнить программу EFI Editor с текстовым редактором Nano Linux. Это потрясающе.
Команда выхода:
Команда выхода используется для закрытия оболочки EFI и возврата к прошивке BIOS / UEFI вашей материнской платы.
Чтобы закрыть оболочку EFI, запустите команду выхода следующим образом:
Оболочка>выход
Было бы лучше, если бы вы вернулись к прошивке BIOS / UEFI своей материнской платы, как вы можете видеть на скриншоте ниже.
Команда сброса:
Команда сброса используется для сброса или перезагрузки компьютера.
Чтобы перезагрузить компьютер из оболочки EFI, выполните команду сброса следующим образом:
Оболочка> перезагрузить
Команду сброса также можно использовать для выключения компьютера.
Чтобы выключить компьютер из оболочки EFI, выполните команду сброса с параметром -s следующим образом:
Оболочка> перезагрузить -s
Другие команды оболочки EFI:
Есть много других команд оболочки EFI. Все это выходит за рамки данной статьи. Но вы можете прочитать документацию EFI Shell [1], чтобы узнать о них. Вы также можете использовать команду help, чтобы узнать о доступных командах оболочки EFI. Вы также можете использовать команду help, чтобы прочитать документацию по командам EFI Shell. Документация EFI Shell очень обширна и полна информации и примеров. Это также очень просто и легко следовать. У вас не должно возникнуть проблем с его чтением.
Перенаправление вывода:
Как и bash и другие оболочки Linux, оболочка EFI также поддерживает перенаправление вывода. Таким образом, вы можете перенаправить вывод команды EFI Shell в файл, используя функцию перенаправления вывода EFI Shell.
Например, вы можете перенаправить вывод команды echo «Hello World» в файл message.txt следующим образом:
fs1: >эхо«Привет мир»> message.txt
Должен быть создан новый файл message.txt, как вы можете видеть на скриншоте ниже.
fs1: >ls
Как видите, в нем есть контент Hello World.
fs1: > редактировать message.txt
Если вы хотите добавить (добавить в конец файла) вывод другой команды echo «Удачи» (скажем) в файл message.txt, вы можете использовать символ >> вместо символа> следующим образом:
fs1: >эхо«Удачи»>> message.txt
Как видите, текст Good Luck добавлен в конец файла message.txt.
fs1: > редактировать message.txt
Таким же образом вы можете перенаправить вывод команды help map в файл map-help.txt следующим образом:
fs1: >помощь карта > map-help.txt
Как видите, создается новый файл map-help.txt.
fs1: >ls
Как видите, вывод команды help map перенаправляется в файл map-help.txt.
fs1: > отредактировать map-help.txt
ПРИМЕЧАНИЕ: Когда вы выполняете перенаправление вывода, вы должны помнить разницу между символами> и >>. Это очень важно. Если вы недостаточно знакомы с этими символами, вы можете потерять важные данные.
Допустим, вы выполнили следующую команду в EFI Shell:
Оболочка>команда>файл
Здесь символ> перенаправит вывод команды в файл. Если файл не существует, он будет создан. Если файл существует, его содержимое будет заменено выводом команды. Об этом очень важно помнить.
Теперь предположим, что вы выполнили указанную выше команду оболочки EFI, используя символ >> следующим образом:
Оболочка>команда>>файл
Здесь символ >> добавит (добавит в конец файла) вывод команды к файлу, если файл существует. Если файл не существует, он будет создан, и выходные данные команды будут добавлены в файл.
Итак, если файл не существует, символы> и >> будут делать то же самое — создать файл и добавить в него выходные данные команды.
Если на вашем устройстве хранения много файлов, несложно ошибиться и потерять важные данные. Поэтому я рекомендую использовать символ >> вместо символа> для перенаправления вывода, если у вас нет особых требований. Затем он сделает то же самое. Таким образом, если вы сделаете ошибку, вы всегда сможете удалить лишние строки, добавленные к файлу, чтобы вернуться в предыдущее состояние.
Вывод:
В этой статье показано, как запустить интерактивную оболочку UEFI и использовать общие команды оболочки EFI. Я также показал вам, как использовать функцию перенаправления вывода EFI Shell. Наконец, я показал вам, как получить доступ к устройствам хранения вашего компьютера из оболочки EFI Shell и как создавать, копировать, перемещать, переименовывать и редактировать файлы из оболочки EFI Shell. Эта статья должна помочь вам начать работу с командами UEFI Interactive Shell и EFI Shell.
Использованная литература:
[1] Справочное руководство по командам оболочки — Intel
[2] Основные инструкции по использованию расширяемого интерфейса микропрограмм (EFI)