BIOS-Update ohne optisches Laufwerk unter Linux
Einleitung
Dieser Artikel beschreibt das Ausführen eines BIOS-Update für Linux-Benutzer. Dazu kommt entweder GRUB4DOS auf einem USB-Stick oder der Bootloader des installierten Linux-Systems zum Einsatz.
GRUB4DOS mit USB-Stick
Voraussetzungen
- Ein frisch mit FAT formatierter, leerer USB Stick
- ISO-Image des BIOS-Updates als Download von der Lenovo Website
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 und installieren
wget http://download.gna.org/grub4dos/grub4dos-0.4.4.zip unzip grub4dos-0.4.4.zip cd grub4dos-0.4.4 cp grldr /media/name-des-sticks/
Für den nächsten Schritt wird das korrekte Device sdX des Sticks benötigt.
Vorsicht: eine falsche Angabe des Device kann katastrophale Auswirkungen auf das installierte System haben, so ist z.B. sda in der Regel die Systemplatte.
dmesg: unmittelbar nach dem Anstecken führt man 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
lsblk: Bei den aktuellsten Linux-Distributionen kann man das Gerät auch per
lsblk
herausfinden.
Das 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.
System-Bootloader mit Syslinux
Hinweis: dieser Abschnitt funktioniert sinngemäß auch unter anderen Distributionen mit GRUB 1/2, nur das Paket syslinux heißt eventuell anders oder fehlt (auf die Version achten, siehe 10.04!).
Voraussetzungen
- Ubuntu 10.04 oder höher auf Festplatte installiert (kein Livesystem!)
- GRUB 2 (ist bei einem neu installierten Ubuntu automatisch der Fall)
- ISO-Image des BIOS-Updates als Download von der Lenovo Website Lenovo Website].
Hinweis: die hier beschriebene Vorgehensweise funktioniert nicht mit einer EFI-Installation (im Paket grub-efi-amd64 fehlt das Modul linux16).
Installation
ISO-Image kopieren
Den Download kopiert man nach /boot:
sudo cp /pfad/zur/iso-datei /boot/thinkpadbios.iso
Syslinux einrichten
Ubuntu 11.04 und höher
Zu installieren ist das Paket
- syslinux
sudo apt-get install syslinux
Anschließend ist das enthaltene Werkzeug memdisk nach /boot zu kopieren
sudo cp /usr/lib/syslinux/memdisk /boot/
Ubuntu 10.04
Mit dem in Ubuntu 10.04 enthaltenen Syslinux-Paketen funktioniert das BIOS-Update nicht.
Daher lädt man das Paket syslinux-common aus 12.04 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/
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
GRUB 1 / GRUB Legacy
Falls man noch eine Distribution mit GRUB 1 (GRUB Legacy) verwendet (z.B. Archlinux), dann kann man das ISO ebenfalls einbinden. Dazu fügt man in /boot/grub/menu.lst folgendes hinzu:
# BiosUpdate title ThinkPad BIOS Update root (hd0,0) # Analog den anderen Einträgen anpassen kernel /boot/memdisk iso initrd /boot/thinkpadbios.iso
Man muss wie bei GRUB 2 syslinux installieren und memdisk sowie das thinkpadbios.iso nach /boot kopieren.
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
- X220 - BIOS Update mit USB-Stick – mit Ultraiso
- [1] – mit GRUB4DOS