Вопрос или проблема
У меня есть USB-накопитель, на который я поставил FreeDOS с помощью Rufus (FAT32). Я создал папку на накопителе EFI\BOOT с файлом bootx64.efi в директории BOOT. Я вхожу в BIOS, а затем загружаюсь с флешки (отключив защищённую загрузку и включив Legacy с правильным приоритетом). Успех, теперь я меняю директорию на EFI\Boot и проверяю, есть ли в ней bootx64.efi. И он есть. Я наберу имя файла и нажму Enter (проверил написание и регистр несколько раз), затем получаю сообщение Bad Command or file name – “BOOTX64.EFI”. Мне нужно это запустить, чтобы изменить адрес, который позволит мне подключать порт mPCIe, который я использую для eGPU, так как в версии 1050 Ti не было драйверов, которые позволяли бы использовать mPCIe. Я пробовал это с 980 Ti, и это было буквально “подключи и работай”, никаких модификаций не нужно. Извините, если вопрос неясен, я буду рад предоставить больше информации, если это нужно, спасибо! Я также понимаю последствия ошибок, которые могут привести к поломке ноутбука.
Имя файла EFI\BOOT\bootx64.efi
является резервным именем файла для (U)EFI загрузчика. (Эти загрузчики обычно находятся на FAT файловых системах, которые не чувствительны к регистру.) Этот файл обычно содержит дубликат GRUB, загрузчика Windows, EFI оболочку или какой-либо другой EFI инструмент.
Похоже, что вы пытаетесь запустить bootx64.efi
из DOS. Если только что-то не изменилось в FreeDOS, программы EFI не могут быть запущены из DOS, и программы DOS не могут быть запущены из EFI. Таким образом, ваш подход не сработает; попытка запустить программу macOS в Windows закончится такой же удачей.
Мне не совсем понятно, что это за программа. Если это программа EFI, то вам, вероятно, нужно сделать одно из двух:
- Запустить её один раз — Если программу нужно запустить один раз (например, для обновления прошивки, хотя ваше описание заставляет думать, что это не то, что она делает), то вы можете сделать это множеством способов. Самый простой способ, вероятно, скопировать программу на FAT файловую систему на USB-накопителе как
EFI\BOOT\bootx64.efi
. Затем вы должны быть в состоянии “загрузить” USB-накопитель, чтобы запустить программу. Другими способами запустить её можно с помощью запуска EFI оболочки (скопировав файл программы EFI оболочки на USB-накопитель и “загрузив” его) или создав запись в том загрузчике, который вы используете для запуска программы. - Интегрировать её в процесс загрузки — Если программу нужно запускать каждый раз при загрузке, то ваша задача становится сложнее, так как вы должны интегрировать её в ваш обычный процесс загрузки. Точно как это сделать зависит от того, какие ОС вы используете и какие менеджеры загрузки у вас есть. Вам, возможно, нужно изменить процесс загрузки так, чтобы загрузка проходила через EFI оболочку и использовался скрипт
startup.nsh
, чтобы запустить программу, которую вы пытаетесь запустить, а затем ваш обычный загрузчик или менеджер загрузки. Если обсуждаемый файл является драйвером, тогда мой менеджер загрузки rEFInd должен позволить вам автоматически запускать его при каждом запуске. Мне нужно больше деталей, чтобы дать более точный совет, если программу нужно запускать при каждой загрузке, — но в этом случае я ожидал бы, что автор программы предоставит такие инструкции.
С другой стороны, если программа является программой DOS, то загрузка в FreeDOS и запуск её там имеет смысл, но переименование её в bootx64.efi
совершенно бессмысленно. Я подозреваю, что это не так, так как любые нормальные инструкции, которые вы нашли для запуска программы DOS, не включали бы этот странный шаг. Но в случае, если это программа DOS, вы должны оставить её с оригинальным именем файла (вероятно, заканчивающимся на .com
или .exe
) и запустить её как таковую. Тем не менее, запуск программы DOS как части обычного процесса загрузки компьютера на основе EFI будет невозможным или, по крайней мере, очень сложным. Однако вы все равно можете использовать программу DOS для внесения постоянных изменений (например, для обновления прошивки).
Вы все поняли неправильно. bootx64.efi запускается первым, затем вы запускаете DOS. DOS вообще не может запускать файлы EFI. Ваш UEFI BIOS запускает EFI напрямую без вашего вмешательства. Поскольку вы уже можете запускать DOS, вам нужно пропустить попытку запустить bootx64.efi и просто продолжить с тем, чем вы занимались.
Новые системы даже не могут запускать DOS напрямую из-за глупой защищенной загрузки UEFI. Поэтому вам нужен bootx64.efi. UEFI BIOS запускает этот файл, чтобы начать загрузку дискета и т.д.
Ответ или решение
Как использовать bootx64.efi для модификации BIOS с помощью FreeDOS
Для успешного использования файла bootx64.efi
с целью изменения настроек BIOS, вам необходимо понимать архитектуру UEFI и взаимодействие между программами на разных уровнях. Вы уже выполнили несколько шагов, установив FreeDOS на USB-накопитель с помощью Rufus, и создав необходимую структуру каталогов. Однако возникшая ошибка "Bad Command or file name" указывает на путаницу между различными средами выполнения. Давайте разберемся, как правильно осуществить вашу задачу.
1. Понимание контекста UEFI и BIOS
-
UEFI и BIOS: UEFI (Unified Extensible Firmware Interface) — это современный интерфейс, заменяющий традиционный BIOS. Он работает на уровне прошивки и отвечает за загрузку операционной системы. Файлы с расширением
.efi
, такие какbootx64.efi
, являются исполняемыми файлами для UEFI. -
FreeDOS: Это операционная система, работающая на уровне, совместимом с DOS. Она не взаимодействует напрямую с файлами UEFI, тогда как UEFI может запускать загрузчики на FAT-файловых системах.
2. Проблема запуска bootx64.efi
Ошибка "Bad Command or file name" возникает из-за попытки запустить файл bootx64.efi
из среды FreeDOS. Вы не можете просто "запускать" UEFI-программы из DOS, поскольку UEFI и DOS функционируют на разных уровнях. Вот несколько путей, как правильно действовать:
-
Запуск из UEFI: Чтобы запустить
bootx64.efi
, вам нужно загрузить систему непосредственно из UEFI. Вам нужно будет использовать параметры настройки UEFI, чтобы убедиться, что система пытается загрузиться с USB-накопителя, который вы подготовили. -
EFI Shell: Если
bootx64.efi
является исполняемым файлом, то его следует запускать либо через UEFI-системный загрузчик, либо через специальный EFI Shell. Вам нужно скопировать EFI Shell на USB и загрузить его, после чего выполнитьbootx64.efi
.
3. Подготовка USB-накопителя
Убедитесь, что структура каталога на USB-накопителе настроена правильно. Например:
USB Drive
└── EFI
└── BOOT
└── bootx64.efi
Также проверьте, что файл bootx64.efi
действительно требуется для вашей задачи и что он корректен.
4. Изменения в BIOS
Если ваша конечная цель — изменение параметров BIOS для поддержки горячей замены модуля eGPU, возможно, вам не нужно запускать bootx64.efi
, а можно изменить настройки напрямую через интерфейс UEFI. Узнайте, доступны ли параметры горячей замены в вашем BIOS:
- Зайдите в интерфейс BIOS/UEFI.
- Найдите настройки, относящиеся к PCIe и eGPU.
- Измените настройки согласно вашим требованиям (как указано в ваших ссылках и руководствах).
5. Дополнительные советы
-
Документация: Всегда полезно обратиться к документации вашего оборудования и программного обеспечения, чтобы лучше понять, как правильно выполнять ключевые действия.
-
Резервное копирование: Перед внесением изменений в BIOS всегда создавайте резервные копии, чтобы избежать потери данных или блокировки системы.
-
Сообщество: Участие в форумах и сообществах, таких как те, что вы приводите в ссылках, может предоставить вам полезную информацию и поддерживающие советы.
В заключение, для выполнения вашей задачи, вам необходимо запускать bootx64.efi
из интерфейса UEFI, а не из FreeDOS. Обязательно убедитесь в корректности выполнения всех шагов, чтобы избежать нежелательных последствий.