Schreiben Sie das bootfähige BIOS-Update .ISO auf den USB-Stick

14

Lenovo verteilt BIOS-Updates als .iso-Dateien ( Beispiel ), die auf eine CD gebrannt und gebootet werden sollen. Das Brennen auf eine CD hat funktioniert und ist korrekt gebootet, aber jetzt möchte ich stattdessen einen USB-Stick verwenden (weil ich meinem CD-Laufwerk nicht vertraue). Wie erstelle ich diesen USB-Stick mit Ubuntu?

Es gibt viele Tutorials, in denen erklärt wird, wie bootfähige USB-Sticks aus Linux-basierten ISOs (mit UNetbootin und ähnlichem) und aus Windows-basierten Dienstprogrammen (mit FreeDOS und ähnlichem) erstellt werden. Ich glaube, hier gibt es keine Lösungen, da die ISO-Datei für das BIOS-Update weder auf Linux noch auf DOS basiert (beim Mounten des ISO wird kein bekanntes Dateisystem angezeigt).

Nicolas Raoul
quelle
1
Haben Sie versucht, den ISO-Inhalt auf einen USB-Stick zu übertragen? Um dies zu tun, führen Sie den folgenden Befehl ein : # dd if=/path/to/iso of=/dev/yourusb bs=4M. WARNUNG : Ihr USB wird gelöscht . Auch bitte überprüfen Sie den Pfad zu Ihrem USB - Block - Laufwerk
Arch Benutzer
@Archuser: Dies funktioniert nur, wenn die ISO-Images so erstellt wurden, dass sie in dieser bestimmten Konfiguration gestartet werden können. Normale bootfähige ISO-Images können so nicht gebootet werden.
David Foerster
Stellen Sie sicher, dass Sie "sudo sync" zweimal nach dem Befehl dd aufrufen. Andernfalls synchronisiert der Kernel die geschriebenen Daten möglicherweise nicht vom Kernel-Cache auf das Laufwerk.
Matthias

Antworten:

16

Ich habe unter http://positon.org/lenovo-thinkpad-bios-update-with-linux-and-usb eine Lösung für das Problem gefunden .

Konvertieren Sie zuerst das isoBild in eine imgDatei:

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

Dann kopieren Sie auf den USB-Stick:

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

Das heißt, ich denke, Sie sollten einfach zuerst versuchen, ob es in Ordnung bootet, wenn Sie die ISO-Datei mit einem generischen Tool schreiben, wie Sie es normalerweise tun würden. (Vorausgesetzt, es benötigt Eingaben und fängt beim Booten nicht automatisch an, in Ihrem BIOS herumzuspielen.) Die letzten beiden Male, als ich ein Linux installiert habe, habe ich nicht das empfohlene Tool verwendet. (Ich habe mit SUSE Studio Image Writer einen bootfähigen USB-Stick für 15.04 erstellt, da Unetbootin ihn mehrere Male durcheinander gebracht hat. Es hat einwandfrei funktioniert.)

jetpacknotreparatur
quelle
1
Nachdem Sie Ihr BIOS aktualisiert haben, stellen Sie die USB-Kapazität wieder her mit: # dd count=1 bs=512 if=/dev/zero of=/dev/sdbund formatieren Sie den USB-
Arch-Benutzer
Das hat funktioniert! Ich bin nicht sicher, was eltorito ist, aber es hat das Problem gelöst.
Nicolas Raoul
2
Für die Datensätze: Die ISO besteht aus einem leeren Stammverzeichnis und einem versteckten BIOS-Boot-Image, das eine emulierte Festplatte ist. geteltorito findet das Disk-Image durch Lesen des El Torito-Boot-Katalogs. Dann lernt es die Bildgröße aus der MBR-Partitionstabelle im Bild. Schließlich wird das Bild in die Zieldatei extrahiert. Dieser bootet nur vom USB-Stick, da sich die gesamte benötigte Software auf der emulierten Festplatte befindet. Eine sehr eigenartige Situation.
Thomas Schmitt
Ich habe es versucht, konnte es aber nicht zum Booten für Lenovo T510 bringen. Ich habe definitiv das bootfähige BIOS geschnappt, aber als es auf den USB-Stick gebrannt ist, war nichts da (ist das normal?). Als ich versuchte zu booten, war die Fehlermeldung, dass es kein Betriebssystem gab? Irgendwelche Ideen??
Shaneonabike
Überprüfen Sie auch diesen Link: ubuntuforums.org/showthread.php?t=1852425 und thinkwiki.org/wiki/…
TiloBunt
2

