Інструменти для зміни змінних UEFI в Windows / Linux?


12

У мене є машина DELL, яка використовує Phoenix SecureCore Tiano як UEFI / BIOS. Однак вона повністю не налаштована, оскільки її оболонка та меню UEFI приховані в налаштуваннях BIOS.

Мені цікаво, чи існували інструменти, які можуть змінювати налаштування UEFI (наприклад, елементи завантаження) в режимі користувача? наприклад, "efibootmgr" в Linux.

btw, тому що це не налаштовується, я думаю, що процес завантаження перебуває у застарілому режимі, так що, скажімо, ОС не може виявити існування UEFI, я прав?

Отже, це парадокс: я повинен завантажуватися в нестандартному режимі, щоб увімкнути інструменти UEFI для зміни елементів завантаження в режимі користувача? але я повинен увімкнути інструменти UEFI, щоб спочатку змінити елементи завантаження, щоб увімкнути нестарілий завантажувач?


щойно встановив, що efi vars зберігається у nvram, можливо, це посилання допомагає: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

Відповіді:


3

Реалізації EFI повинні забезпечувати певний спосіб керувати режимом завантаження (EFI проти BIOS), за винятком, звичайно, для реалізацій лише для EFI без підтримки BIOS. Однак занадто часто прошивка дає користувачеві мало або явний контроль над справою; натомість вбудована програма намагається вивести правильний режим завантаження залежно від стану жорсткого диска - наприклад, він може використовувати режим EFI, якщо виявлено GPT та режим BIOS, якщо знайдено MBR; або він може використовувати режим EFI, якщо знайдений системний розділ EFI (ESP), а в режимі BIOS - ні. Можливо, ви зможете знайти підказку про те, що робить ваша прошивка, прочитавши посібник. Якщо ні, то просто доведеться експериментувати.

Під час завантаження знімних носіїв правила можуть бути різними, але ви часто можете давати йому удар у правильному напрямку, надаючи лише один режим завантаження. Це може зажадати повторного оволодіння компакт-диском або (простіше) ретельного вибору компакт-диска. Якщо ви намагаєтеся змусити завантажувати режим завантаження в режимі EFI, мій rEFInd , зокрема його завантажувальна версія CD, може бути корисним; він завантажується тільки в режимі EFI, і в налаштуваннях він буде виконувати функції диспетчера завантажень для інших завантажувачів на базі EFI, але не для черевиків у режимі BIOS.


Спасибі! коли я розділяю свій hd в режимі MBR, він працює як очікувалося. однак, якщо я використовую режим GPT, незалежно від того, є ESP чи ні, він просто не завантажиться і видає цю помилку: "Операційна система не знайдена". Повідомлення про помилку / помилка синтаксису, безумовно, з самого BIOS після того, як я реверсував інженер BIOS rom (не з будь-якого завантажувача чи завантажувального запису), тому я просто не можу отримати управління завантаженням для передачі в режимі GPT.
marstone

Деякі системи, що базуються на EFI, завантажуватимуться в режимі BIOS лише в тому випадку, якщо вони виявлять розділ MBR за допомогою встановленого прапора "boot" (він же "активний"). На диску GPT для цього потрібно встановити цей прапор на захисному розділі 0xEE в MBR. Для цього можна використовувати такий інструмент, як fdisk Linux (скористайтеся опцією "a"). Ви НЕ використовувати роз'їхалися, GParted або інші libparted-інструменти , щоб зробити це; на диску GPT вони не дають вам контролю над тим, що знаходиться в MBR , і "прапор завантаження" буде застосовано до розділу GPT , тобто означає, що він встановлює код типу на системний розділ EFI (ESP) .
Род Сміт

2

Я просто випускаю свою утиліту, якщо когось цікавить. Він редагує змінну UEFI у Windows.

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

Оновлено 25.02.2020 р. До версії 1.2.
Підключення до Інтернету не потрібно.
Всього вірус повідомляє про 6 (помилкових спрацьовувань) понад 96, оскільки код затуманений.


ЦЕ НЕ ТАК. Програма стисла і захищена, а деякі антивіруси дають помилковий позитив. Це не вірус.
Зібрі

Для прапорців: Ця програма отримує дещо тривожне виявлення у Virustotal, але, здається, це загальне виявлення та виявлення "потенційно небажаної програми". Цілком можливо, що завдяки тому, що ця програма робить, вона пробилася в набори шкідливих програм, але поки хтось не зможе запропонувати прямі докази того, що це фактична шкідливе програмне забезпечення, то відповідь на сьогодні добре.
Мокубай

Я не випускав вихідний код і ускладнював зворотний інженер лише для "затримки" або "обмеження" саме поширення зловмисного програмного забезпечення на основі мого "простого" коду. Я думаю про випуск джерела, це не секрет, я просто не хотів бути основною причиною майбутнього зловмисного програмного забезпечення на основі uefi.
Зібрі

Редагувати: оновлено сьогодні до версії 1.1.
Зібрі

Оновлено до версії 1.2
Zibri

1

