• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]BIOS-Update unter Linux mit USB-Stick

Hallo zusammen,

ich mache hier mal ein neues Thema im Anschluß an diesen Beitrag http://www.linux-club.de/viewtopic.php?f=4&t=116818&p=737157#p737157 auf :

Ich habe eine neue BIOS-Version auf der Herstellerseite (Fujitsu Siemens) gefunden und überlege noch, ob ich die Installation wagen soll. Unsicher bin ich, weil ich nicht sicher bin, ob ich beim Runterladen des Updates alles richtig gemacht habe.

Leider scheitert die Download- und Installationsvariante unter Windows 7 mit "Reconnect of USB device failed. Please close all application accessing the drive.". Obwohl keine andere Anwendung offen war, wunderte mich diese Windows-Meldung nicht wirklich. Also habe ich danach die angebotene Linux-Variante gewählt.

Hierbei wurde ein Script erstellt, welches ich als root unter Linux aufrufen sollte. Dies habe ich gemacht und erhielt in der Konsole den Hinweis, daß die Ausgabe in /dev/fd0 erstellt sei. Tatsächlich fand ich auch in Dolphin unter /dev/fd0 eine Dateigröße von 1,4 MiB.

Da ich aber nicht wußte, wie ich von /dev/fd0 ohne Diskettenlaufwerk booten sollte, startete ich das Script nochmal mit dem Parameter /dev/sdh. Die Konsole präsentierte mir folgende Ausgabe:
Code:
Flash BIOS Update Diskette
V6.00 R1.06.2740_A2

Extracting 1474560 bytes ...
Writing 1474560 bytes to /dev/sdh...
1440+0 records in
1440+0 records out
1474560 bytes (1.5 MB) copied, 0.00692465 s, 213 MB/s
waiting for physical write to media ...
done.

To flash your system, please boot from the created floppy disk
Zwar soll ich immer noch von Diskette booten aber mein USB-Stick zeigt mir unter /media/BIOSUPDATE jetzt folgende Dateien:
Code:
-rw-r--r-- 1 benutzer users   4661 Jan 12  2009 A2740_A2.OMF
-rwxr-xr-x 1 benutzer users    199 Jan 12  2009 AUTOEXEC.BAT
-rwxr-xr-x 1 benutzer users 116582 Nov 30  2007 BIOFLASH.EXE
-rw-r--r-- 1 benutzer users   1393 Jan 12  2009 C2740_A2.OMF
-rwxr-xr-x 1 benutzer users  93963 Dec 10  2003 COMMAND.COM
-rw-r--r-- 1 benutzer users 469657 Jan 12  2009 D2740_A2.OCF
-rw-r--r-- 1 benutzer users  45378 Feb 25  2005 KERNEL.SYS
-rw-r--r-- 1 benutzer users    125 Jan 12  2009 M2740_A2.OMF
-rw-r--r-- 1 benutzer users 224256 Jan 12  2009 P6_INTEL.ALL
-rw-r--r-- 1 benutzer users   5989 Jan 12  2009 P6_INTEL.TXT
Das sieht doch eigentlich recht vielversprechend aus oder nicht???

Da meine jetztige BIOS-Version auf der Herstellerseite ebenfalls noch angeboten wird, frage ich mich, ob es sinnvoll ist auch diese auf einen anderen USB-Stick downzuloaden um eventuell zurückrudern zu können? Oder mag dann dieses im Bedarfsfall genauso scheitern wie die neue Version?

Gibts eine andere Möglichkeit die aktuelle BIOS-Version zurückladbar zu sichern?

Wäre für gute Tips wie immer dankbar.

Gruss H.
 
-1- was ist aktuelle BIOS Version
Code:
dmidecode --type bios
-2- Was hast Du wo heruntergeladen? (dass wire die Datei anschauen könen)

Gruss,
Roland
 
Nachtrag:
Da meine jetztige BIOS-Version auf der Herstellerseite ebenfalls noch angeboten wird, frage ich mich, ob es sinnvoll ist auch diese auf einen anderen USB-Stick downzuloaden um eventuell zurückrudern zu können? Oder mag dann dieses im Bedarfsfall genauso scheitern wie die neue Version? :???:
...ich würde meinen dass dies so ist!

Hast Du ein Motherboard Manual? Dort sollte bez. BIOS Update auch etwas zu lesen sein.

Also habe ich danach die angebotene Linux-Variante gewählt.
...
Das sieht doch eigentlich recht vielversprechend aus oder nicht???
[edited]...ja (siehe mein nächster Beitrag)

----------

Übrigens, es sollte Möglichkeiten geben ein Disketten Laufwerk zu emulieren. (hab dies selber aber noch nie gemacht) Zum Beispiel, für Linux, etwa so:

