[geteltorito] Mettre à jour son BIOS via USB sous Linux

Hello tout le monde,

Je fais ce petit billet, pour vous montrer comment mettre à jour votre BIOS avec une clef USB.
Pour être plus précis, je voulais mettre à jour le bios de mon Lenovo X200 qui est une super machine en passant.
Seulement, petit hic, sur le site officiel de Lenovo, et je suppose que c’est vrai pour pas mal de machines, les outils disponibles étaient soit des exécutables
destinés à Windows, ou alors une image CD/DVD.

Déjà d’une, installer un Windows juste pour ça, non merci.
Secondo, l’installation avec wine, comment dire, je préfère ne pas tenter.

Évidemment j’opte pour l’image CD/DVD, mais mon laptop ne possède pas de lecteur CD/DVD.

Bios + Linux + USB = Galère ? Non tu vas voir

Alors déjà pour être honnête, c’est la première fois que j’entreprends d’utiliser rien d’autre que Linux pour se faire.
Avant j’aurai opté pour la “facilité”.

Naïvement je pensai qu’un coup de “dd” suffisait pour mettre L’ISO sur une clef USB, et hop.
Ce ne fut pas le cas. Repasse plus tard m’a dit mon PC à ce moment.

Vous pouvez tester si le coeur vous en dit. Dans ce cas, vous aurez le droit à un joli message d’erreur vous indiquant qu’il n’y a pas de système de disponible.
Après avoir fini de remettre en question mon Bios et mes clefs USB, je me suis tourné vers l’ami “Duckduckgo“.

Vive les forums et le Web libre

Dans un premier temps j’ai pas trop compris ce qui arrivait. Fatigue + toute les ressources en anglais.
Finalement après s’être posé la tronche deux minutes, je découvre le standard “El Torito“, alias “ISO 9660 CD-ROM”.

En gros c’est ce qui indique à votre Bios que le CD/DVD est bootable.
Seulement ce truc, si il est présent sur votre clé USB, vous ne pourrez pas booter depuis celle-ci.

Il faut donc l’enlever

Et c’est la qu’intervient geteltorito.
C’est un script perl, dont le rôle est d’enlever l’image El Torito de la séquence de boot, présente sur votre image disque.
Une fois celle-ci retirée, vous pouvez faire un dd classique, booter sur votre clef USB et ensuite mettre à jour votre BIOS.

Ça y est fini les présentations, on est pas la pour boire un verre non plus. Quoi-que.

Passons à la procédure

Installer geniso sur votre distribution

Si sur votre distribution, geniso n’est présent, il vous faudra l’installer.

  • Debian/Ubuntu/Linux Mint :
    apt-get install genisoimage
  • CentOs :
    yum install genisoimage
  • ArchLinux/Manjaro :
    pacman -Sy genisoimage

Si vous en utilisez une autre, référez vous à votre outil habituel.

Utiliser geteltorito

$geteltorito -o Bios.img BiosDL.iso
avec :

    • Bios.img = Le nouveau nom de votre image saine
    • BiosDL.iso = L’image ISO, que vous avez fraichement telecharge, sur le site du fabricant
Résultat pour mon Lenovo X200

geteltorito -o Bios.img 6duj48us.iso

Booting catalog starts at sector: 20 
Manufacturer of CD: NERO BURNING ROM
Image architecture: x86
Boot media type is: harddisk
El Torito image starts at sector 27 and has 75776 sector(s) of 512 Bytes
/usr/bin/geteltorito: Cannot open outputfile "Bios.img" for writing. Stop. at /usr/bin/geteltorito line 74.

On voit que chez Lenovo en 2013, ils ont utilisé “Nero Burning Rom” pour faire leur image.

Copier l’image disque sur votre clé USB

dd if=Bios.img of=/dev/sdX bs=512K status=progress
avec sdX, ou X correspond à votre clé USB.

Ne vous trompez surtout pas, vous ne voudriez pas perdre toute vos données.

Et voila.

J’espère avoir était clair, si vous avez des suggestions/remarques ou éventuellement des corrections, n’hésitez pas. Laissez un commentaire. 😉

EnjoyIt 🙂

@++

2 thoughts on “[geteltorito] Mettre à jour son BIOS via USB sous Linux

  1. Quand on voit ce message la :
    “/usr/bin/geteltorito: Cannot open outputfile “Bios.img” for writing. Stop. at /usr/bin/geteltorito line 74.”
    On se dit qu’il y a du y avoir un soucis non ?

    1. Yop
      Tu es sur d’être dans un dossier ou tu as le droit d’écrire ?
      ça ressemble bien à une erreur de ce genre. Copie ton image dans ton répertoire perso et fais les opérations depuis celui-ci.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

12 − huit =