Mettre à jour le BIOS avec FreeDOS
Vous pouvez vouloir ou avoir un besoin de mettre à jour le BIOS de votre PC, quand le fabricant de la carte mère annonce une certaine amélioration ou mise à jour du BIOS. Le programme d'installation d'habitude offert est destiné à exécuter MS-DOS.
Voici comment mettre à jour votre BIOS à partir d'une clé USB sous Linux. Cette méthode fonctionne avec avec les clés USB et les cartes micro/mini/SD (avec un adaptateur approprié).
Premièrement, votre BIOS doit permettre de démarrer depuis un disque USB - et être compatible avec les disques durs USB. Quelques BIOS acceptent des Disquettes USB, des CD-ROMs ou lecteurs ZIP. Bien que ceux-ci puissent être utilisables, il peut être plus difficile de mettre en oeuvre la mise à jour. Cependant il arrive que vous n'ayez pas d'autre choix (netbooks en particulier).
Vous avez besoin de trois choses :
- Une clé USB, de préférence <2 GB (FAT16 ne permettant pas plus de 2 GB), et l'installation de base FreeDOS (fdbasecd.iso) qui utilise seulement 5.8 MB. FAT16 est le format recommandé étant donné que FAT32 n'est pas détecté comme démarrable par tous les BIOS.
- Un outil d'installation pour FreeDOS fdbasecd.iso (8MB).
- qemu (apt-get install qemu), qui est requis par l'installeur. Le BIOS de qemu fait apparaître votre clé USB dans FreeDOS comme un disque ordinaire. Ainsi vous pouvez l'installer comme d'habitude (et éviter de graver l'iso de FreeDOS).
C'est une phase très critique: à aucun moment la clé usb ne doit être montée. Soyez très prudent en selectionnant la bonne clé, autrement toutes les données du disque selectionné seront irrémédiablement supprimées, par exemple si vous sélectionnez par erreur votre disque dur principal.
Branchez votre clé USB, souvenez-vous, ne la montez pas. Vérifiez grâce à dmesg (le dernier message, si vous venez juste de la brancher) le nom qui a été assigné à votre clé USB (par exemple /dev/sdb).
Supprimez les fichiers présents sur votre clé USB grâce à la commande suivante, toutes les données seront perdues. La commande suivante ne supprime que les 16 premiers MB, mais vous pouvez, si vous le désirez, supprimer la totalité de son contenu.
$ su Password: dd if=/dev/zero of=/dev/sdb bs=1M count=16 16+0 records in 16+0 records out 16777216 bytes (17 MB) copied, 2.35751 s, 7.1 MB/s
Partitionner la clé USB
Partitionner et formater correctement votre clé USB est probablement la partie la plus difficile.
Formater la clé en FAT16 si sa capacité est <2 GB (offre une meilleure compatibilité).
Utilisez ensuite fdisk pour partitionner :
# fdisk /dev/sdb fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xa8993739. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Créer une partition :
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1018, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1018, default 1018): Using default value 1018
Confirmer la création de la partition en éditant la table de partition :
Command (m for help): p
Disk /dev/sdb: 2003 MB, 2003828736 bytes
62 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 3844 * 512 = 1968128 bytes
Disk identifier: 0xa8993739
Device Boot Start End Blocks Id System
/dev/sdb1 1 1018 1956595+ 83 Linux
Choisir le bon type de partitionnement, '6' pour FAT16 :
Command (m for help): t Selected partition 1 Hex code (type L to list codes): l 0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot 1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris 2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx 6 FAT16 42 SFS 86 NTFS volume set da Non-FS data 7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT 10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT 1c Hidden W95 FAT3 75 PC/IX Hex code (type L to list codes): 6 Changed system type of partition 1 to 6 (FAT16)
Activer l'unique et nouvelle partition :
Command (m for help): a Partition number (1-4): 1
Afficher à nouveau la table de partition et vérifier que la partition est active :
Command (m for help): p
Disk /dev/sdb: 2003 MB, 2003828736 bytes
62 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 3844 * 512 = 1968128 bytes
Disk identifier: 0xa8993739
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1018 1956595+ 6 FAT16
Écrire la nouvelle table de partition sur la clé USB et quitter fdisk :
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
# exit
Formater la clé USB :
mkfs -t vfat -n FreeDOS /dev/sdb1 exit
La phase préliminaire est terminée. Vous avez partitionné et formaté la clé USB, il n'y a rien d'autre à faire que de lancer directement le processus d'installation.
Lancer FreeDOS avec qemu
Étant donné que DOS ne reconnaît pas les clés USB, il va falloir trouver un moyen pour que l'installeur de FreeDOS reconnaisse la clé USB comme un disque dur ordinaire. Le BIOS du système s'en charge automatiquement lors d'un démarrage ordinaire - cependant dans le cas présent il faut se montrer inventif avec qemu :
as user$: qemu -hda /dev/sdb -cdrom /path/to/fdbasecd.iso -boot d
La combinaison de touches ctrl-alt vous permettra de libérer le clavier et la souris afin de basculer entre les deux bureaux pour relire les instructions à chaque étape.
Ceci démarre le CD FreeDOS et presente la clé USB comme disque dur primaire (là le BIOS de qemu fait apparaître la clé USB dans DOS comme un disque dur ordinaire). Sélectionner l'installateur dans le menu démarrer de la fenêtre virtuelle de démarrage de FreeDOS :
1) Continue to boot FreeDOS from CD-ROM
1
enter
Choisir par défaut 1 et/ou choisir Yes (oui) si demandé.
L'installateur vous demande alors de redémarrer - ne le faites surtout pas maintenant, puisqu'il est nécessaire de corriger deux erreurs de l'installateur pour le secteur de démarrage et le menu de demarrage. Saisissez la lettre n.
Créer un secteur de boot sur la clé USB
La première erreur à résoudre est celle du secteur de démarrage (mbr) :
fdisk /mbr 1
En second lieu celle du menu de démarrage dans le nouveau fichier fdconfig.sys :
cd \ edit fdconfig.sys
et changer la ligne commençant par command.com en :
1234?SHELLHIGH=C:\FDOS\command.com C:\FDOS /D /P=C:\fdauto.bat /K set
(ne changez pas cette commande à proprement parler, ajoutez juste "1234?" au début de la ligne (avant SHELLHIGH==C:\FDOS\command.com .....
IMPORTANT de lire ceci: 1234?
Ne rien changer d'autre, car de cette ligne dépendent des paramètres de l'installation.
Enregistrer et quitter "edit" :
[alt]+[f]
Une fois revenu au prompt vous pouvez quitter qemu.
Tester pour vérifier que qemu démarre votre clé USB.
qemu -hda /dev/sdb -boot c
Votre clé USB est maintenant bootable et contient l'installateur de FreeDOS de 5.4 MB. Vous devriez démarrer sans aucun driver (option 4 du menu), en effet le chargement des fichiers himem.sys et emm386 pourraient interférer avec les programmes de démarrage !.
Mettre à jour le BIOS
L'ordinateur étant allumé, brancher la clé USB contenant FreeDOS, la monter et y télécharger les fichiers nécessaires au BIOS comme requis par le fabricant de la carte mère/du BIOS et démonter la clé USB.
Éteindre l'ordinateur, brancher la clé USB contenant FreeDOS, le remettre en marche de sorte à ce qu'il démarre sur la clé et suivre les instructions du fabricant de la carte mère/du BIOS.