Могу ли я обновить свой BIOS внутри виртуальной машины?
У меня Lenovo Y510P, и он работает под управлением Linux (Antergos). Я читал, что мне нужно иметь Windows для обновления BIOS. Я предполагаю, что нет, потому что это среда с песочницей, но я хочу быть уверенным, потому что у меня было много проблем с загрузочными меню, устанавливающими новые ОС.
1 ответ
Технически да, это возможно. Практически ни на одной виртуальной машине, которую я пробовал.
Проблема в том, что вам нужно
- Узнайте, на какие аппаратные устройства записывает программа обновления BIOS. (Как какое-нибудь устройство NVRAM.)
- Сообщите операционной системе вашего хоста об этом оборудовании. (Например, если они хранятся в виде файла в /dev/. Драйвер требуется только для устройств, к которым он подключен… например, для шины.)
- Заставьте вашу виртуальную машину передавать эти устройства гостю.
При Linux в качестве хоста шаги 1 и 2 должны быть выполнимы, если аппаратное обеспечение не является чем-то проприетарным или очень экзотическим. (Например, NVRAM — это просто.) Проблема в том, что ни одна известная мне виртуальная машина не может проходить через произвольное оборудование. Они могут использовать USB, PCI, накопители и т. д. Но не просто какое-то случайное оборудование. Потому что, и это мой ответ: программному обеспечению виртуальной машины также понадобится своего рода «драйвер», чтобы знать, как на самом деле выполнять передачу, определяя при этом, что разрешено клиенту.
Итак, на практике есть два варианта:
- Аппаратное обеспечение, которое Linux может рассматривать как «обычное» оборудование… Например, NVRAM может быть представлено как обычное блочное устройство, которое вы можете
dd
к. Вам вообще не нужна виртуальная машина, и вы можете выполнить обновление прямо из Linux. (Однако будьте осторожны, поскольку оригинальные программы обновления BIOS обычно выполняют некоторые очень важные проверки, например, на совместимость с оборудованием и т. д. В противном случае вы можете получить кирпич.) - Что-нибудь еще, где вам придется внести свой вклад в KVM/qemu и добавить сквозную передачу для вашего конкретного оборудования.
TL;DR: Все возможно, если у вас есть на это все время. Если только это не выходит за рамки вашего горизонта событий. ;)
Или еще короче: Нет.