How to add a virtual or emulated Floppy drive in Ubuntu
http://ubuntuforums.org/showthread.php?t=1035940
(Beitrag #4)

Gibt wohl auch Windows Methoden (vielleicht einfach usb auf A: umbenennen?)... habe kein Windows :D

Gruss,
Roland

P.S. um auf einem ASUS Motherboard ein BIOS Update zu machen muss die Update Datei (nur eine einzige *.ROM Datei) auf einen USB-Stick kopiert werden (FAT32/16) und via BIOS-Setup >>> Tools >>> EZ Flash 2 auf das ROM geschrieben werden... also ganz einfach.

-/-
 
Zunächst mal die BIOS-Version: Phoenix Technologies 6.00 R1.02.2740.A2 vom 9.5.2008.

Ein Motherboard Manual habe ich nicht, müsste ich downloaden (wenn es angeboten wird).

Das Skript stammt von der Seite http://support.ts.fujitsu.com/Index.asp?LNG=DE. Dort über "Treiber & Downloads" das Produkt P2530 auswählen und weiter beim Betriebssystem "OS Independent (Bios, Firmware etc.)" anklicken. Dann bei "FLASH BIOS for D2740-A2x" auswählen: "Flash BIOS Update - Linux Boot Disk" Version 6.00.1.06 downloaden.

Der Befehlsteil des Skriptes (dahinter folgen 1,4 MB binäre Daten):
Code:
#!/bin/sh
#
# Copyright 2004-2009 Fujitsu Siemens Computers
#
# Shell script to create a bootable floppy disk for upgrading the BIOS on
# Fujitsu Siemens Computers.
#
# You need the following prerequisits to execute this script:
# - an installed C compiler (/usr/bin/cc)
# - write access to /dev/fd0
#   write access can be obtained by either
#   * running this script as root (not recommended)
#   * adding your userid to the group that owns /dev/fd0
#
# If you want to store the image elsewhere than /dev/fd0 please give the
# destination as a parameter.
#

echo
echo "Flash BIOS Update Diskette"
echo "V6.00 R1.06.2740_A2"
echo
                               
output="$1"
[ "$output" ] || output="/dev/fd0"
if [ -f "$output" -a ! -w "$output" ]; then
  echo >&2 "Error: Destination $output is not writable."
  exit 1
fi

echo "Extracting 1474560 bytes ..."
echo "#include <stdio.h>" > /tmp/2740A2R106.c
echo "int main(void) { FILE *in, *out; int i; char c; char *oif=\"/tmp/2740A2R106_img\";" >> /tmp/2740A2R106.c
echo "if ((in=fopen(\"$0\",\"rb\"))==NULL){perror(\"$0\"); return 1;}" >> /tmp/2740A2R106.c
echo "if ((out=fopen(oif,\"wb\"))==NULL){perror(oif); return 1;}" >> /tmp/2740A2R106.c
echo "if (fseek(in, -1474560, SEEK_END)) {perror(\"$0\"); return 1;}" >> /tmp/2740A2R106.c
echo "for(i=0;i<1474560;i++) {" >> /tmp/2740A2R106.c
echo "if (fread(&c,1,1,in)<=0) {perror(\"$0\"); return 1;}" >> /tmp/2740A2R106.c
echo "if (fwrite(&c,1,1,out)<=0) {perror(oif); return 1;}" >> /tmp/2740A2R106.c
echo "} fclose(in); return 0; }" >> /tmp/2740A2R106.c
cc -o/tmp/out /tmp/2740A2R106.c
if [ ! -f /tmp/out ]; then
  echo "error: can not created program"
  rm -f /tmp/2740A2R106.c /tmp/out 2>/dev/null
  exit 1
fi
chmod +x /tmp/out
/tmp/out
rm -f /tmp/2740A2R106.c /tmp/out

echo "Writing 1474560 bytes to $output..."
dd if=/tmp/2740A2R106_img of="$output" bs=1k
if [ $? -eq 0 ]; then
  echo "waiting for physical write to media ..."
  sync; sync
  echo "done."
  rm -f /tmp/2740A2R106_img
  echo
  echo "To flash your system, please boot from the created floppy disk"
  echo
  exit 0
fi
echo "failed."
rm -f /tmp/2740A2R106_img
exit 1

Gruss H.
 
A

Anonymous

Gast
Linux-boot-disk und Floppy-boot-disk sollten sich nicht unterscheiden. Es kommt in aller Regel in beiden Fällen eine Floppy mit einem kleinem DOS heraus. Das eine erstellt diese Floppy unter Linux und das andere unter Windows.

Der USB Stick ist das selbe in Grün (ebenfalls ein kleines DOS) nur hier ist es ein schon fertiges kleines Abbild, das für einen USB Stick gedacht ist. Wenn kein Diskettenlaufwerk vorhanden ist, oder nicht mehr zuverlässig funktioniert oder keine fehlerfreien Disketten mehr aufzutreiben sind, dann das USB Image benutzen( ich finde das sicherer)

Beim Herunterladen wird eine EXE Datei heruntergeladen, die weiter nichts ist wie eine ZIP-File.
Für Windows ist dort neben dem eigentlichem kleinem USB Image noch ein kleines Tool (USBImage.exe) dabei, mit dem man das Image auf den USB Stick schreiben kann und den USB Stick dann hinterher auch wieder normal nutzbar machen kann.

Unter LINUX kann man die EXE Datei aber auch nutzen. Die EXE herunterladen und mit unzip entpacken.
Code:
robi@linux:~/Downloads> unzip FTS_FlashBIOSUpdateUSBStick_600106_1031169.EXE
Archive:  FTS_FlashBIOSUpdateUSBStick_600106_1031169.EXE
  inflating: 2740A2R106_FD32MB.IMG
  inflating: FinalMessage.TXT
  inflating: USBImage.exe
die IMG Datei kann dann mit dd auf den USB Stick geschrieben werden.
Dazu einen bootfähigen USB Stick nehmen, (möglichst einen der nicht schon mal durch Schreib/Lesefehler negativ aufgefallen ist)
Dafür sorgen das er nach dem einstecken in Linux nicht gemountet ist. bzw den Stick erst umounten. Beim arbeiten mit dd natürlich die notwendige Sorgfalt walten lassen, damit man nicht die Festplatte statt dem Stick erwischt. ;)

