BIOS-Update ohne optisches Laufwerk unter Linux: Unterschied zwischen den Versionen

Aus ThinkPad-Wiki
Keine Bearbeitungszusammenfassung
 
(109 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einleitung ==
= Einleitung =
Dieser Artikel beschreibt das Ausführen eines BIOS-Update mithilfe von Grub und SysLinux. Zur Durchführung wird weder ein optisches Laufwerk noch ein USB-Speicherstick benötigt.
Dieser Artikel beschreibt das Ausführen eines BIOS-Update von einem USB-Medium oder von der Festplatte mittels GRUB-Menü für Linux-Benutzer.


= El Torito Image auf USB-Stick (nur UEFI) =
== Voraussetzungen ==
* Ein ThinkPad der Sandy Bridge Generation X220/T420 etc. oder neuer mit UEFI – für ältere Modelle verwendet man stattdessen die [[#GRUB4DOS_mit_USB-Stick|GRUB4DOS-Methode]]
* Ein USB Stick > 100 MB, Formatierung egal
* ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]])
* geteltorito Version 0.6
<u>'''Wichtig:'''</u> das Update-Medium für das X220 bootet im Legacy Modus (CSM), neuere Modelle müssen im UEFI-Modus gebootet werden. Um beiden Fällen gerecht zu werden, muss im UEFI-Setup unter ''"Startup"'' eine der folgenden Einstellungskombinationen aktiv sein
{| class="wikitable"
|-
| '''UEFI/Legacy Boot''' || Both || Both
|-
| '''UEFI/Legacy Boot Priority''' || UEFI first || Legacy first
|}
== geteltorito installieren ==
Seit dem 01.06.2024 ist das geteltorito PERL Skript umgezogen. geteltorito lädt man sich nun von der Github-Seite des Autors mit
git clone https://github.com/rainer042/geteltorito.git
ins selbe Verzeichnis wie das ISO-Image herunter und macht es ausführbar mit:
  chmod +x geteltorito.pl
===Alternative Downloadmöglichkeit===
  wget https://download.linrunner.de/scripts/geteltorito.pl
  chmod +x geteltorito.pl