Wie der Arch-Benutzer in den Kommentaren sagte, ist der einfachste Weg, eine bootfähige ISO auf ein USB-Laufwerk zu schreiben, dddas Image auf das Laufwerk.

Erstes triple -check zu dem Block - Gerät USB - Laufwerk gerade abgebildet wird:

lsblk

Dann dddas Image auf das USB-Laufwerk. Zum Beispiel, wenn Ihr USB-Laufwerk zufällig zugeordnet ist /dev/sdb:

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

Unterschiedliche Blockgrößen verhalten sich normalerweise unterschiedlich, jedoch ist eine größere Blockgröße in der Regel besser als eine kleinere Blockgröße. Eine Blockgröße von 8M sollte ausreichen, um den Prozess mit voller Geschwindigkeit laufen zu lassen.

Wenn Sie den Fortschritt des Prozesses überwachen möchten, installieren Sie Folgendes pv:

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

Führen Sie stattdessen diesen Befehl aus:

pv /path/to/image | sudo dd of=/dev/sdb bs=8M && sync
kos
quelle
2
Du musst && sync zu dd
ps95 hinzufügen.
@ prakharsingh95 Schöne Bemerkung. Danke
kos
2
Flatly kopierte ISO auf USB-Stick bootet nur über BIOS, wenn die ISO von einem MBR beginnt. Dies ist ein zusätzliches Merkmal, das allgemein als "Isohybrid" bezeichnet wird. Alle großen Linux-Distributionen haben ihre Installations-ISOs auf diese Weise ausgestattet. Das Lenovo ISO hat jedoch keinen MBR, sondern nur einen El Torito-Bootkatalog zum Booten über das BIOS von CD / DVD / BD. Trotzdem hat das versteckte Boot-Image ab ISO-Block 27, der eine Festplatte emuliert, alles Nötige.
Thomas Schmitt
0

Nur für den Fall, dass noch jemand nach der Antwort sucht.

Die obige Lösung reichte für mein UEFI-fähiges Lenovo E470 nicht aus. Das BIOS-Update-Programm startet einfach nicht vom USB-Stick.

Man muss die README-Datei lesen, die der BIOS-Update-Datei entspricht.

Drücken Sie beim Neustart die Eingabetaste, um den normalen Start zu unterbrechen, und nach dem Aufrufen des BIOS-Setups:

...
-> 7. Stellen Sie unter "UEFI / Legacy Boot" sicher, dass "UEFI only" ausgewählt ist.
   8. Wählen Sie "Boot" aus dem Menü. Beachten Sie die aktuelle Startreihenfolge für
      Wiederherstellung später, wenn Sie Ihre Startliste ändern müssen.
   9. Stellen Sie unter "Boot Priority Order" sicher, dass sich das folgende Gerät oben auf befindet
      "ATA HDD0".
      - "ATAPI CD0" (bei Verwendung eines internen optischen ThinkPad-Laufwerks)
      - "USB-CD" (bei Verwendung eines optischen USB-Laufwerks)
-> - "USB HDD" (für meinen USB-Stick)

Nach dem Neustart sollten Sie in der Lage sein, von Ihrer "USB HDD" zu booten.

algo99
quelle
Lenovo erwähnt dies in seiner README-Datei auf der BIOS-Download-Seite, aber es ist gut, die Leute daran zu erinnern.