zb der Stick ist hier im Beispiel /dev/sdc, dann das Image wie folgt draufschreiben. (sollten noch Daten auf dem Stick sein, werden diese zerstört, also eventuell vorher sichern.
Code:
dd if=2740A2R106_FD32MB.IMG of=/dev/sdc

Dann einfach von dem Stick booten. Wenn das Update fertig ist kann man mit fdisk dort die kleine 1. Partition auf dem USB Stick wieder löschen und eine neue Partition 1 über die gesamte Länge wieder anlegen. Dann noch ein neues Dateisystem auf /dev/sdc1 anlegen und der Stick ist wieder neu verwendbar.

Während des BIOS Updates den Rechner nicht ausschalten, nicht versuchen abzubrechen oder ähnliches, einfach die 1 Minute nach dem Bestätigen das er wirklich updaten soll, einfach abwarten und die Finger vom Rechner und von der Tastatur weit weg lassen.. Wenn man sich daran hält, kann dabei relativ wenig passieren. Das man sich einen BIOS mal zerflasht kommt überaus selten vor. Dann ist aber oft auch noch nicht immer alles verloren. Oft geht dann immer noch ein initial Bios flash. (also direkt und automatisch beim einschalten durch setzten von bestimmten Schaltern auf dem MainBoard )

Den Bios brauchst du nicht sichern, wenn du spezielle BIOS Einstellungen auf dem Rechner vorgenommen hast, dann diese vorher mal aufschreiben und hinterher mal überprüfen. Das sichern und der direkte Zugang zum BIOS oder ein BIOSupdate direkt von Linux aus ist unter LINUX zwar auch möglich, aber nicht ganz so einfach, dazu braucht man ein spezielles Kernelmodul, das man sich in der Regel erst selbst kompilieren müßte. (fertige Module gibts nur für einige kommerzielle Serverversionen). Bin mir nicht ganz sicher was da für eine Lizenzen drauf ist, deshalb hier keine näheren Ausführungen dazu. Würde man eventuell bei Servern machen, aber nicht auf solch "kleiner" Hardware.

robi
 
Ich habe gerade gesehen dass robi » 28. Okt 2012, 00:12 in gewohnt kompetenter Art das Wesentliche beigetragen hat. Da ich aber jetzt nicht mein weniges löschen will, poste ich es trotzdem.

Ich habe das Script heruntergeladen und Deine Schritte nachvollzogen... sieht gut aus würde ich sagen.
Code:
# sh FTS_FlashBIOSUpdateLinuxBootDisk_600106_1031172.SH
hat
Code:
-rw-r--r-- 1 root root   1474560 Oct 28 00:49 /dev/fd0
erzeugt. Dann
Code:
> file /dev/fd0
/dev/fd0: DOS floppy 1440k, x86 hard disk boot sector
>

# mount /dev/fd0 /mnt -o loop

# mount
...
/dev/fd0 on /mnt type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
#
und
Code:
# ls -la /mnt
total 953
drwxr-xr-x  2 root root   7168 Jan  1  1970 .
drwxr-xr-x 26 root root   4096 Oct 27 20:43 ..
-rwxr-xr-x  1 root root   4661 Jan 12  2009 A2740_A2.OMF
-rwxr-xr-x  1 root root    199 Jan 12  2009 AUTOEXEC.BAT
-rwxr-xr-x  1 root root 116582 Nov 30  2007 BIOFLASH.EXE
-rwxr-xr-x  1 root root   1393 Jan 12  2009 C2740_A2.OMF
-rwxr-xr-x  1 root root  93963 Dec 10  2003 COMMAND.COM
-rwxr-xr-x  1 root root 469657 Jan 12  2009 D2740_A2.OCF
-rwxr-xr-x  1 root root  45378 Feb 25  2005 KERNEL.SYS
-rwxr-xr-x  1 root root    125 Jan 12  2009 M2740_A2.OMF
-rwxr-xr-x  1 root root 224256 Jan 12  2009 P6_INTEL.ALL
-rwxr-xr-x  1 root root   5989 Jan 12  2009 P6_INTEL.TXT
#
und
Code:
/mnt # for i in *; do file $i; done
A2740_A2.OMF: data
AUTOEXEC.BAT: DOS batch file text
BIOFLASH.EXE: MS-DOS executable, MZ for MS-DOS
C2740_A2.OMF: data
COMMAND.COM: MS-DOS executable, MZ for MS-DOS
D2740_A2.OCF: data
KERNEL.SYS: DOS executable (COM), UPX compressed
M2740_A2.OMF: data
P6_INTEL.ALL: data
P6_INTEL.TXT: ASCII text, with CRLF line terminators
/mnt #
An Stelle von "/mnt" hast Du den USB-Stick als Target spezifiziert.

Ich denke dass Du getrost vom Stick booten kannst (aber man weiss ja nie -- siehe P.S. unten).

Viel Glück!

Gruss,
Roland

----------
P.S.

Ich habe von hier:

http://bedienungsanleitung-pdf.com/bedienungsanleitung,FUJITSU+SIEMENS,ESPRIMO+P2530,1249052.pdf

ein "Handbuch" für das Motherboard heruntergeladen... ist allerdings älteren Datums (z.B. der Link auf Seite 26 ist inzwischen gestorben). Trotzdem hier ein Auszug:

Code:
BIOS-Recovery - System-BIOS wiederherstellen

i Alle BIOS-Einstellungen werden auf Standardwerte zurückgesetzt.

► Öffnen Sie das Gerät wie in der Betriebsanleitung beschrieben.
► Stellen Sie auf dem Mainboard den Schalter oder die Steckbrücke so ein, dass das System-
  BIOS wiederhergestellt werden kann (siehe Kapitel "Einstellungen mit Schaltern und
  Steckbrücken").
► Schließen Sie das Gerät wie in der Betriebsanleitung beschrieben.
► Legen Sie eine BIOS-Update-Diskette ein und starten Sie den PC.
► Achten Sie auf die Lautsprechertöne. Das Wiederherstellen des BIOS war erfolgreich, wenn
  Sie die Tonfolge "kurz-kurz—lang—lang—lang" hören und die Diskettenzugriffskontrolle
  erloschen ist. Der Vorgang kann einige Minuten dauern.
► Öffnen Sie das Gerät wie in der Betriebsanleitung beschrieben.
► Machen Sie die Einstellung des Schalters oder der Steckbrücke rückgängig.
► Schließen Sie das Gerät wie in der Betriebsanleitung beschrieben.
► Nehmen Sie die Diskette aus dem Diskettenlaufwerk.
► Starten Sie den PC und rufen Sie das BIOS-Setup auf.
► Wählen Sie im Menü Advanced den Menüpunkt Reset Configuration Data und ändern Sie die
  Einstellung auf Yes.
► Beenden Sie das BIOS-Setup und speichern Sie die Änderungen.

Das BIOS-Recovery ist abgeschlossen. Das System startet.

i Detaillierte Informationen zum BIOS-Setup und zum BIOS-Recovery finden Sie im
  Handbuch "BIOS-Setup" (auf den CDs "Drivers & Utilities Collection", "Drivers & Utilities",
  "ServerStart" oder "User Documentation").
Du könntest auch dies mit einem USB-Stick (statt der Floppy) bewerkstelligen.

-/-
 
Eure mit offensichtlich viel Sachkenntnis geposteten Beiträge haben mir Mut gemacht. Ich habe das BIOS-Update erfolgreich durchgeführt und alle Betriebssysteme laufen zuverlässig. Windows und Debian mit beiden SATA-Modi, openSUSE allerdings nur im Enhanced-Modus.

Somit hat das Update keine Veränderung bei der Behandlung des SATA-Controllers gebracht, aber einen Versuch war es wert. Und mit dem Status quo kann ich leben.

Vielen Dank Euch Beiden für Eure tatkräftige Unterstützung und den betriebenen Aufwand.

Gruss H.
 
Oben