== El Torito Image aus ISO extrahieren ==
Das El Torito Boot Image (.img) extrahiert man aus dem Update-ISO (.iso) mit
./geteltorito.pl -o thinkpadbios.img 8duj26us.iso
<u>Hinweis:</u> "8duj26us.iso" ersetzt man durch den tatsächlichen Namen des ISOs.
== El Torito Image auf USB-Stick schreiben ==
Für den Scheibvorgang wird das Device sdX des Sticks benötigt, das man wie [[#Device_des_Sticks_ermitteln|unten]] beschrieben ermittelt, in das folgende Kommando einsetzt und es ausführt:
sudo dd if=thinkpadbios.img of=/dev/sdX bs=1M status=progress && sync
Wichtig ist, dass der Datenträger nicht eingehängt ist und das sdX nicht mit einer Partitionsnummer weiter spezifiziert wird, wie z.b. sdc1 oder sda2! Beim Beschreiben mittels dd wird der Datenträger automatisch formatiert.
== Ausführen ==
Die Ausführung des Updates ist am [[#BIOS_Update_ausf.C3.BChren|Ende dieses Artikels]] zusammengefaßt.
= GRUB4DOS mit USB-Stick =
== Voraussetzungen ==
== Voraussetzungen ==
* Ubuntu 10.04 "Lucid Lynx" oder 10.10 "Maverick Meerkat" auf Festplatte installiert (kein Livesystem!)
* Ein frisch mit FAT'''32''' formatierter, leerer USB Stick > 100 MB
* Grub2 (ist bei einem neu installierten Ubuntu 10.04/10.10 automatisch der Fall)
* ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]])
* ISO-Image des BIOS-Updates als Download von der [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TPAD-MATRIX Lenovo Website].
 
== Optional: Erzeugen des ISO aus einem "Non-Diskette"-BIOS ==
Falls für das betreffende ThinkPad-Modell kein ISO zum Download angeboten wird, lädt man das "Non-Diskette"-BIOS herunter. Um  aus diesem ein ISO zu erzeugen, werden für Debian/Ubuntu die Pakete
* '''cabextract''' sowie
* '''genisoimage''' bzw. '''mkisofs'''
benötigt, andere Distributionen können abweichen.
 
Mit folgenden Befehl wird die EXE-Datei entpackt:
cabextract 70uj29ud.exe -d ./BIOS
Wobei "70uj29ud.exe" auf den entsprechenden Dateinamen angepasst werden muss. '''./BIOS''' ist ein Unterordner im aktuellen Ordner der von cabextract erstellt wird, um die entpackten Dateien abzulegen. Der Name kann frei editiert bzw. die Option -d komplett weggelassen werden, um die Dateien an anderer Stelle zu entpacken.
 
Im Anschluß wechselt man in das oben eingetragene Verzeichnis
cd BIOS
und erstellt mit folgendem Befehl aus dem entpacktem IMG ein ISO:
genisoimage -b 70uj29ud.img -c boot.catalog -o 70uj29ud.iso .
Hiermit wird im aktuellen Verzeichnis (.) die Datei 70uj29ud.iso erzeugt, die nachfolgend weiter verwendet werden kann.
 
== Erstellen des bootfähigen USB-Sticks ==
=== ISO-Image auf den Stick kopieren ===
cp /pfad/zur/iso-datei /media/name-des-sticks/thinkpadbios.iso
sync
 
=== GRUB4DOS herunterladen, auspacken ===
wget https://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip
unzip grub4dos-0.4.4.zip
cd grub4dos-0.4.4
cp grldr /media/name-des-sticks/
 
Zum Installieren von GRUB4DOS wird das korrekte Device sdX des Sticks benötigt.
 
=== Device des Sticks ermitteln ===
'''<u>Vorsicht:</u> eine falsche Angabe des Device kann katastrophale Auswirkungen auf das installierte System haben, so ist z.B. <u>sda</u> in der Regel die Systemplatte.'''
 
'''lsblk:''' Bei aktuellen Linux-Distributionen kann man das Gerät auch per
lsblk
herausfinden. Die Systemplatte ist meist sda, der Stick sdb, sdc oder höher und findet sich normalerweise am Ende der Liste. Dabei auf die Grösse achten (Spalte SIZE).
 
Alternativ verwendet man '''dmesg:''' dazu führt man unmittelbar nach dem Anstecken folgendes Kommando aus
dmesg | grep "Attached SCSI removable disk" | tail -1
In der Ausgabe ist das gesuchte Device sdX zu sehen:
[ 1234.567890] sd 0:0:0:0: [sdX] Attached SCSI removable disk
 
=== GRUB4DOS installieren ===
Das vorstehend ermittelte Device sdX setzt man nun in folgendes Kommando ein und führt es aus:
sudo ./bootlace.com /dev/sdX
Ausgabe:
Disk geometry calculated according to the partition table:
        Sectors per track = xx, Number of heads = yyy
Success.
 
=== GRUB4DOS konfigurieren ===
Zuletzt erstellt man die Datei '''menu.lst''' auf dem Stick:
gedit /media/name-des-sticks/menu.lst
Inhalt:
color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default
title ThinkPad BIOS Update
map (hd0,0)/thinkpadbios.iso (hd32)
map --hook
chainloader (hd32)
boot
 
== Ausführen ==
Die Ausführung des Updates ist am [[#BIOS_Update_ausf.C3.BChren|Ende dieses Artikels]] zusammengefaßt.
 
= Boot-Option memdisk auf lokaler Festplatte (nur BIOS) =
 
Mit GRUB lässt sich ein DOS-Boot-Image normalerweise nicht direkt starten, deshalb wird hier der Umweg über '''memdisk''' aus dem [http://www.syslinux.org Syslinux-Projekt] erklärt. Seit Ubuntu 14.04 gibt es allerdings das Paket [https://packages.ubuntu.com/xenial/grub-imageboot grub-imageboot], mit dem man es auch mal versuchen könnte.
 
<u>Hinweis:</u> Dieser Abschnitt funktioniert sinngemäß auch unter anderen Distributionen mit GRUB 1/2, nur das Paket '''syslinux-common''' heißt eventuell anders oder fehlt.
 
== Voraussetzungen ==
* Ubuntu 12.04 oder höher auf Festplatte installiert (kein Livesystem!)
* GRUB 2 (ist bei einem neu installierten Ubuntu automatisch der Fall)
* ISO-Image (Notfalls [[#Optional:_Erzeugen_des_ISO_aus_einem_.22Non-Diskette.22-BIOS|selbst konvertieren]]) des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]])
<u>Hinweis:</u> Die hier beschriebene Vorgehensweise ''funktioniert nicht'' mit einer <u>EFI</u>-Installation (im Paket '''grub-efi-amd64''' fehlt das Modul '''linux16''').
<br />
<u>Frage zu Hinweis:</u> Stimmt das wirklich? Das Modul '''linux16''' ist nämlich auch [https://packages.ubuntu.com/xenial/amd64/grub-efi-amd64-bin/filelist im Paket '''grub-efi-amd64''' enthalten]. Bitte mal nachprüfen, ob die Methode evtl. doch auf UEFI funktioniert (zumindest ab Ubuntu 16.04), und das Ergebnis hier einpflegen. Evtl. helfen auch die Pakete [https://packages.ubuntu.com/xenial/grub-imageboot grub-imageboot] oder [https://packages.ubuntu.com/xenial/syslinux-efi syslinux-efi (ab Ubuntu 16.04)] weiter ([[Benutzer:UlfZi|UlfZi]]).


== Installation ==
== Installation ==
=== ISO-Image kopieren ===
=== ISO-Image kopieren ===
Den Download kopiert man nach '''/boot''':
Den Download kopiert man nach '''/boot''':
  sudo cp /pfad/zur/iso-datei /boot/biosupdate.iso
  sudo cp /pfad/zur/iso-datei /boot/thinkpadbios.iso
 
=== SysLinux einrichten ===
==== Ubuntu 10.04 ====
Mit dem in Ubuntu 10.04 enthaltenen SysLinux-Paket funktioniert das BIOS-Update nicht.
 
Daher lädt man  das [http://packages.ubuntu.com/maverick/all/syslinux-common/download Paket aus 10.10] herunter, entpackt es mit
cd /pfad/zum/paket/
dpkg -X syslinux-common_VERSION_all.deb .
und kopiert das Werkzeug '''memdisk''' nach '''/boot'''
sudo cp ./usr/lib/syslinux/memdisk /boot/


==== Ubuntu 10.10 ====
=== Syslinux einrichten ===
==== Ubuntu 12.04 und höher ====
Zu installieren ist das Paket
Zu installieren ist das Paket
* '''syslinux'''
* '''syslinux-common'''
  sudo apt-get install syslinux
  sudo apt-get install syslinux-common


Anschließend ist das enthaltene Werkzeug '''memdisk''' nach '''/boot''' zu kopieren
Anschließend ist das enthaltene Werkzeug '''memdisk''' nach '''/boot''' zu kopieren
  sudo cp /usr/lib/syslinux/memdisk /boot/
  sudo cp /usr/lib/syslinux/memdisk /boot/


=== Grub konfigurieren ===
=== GRUB 2 konfigurieren ===
Mit einem [http://wiki.ubuntuusers.de/Editor#Root-Rechte-Bearbeiten-von-Systemdateien Editor mit Root-Rechten] bearbeitet man die Datei '''/etc/grub.d/40_custom''' und fügt folgende Zeilen am Ende hinzu:
Mit einem [http://wiki.ubuntuusers.de/Editor#Root-Rechte-Bearbeiten-von-Systemdateien Editor mit Root-Rechten] bearbeitet man die Datei '''/etc/grub.d/40_custom''' und fügt folgende Zeilen am Ende hinzu:
  menuentry "ThinkPad BIOS Update" {
  menuentry "ThinkPad BIOS Update" {
       set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
       set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
       linux16 /boot/memdisk iso
       linux16 /boot/memdisk iso
       initrd16 /boot/biosupgrade.iso
       initrd16 /boot/thinkpadbios.iso
}
 
Hat man für '''/boot''' eine separate Partition eingerichtet, lauten die Einträge so:
Hat man für '''/boot''' eine separate Partition eingerichtet, lauten die Einträge so:
  menuentry "ThinkPad BIOS Update" {
  menuentry "ThinkPad BIOS Update" {
       set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
       set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
       linux16 memdisk iso
       linux16 /memdisk iso
       initrd16 biosupgrade.iso
       initrd16 /thinkpadbios.iso
}


Um beim Systemstart das Grub-Bootmenü anzuzeigen, sind in der Datei '''/etc/default/grub''' die beiden folgenden Zeilen wie gezeigt mit '#' auszukommentieren:
Um beim Systemstart das GRUB-Bootmenü anzuzeigen, sind in der Datei '''/etc/default/grub''' die beiden folgenden Zeilen wie gezeigt mit '#' auszukommentieren:
  #GRUB_HIDDEN_TIMEOUT=0
  #GRUB_HIDDEN_TIMEOUT=0
  #GRUB_HIDDEN_TIMEOUT_QUIET=true
  #GRUB_HIDDEN_TIMEOUT_QUIET=true
Zuletzt werden alle Änderungen an Grub aktiviert mit
Zuletzt werden alle Änderungen an GRUB aktiviert mit
  sudo update-grub
  sudo update-grub


== BIOS Update ausführen ==
= BIOS Update ausführen =
'''Wichtig: das BIOS-Update unbedingt mit geladenem Akku und angeschlossenen Netzteil durchführen!'''
'''Wichtig: das BIOS-Update unbedingt mit geladenem Akku und angeschlossenen Netzteil durchführen!'''


System(neu)start ausführen und im Grub-Bootmenü den Eintrag
System neu starten, ggf. per [F12] den USB-Stick auswählen und im GRUB-Bootmenü den Eintrag
* "ThinkPad BIOS Update"
* "ThinkPad BIOS Update"
auswählen. Den Anweisungen des Programms folgen.
auswählen.  
 
<u>Hinweis:</u> bei einem UEFI-fähigen ThinkPad ist zu bedenken, dass der GRUB4DOS-USB-Stick nur im BIOS- d.h. Legacy-Modus gestartet werden kann. Dies ist im BIOS unter ''"Startup"'' entsprechend einzustellen: ''"Both"'', ''"Legacy first"''.
 
Nun den Anweisungen des Programms folgen.
 
Nach dem Update empfiehlt es sich, die BIOS-Einstellungen auf Defaults (Werkseinstellungen) zurückzusetzen:
* Beim Systemstart mit [F1] ins BIOS
* [F9] (Setup Defaults) [Enter] (Yes)
* eigene Anpassungen (z.B. SATA-Modus) wieder einpflegen
* [F10] (Save and Exit) [Enter] (Yes)
* sobald das ThinkPad-Logo erscheint, Gerät kurz ausschalten
 
= Quellen und Links =
* [http://support.lenovo.com/de/de Lenovo Support Website] – BIOS Downloads
*  [http://www.thinkwiki.org/wiki/BIOS_Upgrade/X_Series#Approach_10:_Booting_the_Lenovo_ISO_image_using_Grub_and_SysLinux 1], [http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk 2], [http://www.thinkwiki.org/wiki/BIOS_Upgrade#Using_grub4dos_.28also_for_Linux.29 3] – Anleitungen auf thinkwiki.org
* [http://wiki.ubuntuusers.de/GRUB_2/Konfiguration GRUB 2] – Konfiguration des Bootloaders
== Alternative Windows-basierte Methoden ==
* [http://thinkwiki.de/BIOS-Update_ohne_optisches_Laufwerk_unter_Windows] – mit GRUB4DOS, UltraISO oder Phlash16-Kommandos


== Quelle ==
[[Category:Linux]]
[http://www.thinkwiki.org/wiki/BIOS_Upgrade/X_Series#Approach_10:_Booting_the_Lenovo_ISO_image_using_Grub_and_SysLinux Anleitung auf thinkwiki.org]
[[Category:BIOS]]
[[Category:Ubuntu]]

Aktuelle Version vom 14. Oktober 2024, 22:27 Uhr

Einleitung

Dieser Artikel beschreibt das Ausführen eines BIOS-Update von einem USB-Medium oder von der Festplatte mittels GRUB-Menü für Linux-Benutzer.

El Torito Image auf USB-Stick (nur UEFI)

Voraussetzungen

  • Ein ThinkPad der Sandy Bridge Generation X220/T420 etc. oder neuer mit UEFI – für ältere Modelle verwendet man stattdessen die GRUB4DOS-Methode
  • Ein USB Stick > 100 MB, Formatierung egal
  • ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe Links)
  • geteltorito Version 0.6

Wichtig: das Update-Medium für das X220 bootet im Legacy Modus (CSM), neuere Modelle müssen im UEFI-Modus gebootet werden. Um beiden Fällen gerecht zu werden, muss im UEFI-Setup unter "Startup" eine der folgenden Einstellungskombinationen aktiv sein

UEFI/Legacy Boot Both Both
UEFI/Legacy Boot Priority UEFI first Legacy first

geteltorito installieren

Seit dem 01.06.2024 ist das geteltorito PERL Skript umgezogen. geteltorito lädt man sich nun von der Github-Seite des Autors mit

git clone https://github.com/rainer042/geteltorito.git

ins selbe Verzeichnis wie das ISO-Image herunter und macht es ausführbar mit:

 chmod +x geteltorito.pl 

Alternative Downloadmöglichkeit

 wget https://download.linrunner.de/scripts/geteltorito.pl
 chmod +x geteltorito.pl

El Torito Image aus ISO extrahieren

Das El Torito Boot Image (.img) extrahiert man aus dem Update-ISO (.iso) mit

./geteltorito.pl -o thinkpadbios.img 8duj26us.iso

Hinweis: "8duj26us.iso" ersetzt man durch den tatsächlichen Namen des ISOs.

El Torito Image auf USB-Stick schreiben

Für den Scheibvorgang wird das Device sdX des Sticks benötigt, das man wie unten beschrieben ermittelt, in das folgende Kommando einsetzt und es ausführt:

sudo dd if=thinkpadbios.img of=/dev/sdX bs=1M status=progress && sync

Wichtig ist, dass der Datenträger nicht eingehängt ist und das sdX nicht mit einer Partitionsnummer weiter spezifiziert wird, wie z.b. sdc1 oder sda2! Beim Beschreiben mittels dd wird der Datenträger automatisch formatiert.

Ausführen

Die Ausführung des Updates ist am Ende dieses Artikels zusammengefaßt.

GRUB4DOS mit USB-Stick

Voraussetzungen

  • Ein frisch mit FAT32 formatierter, leerer USB Stick > 100 MB
  • ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe Links)

Optional: Erzeugen des ISO aus einem "Non-Diskette"-BIOS

Falls für das betreffende ThinkPad-Modell kein ISO zum Download angeboten wird, lädt man das "Non-Diskette"-BIOS herunter. Um aus diesem ein ISO zu erzeugen, werden für Debian/Ubuntu die Pakete

  • cabextract sowie
  • genisoimage bzw. mkisofs

benötigt, andere Distributionen können abweichen.

Mit folgenden Befehl wird die EXE-Datei entpackt:

cabextract 70uj29ud.exe -d ./BIOS

Wobei "70uj29ud.exe" auf den entsprechenden Dateinamen angepasst werden muss. ./BIOS ist ein Unterordner im aktuellen Ordner der von cabextract erstellt wird, um die entpackten Dateien abzulegen. Der Name kann frei editiert bzw. die Option -d komplett weggelassen werden, um die Dateien an anderer Stelle zu entpacken.

Im Anschluß wechselt man in das oben eingetragene Verzeichnis

cd BIOS

und erstellt mit folgendem Befehl aus dem entpacktem IMG ein ISO:

genisoimage -b 70uj29ud.img -c boot.catalog -o 70uj29ud.iso .

Hiermit wird im aktuellen Verzeichnis (.) die Datei 70uj29ud.iso erzeugt, die nachfolgend weiter verwendet werden kann.

Erstellen des bootfähigen USB-Sticks

ISO-Image auf den Stick kopieren

cp /pfad/zur/iso-datei /media/name-des-sticks/thinkpadbios.iso
sync

GRUB4DOS herunterladen, auspacken

wget https://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip
unzip grub4dos-0.4.4.zip
cd grub4dos-0.4.4
cp grldr /media/name-des-sticks/

Zum Installieren von GRUB4DOS wird das korrekte Device sdX des Sticks benötigt.

Device des Sticks ermitteln

Vorsicht: eine falsche Angabe des Device kann katastrophale Auswirkungen auf das installierte System haben, so ist z.B. sda in der Regel die Systemplatte.

lsblk: Bei aktuellen Linux-Distributionen kann man das Gerät auch per

lsblk

herausfinden. Die Systemplatte ist meist sda, der Stick sdb, sdc oder höher und findet sich normalerweise am Ende der Liste. Dabei auf die Grösse achten (Spalte SIZE).

Alternativ verwendet man dmesg: dazu führt man unmittelbar nach dem Anstecken folgendes Kommando aus

dmesg | grep "Attached SCSI removable disk" | tail -1

In der Ausgabe ist das gesuchte Device sdX zu sehen:

[ 1234.567890] sd 0:0:0:0: [sdX] Attached SCSI removable disk

GRUB4DOS installieren

Das vorstehend ermittelte Device sdX setzt man nun in folgendes Kommando ein und führt es aus:

sudo ./bootlace.com /dev/sdX

Ausgabe:

Disk geometry calculated according to the partition table:
       Sectors per track = xx, Number of heads = yyy
Success.

GRUB4DOS konfigurieren

Zuletzt erstellt man die Datei menu.lst auf dem Stick:

gedit /media/name-des-sticks/menu.lst

Inhalt:

color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default

title ThinkPad BIOS Update
map (hd0,0)/thinkpadbios.iso (hd32)
map --hook
chainloader (hd32)
boot

Ausführen

Die Ausführung des Updates ist am Ende dieses Artikels zusammengefaßt.

Boot-Option memdisk auf lokaler Festplatte (nur BIOS)

Mit GRUB lässt sich ein DOS-Boot-Image normalerweise nicht direkt starten, deshalb wird hier der Umweg über memdisk aus dem Syslinux-Projekt erklärt. Seit Ubuntu 14.04 gibt es allerdings das Paket grub-imageboot, mit dem man es auch mal versuchen könnte.

Hinweis: Dieser Abschnitt funktioniert sinngemäß auch unter anderen Distributionen mit GRUB 1/2, nur das Paket syslinux-common heißt eventuell anders oder fehlt.

Voraussetzungen

  • Ubuntu 12.04 oder höher auf Festplatte installiert (kein Livesystem!)
  • GRUB 2 (ist bei einem neu installierten Ubuntu automatisch der Fall)
  • ISO-Image (Notfalls selbst konvertieren) des BIOS-Updates als Download von der Lenovo Website (siehe Links)

Hinweis: Die hier beschriebene Vorgehensweise funktioniert nicht mit einer EFI-Installation (im Paket grub-efi-amd64 fehlt das Modul linux16).
Frage zu Hinweis: Stimmt das wirklich? Das Modul linux16 ist nämlich auch im Paket grub-efi-amd64 enthalten. Bitte mal nachprüfen, ob die Methode evtl. doch auf UEFI funktioniert (zumindest ab Ubuntu 16.04), und das Ergebnis hier einpflegen. Evtl. helfen auch die Pakete grub-imageboot oder syslinux-efi (ab Ubuntu 16.04) weiter (UlfZi).

Installation

ISO-Image kopieren

Den Download kopiert man nach /boot:

sudo cp /pfad/zur/iso-datei /boot/thinkpadbios.iso

Syslinux einrichten

Ubuntu 12.04 und höher

Zu installieren ist das Paket

  • syslinux-common
sudo apt-get install syslinux-common

Anschließend ist das enthaltene Werkzeug memdisk nach /boot zu kopieren

sudo cp /usr/lib/syslinux/memdisk /boot/

GRUB 2 konfigurieren

Mit einem Editor mit Root-Rechten bearbeitet man die Datei /etc/grub.d/40_custom und fügt folgende Zeilen am Ende hinzu:

menuentry "ThinkPad BIOS Update" {
      set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
      linux16 /boot/memdisk iso
      initrd16 /boot/thinkpadbios.iso
}

Hat man für /boot eine separate Partition eingerichtet, lauten die Einträge so:

menuentry "ThinkPad BIOS Update" {
      set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
      linux16 /memdisk iso
      initrd16 /thinkpadbios.iso
}

Um beim Systemstart das GRUB-Bootmenü anzuzeigen, sind in der Datei /etc/default/grub die beiden folgenden Zeilen wie gezeigt mit '#' auszukommentieren:

#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

Zuletzt werden alle Änderungen an GRUB aktiviert mit

sudo update-grub

BIOS Update ausführen

Wichtig: das BIOS-Update unbedingt mit geladenem Akku und angeschlossenen Netzteil durchführen!

System neu starten, ggf. per [F12] den USB-Stick auswählen und im GRUB-Bootmenü den Eintrag

  • "ThinkPad BIOS Update"

auswählen.

Hinweis: bei einem UEFI-fähigen ThinkPad ist zu bedenken, dass der GRUB4DOS-USB-Stick nur im BIOS- d.h. Legacy-Modus gestartet werden kann. Dies ist im BIOS unter "Startup" entsprechend einzustellen: "Both", "Legacy first".

Nun den Anweisungen des Programms folgen.

Nach dem Update empfiehlt es sich, die BIOS-Einstellungen auf Defaults (Werkseinstellungen) zurückzusetzen:

  • Beim Systemstart mit [F1] ins BIOS
  • [F9] (Setup Defaults) [Enter] (Yes)
  • eigene Anpassungen (z.B. SATA-Modus) wieder einpflegen
  • [F10] (Save and Exit) [Enter] (Yes)
  • sobald das ThinkPad-Logo erscheint, Gerät kurz ausschalten

Quellen und Links

Alternative Windows-basierte Methoden

  • [1] – mit GRUB4DOS, UltraISO oder Phlash16-Kommandos