Écrire la mise à jour du BIOS amorçable .ISO sur une clé USB

14

Lenovo distribue les mises à jour du BIOS sous forme de fichiers .iso ( exemple ) qui sont censés être gravés sur un CD et démarrés. Le graver sur un CD a fonctionné et démarré correctement, mais maintenant je veux utiliser une clé USB à la place (parce que je ne fais pas confiance à mon lecteur de CD), comment créer cette clé USB en utilisant Ubuntu?

Il existe de nombreux didacticiels expliquant comment créer des clés USB amorçables à partir d'ISO basés sur Linux (en utilisant UNetbootin et similaires, ils créent des fichiers liés à Linux à la racine de la clé USB) et à partir d'utilitaires Windows (avec FreeDOS et similaires). Je ne crois pas non plus que les solutions soient ici car le fichier ISO de mise à jour du BIOS n'est pas basé sur Linux ni sur DOS (le montage de l'ISO ne montre aucun système de fichiers connu)

Nicolas Raoul
la source
1
Avez-vous essayé de vider le contenu ISO sur un périphérique USB? Pour ce faire, exécutez la commande suivante: # dd if=/path/to/iso of=/dev/yourusb bs=4M. AVERTISSEMENT : votre clé USB sera EFFACÉE . Veuillez également vérifier le chemin d'accès à votre clé USB
Utilisateur Arch
@Archuser: Cela ne fonctionne que si les images ISO ont été créées pour pouvoir démarrer dans cette configuration particulière. Les images ISO de démarrage standard ne peuvent pas être démarrées comme ça.
David Foerster
Assurez-vous d'appeler "sudo sync" deux fois après la commande dd. sinon, le noyau risque de ne pas synchroniser les données écrites du cache du noyau avec le lecteur.
Matthias

Réponses:

16

J'ai trouvé ce qui pourrait être une solution au problème sur http://positon.org/lenovo-thinkpad-bios-update-with-linux-and-usb .

Convertissez d'abord l' isoimage en imgfichier:

sudo apt-get install genisoimage
geteltorito -o bios.img gruj09us.iso

Copiez ensuite sur la clé USB:

sudo fdisk -l /dev/sdb  # double check that the device is right
sudo dd if=bios.img of=/dev/sdb #Will Erase the drive!! 

Cela dit, je pense que vous devriez d'abord essayer de savoir s'il démarre correctement si vous écrivez simplement le .iso avec un outil générique comme vous le feriez normalement. (À condition qu'il ait besoin de quelques entrées et ne démarre pas automatiquement dans votre BIOS lors du démarrage.) Les deux dernières fois, j'ai installé un Linux, je n'ai pas utilisé l'outil recommandé. (J'ai créé une clé USB amorçable pour 15.04 avec SUSE Studio Image Writer car Unetbootin l'a foiré plusieurs fois. Cela a bien fonctionné.)

jetpackneedsrepair
la source
1
Après avoir mis à jour votre BIOS, restaurez l'USB à pleine capacité avec: # dd count=1 bs=512 if=/dev/zero of=/dev/sdbet formatez l'USB après cela
Utilisateur Arch
Ça a marché! Je ne sais pas ce qu'est eltorito mais cela a résolu le problème.
Nicolas Raoul
2
Pour les enregistrements: l'ISO se compose d'un répertoire racine vide et d'une image de démarrage du BIOS cachée qui est un disque dur émulé. geteltorito trouve l'image disque en lisant le catalogue de démarrage El Torito. Ensuite, il apprend la taille de l'image à partir de la table de partition MBR dans l'image. Enfin, il extrait l'image dans le fichier cible. Cela démarre à partir de la clé USB uniquement parce que tous les logiciels nécessaires se trouvent sur le disque dur émulé. Une situation très particulière.
Thomas Schmitt
J'ai essayé mais je n'ai pas pu le faire démarrer pour Lenovo T510. J'ai définitivement accroché le BIOS amorçable, mais quand il a brûlé sur l'USB, il n'y avait rien (est-ce normal?). Lorsque j'ai essayé de démarrer, le message d'erreur était qu'il n'y avait pas de système d'exploitation? Des idées??
shaneonabike
vérifiez également ce lien: ubuntuforums.org/showthread.php?t=1852425 et thinkwiki.org/wiki/…
TiloBunt
2

Comme l'a dit l'utilisateur Arch dans les commentaires, la façon la plus simple d'écrire une image ISO de démarrage sur une clé USB est de ddl'image sur la clé .

Première triple -check à quel périphérique bloc votre clé USB est actuellement mis en correspondance à:

lsblk

Que dd l'image sur le lecteur USB. Par exemple, si votre clé USB est mappée sur /dev/sdb:

sudo dd if=/path/to/image of=/dev/sdb bs=8M && sync

Différentes tailles de blocs se produisent généralement différemment, mais généralement une taille de bloc plus grande donne de meilleurs résultats qu'une taille de bloc plus petite; une taille de bloc de 8M devrait être suffisante pour permettre au processus de fonctionner à pleine vitesse.

Si vous souhaitez suivre la progression du processus, installez pv :

sudo apt-get update && sudo apt-get install pv

Et exécutez cette commande à la place:

pv /path/to/image | sudo dd of=/dev/sdb bs=8M && sync
kos
la source
2
Vous devez ajouter && sync à dd
ps95
@ prakharsingh95 Belle remarque. Merci
kos
2
L'ISO copiée sur clé USB ne démarre via le BIOS que si l'ISO commence par un MBR. Il s'agit d'une fonctionnalité supplémentaire communément appelée "isohybride". Toutes les principales distributions Linux ont leurs ISO d'installation installés de cette façon. Mais le Lenovo ISO n'a pas de MBR, seulement un catalogue de démarrage El Torito pour démarrer via le BIOS à partir d'un CD / DVD / BD. Néanmoins, il a tout ce qu'il faut dans l'image de démarrage cachée commençant au bloc ISO 27, qui émule un disque dur.
Thomas Schmitt
0

Juste au cas où quelqu'un chercherait toujours la réponse.

La solution ci-dessus n'était pas suffisante pour mon Lenovo E470 qui est compatible UEFI. L'utilitaire de mise à jour du BIOS ne démarre tout simplement pas à partir d'une clé USB.

Il faut lire le fichier README correspondant au fichier de mise à jour du BIOS.

Au redémarrage, appuyez sur Entrée pour interrompre le démarrage normal et après avoir accédé à la configuration du BIOS:

...
-> 7. Dans "UEFI / Legacy Boot", assurez-vous que "UEFI only" est choisi.
   8. Choisissez "Boot" dans le menu. Notez l'ordre de priorité de démarrage actuel pour
      restauration ultérieure si vous devez modifier votre liste de démarrage.
   9. Dans "Boot Priority Order", assurez-vous que le périphérique suivant est au-dessus de
      "ATA HDD0".
      - "ATAPI CD0" (lors de l'utilisation d'un lecteur optique interne ThinkPad)
      - "CD USB" (lors de l'utilisation d'un lecteur optique USB)
-> - "USB HDD" (pour ma clé USB)

Après le redémarrage, vous devriez pouvoir démarrer à partir de votre "disque dur USB".

algo99
la source
Lenovo le mentionne dans son fichier README sur la page de téléchargement du BIOS, mais il est bon de le rappeler aux gens.