Flasher son BIOS sous Linux

Une méthode pour flasher le BIOS de sa carte mère quand on est sous Linux. Par défaut, les utilitaires de flash fonctionnent sous Windows ou MS-DOS. On va donc préparer une clé USB bootable confectionnée avec Qemu et une image FreeDOS. La méthode est effectuée sous Debian mais le principe est identique pour toute distribution  Linux.

Préparation

  • Dans un terminal, installer qemu
# apt-get install qemu
  • Télécharger balder10.img, une image FreeDos compatible MS-DOS, depuis le site Finnix.
$ cd /tmp
$ wget http://www.finnix.org/files/balder10.img
  • Insérer la clé USB. Attention, toutes les données sur la clé seront effacées.
  • identifier son nom avec ‘df‘:
# df
 /dev/sdb1        1953032        4    1953028   1% /media/usb0
  • Notre clé s’appelle sdb, on va la démonter avec umount :
# umount /dev/sdb1
  • Nettoyer le MBR de la clé sdb:
# dd if=/dev/zero of=/dev/sdb bs=1012 count=2

QEMU

  • Lancer Qemu depuis le répertoire /tmp. On utilise l’image balder10 comme disque A: et notre clé USB comme disque C:
qemu -curses -boot a -fda ./balder10.img -hda /dev/sdb
  • Valider le choix par defaut jusqu’à l’invite A:\> puis lancer fdisk

A:\> fdisk
Do you want to use large disk (FAT32) support (yes/No) : Y
1.  Create DOS partition or Logical DOS Drive
1.  Create Primary DOS Partition
Do you wish to use the maximum available size for a Primary DOS Partition
and make the partition active (Y/N).....................? [Y]  Y

  • Dans un terminal arreter qemu:
#killall qemu
  • retirer la clé et la réinsérer et, avec df, s’assurer qu’elle n’est pas montée
  • Relancer Qemu, on va pouvoir installer FreeDos sur hda :
qemu -curses -boot a -fda ./balder10.img -hda /dev/sdb

A:\> format c: /s
WARNING: ALL DATA ON NON-REMOVABLE DISK DRIVE C: WILL BE LOST! PLEASE CONFIRM!
Proceed with format (YES/NO)?   YES
##  Boot sector unreadable, disk not yet formatted
Disk size: 1908 Mbytes, FAT32. ***
Cannot find existing format - not saving UNFORMAT data.
Please enter volume label (max. 11 chars): USB
  • lancer la copie des fichiers system sur c:
 A:\> xcopy a: c: /n /e
 ...
 Copying A:\FDXMS286.SYS
 Copying A:\XCDROM.SYS
 Copying A:\LOADCD.BAT
 67 file(s) copied
A:\>
  • Dans un terminal, arreter qemu
killall qemu

Retirer la clé, la réinsérer. La partition USB devrait se monter automatiquement et être visible dans le navigateur de fichiers.

Il ne reste plus qu’à y copier les fichiers de flash du BIOS et rebooter le PC sur la clé USB.

Pour aller plus loin…

Advertisements

4 réflexions au sujet de « Flasher son BIOS sous Linux »

  1. magnifique..
    je dois prochainement flasher un serveur vers le bios d’origine car le bios plus récent que j’ai mis génère des erreurs, et j’avais bien galéré pour avoir ma clé en mode MsDos n’ayant plus de windows autour de moi..

    merci

  2. J’ai bien réçu à suivre les différentes étapes jusqu’à arrêter qemu dans un terminal.
    Mais ensuite vous dite  » retirer la clé et la réinsérer et, avec df, s’assurer qu’elle n’est pas montée »
    J’obtiens :
    Sys. de fichiers 1K-blocs Utilisé Dispo. Uti% Monté sur
    /dev/sda1 476805136 8134408 444450416 2% /
    none 1758392 688 1757704 1% /dev
    none 1765048 212 1764836 1% /dev/shm
    none 1765048 220 1764828 1% /var/run
    none 1765048 0 1765048 0% /var/lock

    Ensuite vous dites « Relancer Qemu, on va pouvoir installer FreeDos sur hda : »
    J’obtiens un [Error 61]. Voici ce que j’obtiens :

    HIMEM – Always On A20 method used
    Kernel: allocated 41 Diskbuffers = 21812 Bytes in HMA

    CuteMouse v1.9.1 alpha 1 [FreeDOS]
    Installed at PS/2 port
    A:\> format c: /s
    Invalid Drive! Aborting.
    [Error 61]
    A:\>

    J’essaye de continuer la manip malgrès tout et voici ce que j’obtiens :
    HIMEM – Always On A20 method used
    Kernel: allocated 41 Diskbuffers = 21812 Bytes in HMA

    CuteMouse v1.9.1 alpha 1 [FreeDOS]
    Installed at PS/2 port
    A:\> format c: /s
    Invalid Drive! Aborting.
    [Error 61]
    A:\> xcopy a: c: /n
    Invalid destination drive specification
    0 file(s) copied
    A:\>

    Est-ce que vous voyez ce qui ne va pas ?

    Merci de votre aide.

    • apparemment la partition C: n’existe pas dans Qemu
      il faudrait rejouer la séquence A:>fdisk et voir si l’espace disque de la clé USB est accessible et ensuite refaire une partition principale.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s