Записать загрузочное обновление BIOS .ISO на флешку

14

Lenovo распространяет обновления BIOS в виде файлов .iso ( пример ), которые должны быть записаны на компакт-диск и загружены. Запись его на компакт-диск работала и загружалась правильно, но теперь я хочу вместо этого использовать флешку (потому что я не доверяю своему CD-приводу), как создать эту флешку с помощью Ubuntu?

Существует множество учебных пособий, объясняющих, как создавать загрузочные флешки USB из ISO-файлов на основе Linux (с помощью UNetbootin и аналогичных файлов, они создают файлы, связанные с Linux, в корне флешки USB) и из утилит на основе Windows (с FreeDOS и аналогичными). Я считаю, что здесь тоже нет решений, так как ISO-файл обновления BIOS не основан на Linux или DOS (при монтировании ISO не отображается ни одна известная файловая система).

Николас Рауль
источник
1
Вы пытались сбросить ISO-содержимое на USB? Для этого выполните следующую команду: # dd if=/path/to/iso of=/dev/yourusb bs=4M. ВНИМАНИЕ : ваш USB будет удален . Также, пожалуйста, дважды проверьте путь к вашему USB-накопителю
Arch пользователь
@Archuser: Это работает только в том случае, если ISO-образы были созданы для загрузки в этой конкретной конфигурации. Обычные загрузочные ISO-образы не могут быть загружены таким образом.
Дэвид Фёрстер
Убедитесь, что вы вызываете «sudo sync» дважды после команды dd. в противном случае ядро ​​может не синхронизировать записанные данные из кэша ядра на диск.
Матиас

Ответы:

16

Я нашел то, что может быть решением проблемы в http://positon.org/lenovo-thinkpad-bios-update-with-linux-and-usb .

Сначала преобразуйте isoизображение в imgфайл:

sudo apt-get install genisoimage
geteltorito -o bios.img gruj09us.iso

Затем скопируйте на USB-ключ:

sudo fdisk -l /dev/sdb  # double check that the device is right
sudo dd if=bios.img of=/dev/sdb #Will Erase the drive!! 

Тем не менее, я думаю, что вы должны сначала попробовать, нормально ли загружается, если вы просто напишите .iso с помощью стандартного инструмента, как обычно. (При условии, что он нуждается в некотором вводе и не запускает автоматическое изменение в вашем BIOS при загрузке.) Последние два раза я установил Linux, я не использовал рекомендуемый инструмент. (Я сделал загрузочный USB для 15.04 с SUSE Studio Image Writer, так как Unetbootin испортил его несколько раз. Это работало нормально.)

jetpackneedsrepair
источник
1
После того, как вы обновили свой BIOS, восстановите USB до полной емкости с помощью: # dd count=1 bs=512 if=/dev/zero of=/dev/sdbи отформатируйте USB после этого
пользователь Arch
Это сработало! Не уверен, что такое eltorito, но это решило проблему.
Николас Рауль
2
Для записей: ISO состоит из пустого корневого каталога и скрытого загрузочного образа BIOS, который является эмулированным жестким диском. geteltorito находит образ диска, читая загрузочный каталог El Torito. Затем он узнает размер изображения из таблицы разделов MBR в изображении. Наконец, он извлекает изображение в целевой файл. Это загружается с USB-накопителя только потому, что все необходимое программное обеспечение находится на эмулируемом жестком диске. Очень своеобразная ситуация.
Томас Шмитт
Я попробовал это, но не смог загрузить его для Lenovo T510. Я определенно зацепил загрузочный BIOS, но когда он сгорел на USB, там ничего не было (это нормально?). Когда я пытался загрузить сообщение об ошибке было то, что не было ОС? Есть идеи??
shaneonabike
проверьте также эту ссылку: ubuntuforums.org/showthread.php?t=1852425 и thinkwiki.org/wiki/…
TiloBunt
2

Как сказал пользователь Arch в комментариях, самый простой способ записать загрузочный ISO на USB-диск - ddэто образ на диск.

Первая тройная проверка, к какому блочному устройству подключен ваш USB-накопитель:

lsblk

Чем ddобраз на USB-накопитель. Например, если ваш USB-накопитель подключен к /dev/sdb:

sudo dd if=/path/to/image of=/dev/sdb bs=8M && sync

Различные размеры блоков обычно имеют разную форму, однако обычно больший размер блока работает лучше, чем меньший размер блока; размера блока 8M должно быть достаточно, чтобы процесс работал на полной скорости.

Если вы хотите следить за ходом процесса, установите pv:

sudo apt-get update && sudo apt-get install pv

И запустите эту команду вместо:

pv /path/to/image | sudo dd of=/dev/sdb bs=8M && sync
кос
источник
2
Вы должны добавить && sync к dd
ps95
@ prakharsingh95 Прекрасное замечание. Спасибо
Кос
2
Прямое копирование ISO на USB-накопитель загружается только через BIOS, если ISO начинается с MBR. Это дополнительная функция, обычно называемая «изогибрид». Все основные дистрибутивы Linux имеют свои установочные ISO-образы, оборудованные таким образом. Но у Lenovo ISO нет MBR, только каталог загрузки El Torito для загрузки через BIOS с CD / DVD / BD. Тем не менее, он имеет все необходимое в скрытом загрузочном образе, начиная с блока ISO 27, который эмулирует жесткий диск.
Томас Шмитт
0

На всякий случай, если кто-то все еще ищет ответ.

Решение выше в одиночку было не достаточно для моего Lenovo E470 , который является UEFI-способным. Утилита обновления BIOS просто не запускается с флешки.

Нужно прочитать файл README, соответствующий файлу обновления BIOS.

При перезагрузке нажмите Enter, чтобы прервать нормальный запуск, и после входа в BIOS Setup:

...
-> 7. В «UEFI / Legacy Boot» убедитесь, что выбран «UEFI only».
   8. Выберите «Boot» из меню. Обратите внимание на текущий порядок приоритета загрузки для
      восстановление позже, если вам нужно изменить свой загрузочный список.
   9. В «Порядке загрузки» убедитесь, что следующее устройство находится сверху
      "ATA HDD0".
      - «ATAPI CD0» (при использовании внутреннего оптического привода ThinkPad)
      - «USB CD» (при использовании оптического привода USB)
-> - «USB HDD» (для моей флешки)

После перезагрузки вы сможете загрузиться с «USB HDD».

algo99
источник
Lenovo упоминает об этом в своем README на странице загрузки BIOS, но это хорошо, чтобы напомнить людям.