Щойно я придбав Dell XPS 17 (l702x) і мені цікаво багатозавантажувати різні ОС. Якщо я зрозумів, що це правильно, Dell має певну форму заблокованого Phoenix SecureCore Tiano UEFI "BIOS". З того, що я прочитав, UEFI не використовується безпосередньо (можливо, через приховане меню тощо), для чого може знадобитися мод BIOS).

Здається, можна використовувати / отримати доступ до Phoenix-сумісної оболонки EFI, використовуючи відкритий код (BSD) TianoCore edk2 / ShellPkg (джерело) та edk2 / ShellBinPkg (двійкові) пакети ( GIT Repo ).

Я рекомендую новіший ShellBinPkg , використовуючи профіль "повна оболонка" UEFI Shell 2.0 (підтримує більшість команд). Ви також можете відновити користувальницьку оболонку за допомогою ShellPkg (побудувати самостійно або включити її в пакет OVMF для створення версії x64) - Включення оболонки UEFI в дистрибутив Linux iso .

Бінарний файл оболонки [U] EFI складається для роботи незалежно від прошивки. Це можна перевірити, поставивши оболонку у файлову систему FAT32 (USB-накопичувач, розділ жорсткого диска), перейменований у /efi/boot/bootx64.efiта завантажившись із нього у [UEFI] BIOS.

Довідковий текст оболонки доступний, набравши текст help utilname. Просто використання helpстворює список усіх доступних команд оболонки.

Примітка. Якщо ви не можете запустити UEFI Shell безпосередньо з вбудованого програмного забезпечення, створіть USB-накопичувач FAT32 з Shell.efi, скопійованим як (USB) /efi/boot/bootx64.efi. Цей USB-накопичувач повинен з’являтися в меню завантаження прошивки. Запуск цієї опції запустить оболонку UEFI для вас. - Arch Linux взяла на себе UEFI


це чудово. я купив ту ж модель l702x ;-) я спробую завтра! наскільки я знаю, приховане меню все ще відкривається. btw, чи ти склав bootx64.efi і протестував ще на своїх xps?
marstone

ShellBinPkg - це попередньо складений двійковий файл оболонки UEFI, ви повинні мати можливість просто перейменувати його та помістити у потрібний каталог. Я спробував це, і мені це не вийшло, але я не вірю, що це єдина оболонка, яка доступна (я теж новачок у цьому). Здається, ця публікація пропонує завантаження оболонки, яка повинна працювати з Phoenix SecureCore Tiano (Див. Розмову в .ridikulus.rat-> cfr). Дайте нам знати, як ви дістаєтесь.
Великий багатий

Я спробував поставити файл efi з вищезгаданого допису до /efi/boot/bootx64.efi, однак мій usb диск завантажився, щоб нормально виправитись (він уже завантажився); потім я відформатував свій u-диск у режимі жорсткого диска, і я отримав помилку "Видалити диски чи інші носії ...". Потім я взяв шістнадцятковий пошук цього рядкового сектора за сектором на своєму u-диску, його не було. повідомлення повинно бути від Tiano BIOS L702x. щось не так для моїх операцій?
marstone

@marstone, вибачте, але я сам новачок, коли справа стосується цих речей UEFI (я просто в порядку зі своїм Google-фу ;-)). Був зайнятий в іншому місці, як тільки я отримаю якийсь час, я спробую це сам і дам вам знати, як я дістаюсь. Ура, Річ.
Великий багатий

Незважаючи на те, що Dell випустила біос з підтримкою UEFI ( A19 ), "capitankasar" над переглядом ноутбука розмістив 2x модифіковані біографії A18 ( uefi , uefi + nvida gpu ), вони адресуються UEFI, NVidia GPU розгін і швидкість вентилятора тощо (деякі з цих функцій може існувати і в офіційному випуску Dell, я сам цього не підтвердив). Як завжди, використовуйте на свій страх і ризик ;-)
Big Rich

0

У своїх експериментах я зробив висновок наступним чином:

Якщо ви хочете використовувати USB-клавішу U / EFI з багатозавантажувальним пристроєм, ОБОВ'ЯЗКОВО:

  1. очистити всі розділи / стерти диск повністю;
  2. конвертувати його в GPT;
  3. створити основний розділ і відформатувати його як Fat32;
  4. зробіть dir під назвою EFI (не чутливий до регістру) у корені диска;
  5. створити субдір у попередньому dir під назвою boot (теж не залежно від регістру)
  6. помістіть потрібний файл .efi туди і перейменуйте його, щоб він відповідав архітектурі системи: bootx64.efi якщо x64, bootia32.efi якщо x86 або bootaa64.efi якщо ARM64.

Спробував його на сенсорному екрані Dell Inspiron 5437 і працював чудово.

І останнє: якщо файл .efi не підписаний цифровим підписом Microsoft, він повинен вимкнути лише безпечний режим завантаження в налаштуваннях fw. Залиште режим UEFI для завантаження та режим швидкого завантаження.

Для тестів знайдіть ключ багатозавантажувального uefi: <your usb key>пристрою свого виробника OEM, перш ніж постійно встановити його та виберіть із представленого списку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.