logoAnerty's Lair - USB Boot << Documentation << Home
enfr
^ Page 1 Page 2 Page 3
Introduction
L'accroissement récent de la capacité des périphériques de stockage USB (clefs USB, disques amovibles, lecteurs MP3...) les rends de plus en plus intéressants pour de nouveaux usages. Non seulement il est possible de se déplacer avec ses documents, mais il devient possible d'emmener son environnement de travail complet avec soi. Des systèmes d'exploitation prévus pour être installés sur des disques amovibles font leur apparition, et permettent de retrouver sur tout ordinateur son environnement de travail quotidien. Ce didacticiel n'a pas pour objectif de détailler l'installation d'un tel système d'exploitation plutôt qu'un autre, mais d'aider à franchir une étape délicate d'une telle installation: rendre le démarrage possible sur un périphérique de stockage USB. Regardons donc d'abord comment un PC démarre.

I] La séquence de démarrage d'un PC
Lorsque l'on allume un PC, le premier programme s'executant provient directement d'une puce installée sur la carte mère: le BIOS. Ce programme vital pour le PC a plusieurs roles, et celui qui nous interesse ici est qu'il est chargé de trouver un périphérique contenant un système d'exploitation, et de le démarrer.
1. Le BIOS
Les premiers BIOS cherchaient un OS uniquement sur le lecteur de disquette ou le premier disque dur du premier controleur de disque. Puis la possibilité de choisir n'importe quel disque sur un des controleurs de disque du PC est apparue, et peu après la possibilité d'inclure les CD-ROM dans les périphériques potentiellement démarrables. Les BIOS récent permettent d'ajouter certains périphériques USB à cette liste, et donc le premier obstacle en travers de notre chemin sera un ancien BIOS, ou un qui n'offre pas cette possibilité. Dans certains cas, cette fonctionnalité peut être ajoutée au BIOS, via une mise à jour. Si votre BIOS supporte le démarrage sur périphérique USB, cela doit être marqué dans le manuel de la carte mère.

Tout périphérique USB n'est pas nécéssairement bootable, par exemple essayer de démarrer sur une webcam, ou une souris n'aurait aucun sens. Pour qu'un périphérique USB soit considéré comme potentiellement démarrable par le BIOS, il faut qu'il appartienne à une certaine catégorie de périphériques USB: les périphériques de stockage de masse. Ici on a un nouvel obstacle, qui est que si votre périphérique n'est pas de cette classe, il ne sera pas considéré par le BIOS. Un bon indice pour déterminer si votre périphérique entre dans cette catégorie est de voir si il est nécéssaire d'installer un pilote sous Windows 2000/XP pour acceder aux fichiers qui sont dessus. Certains périphériques utilisent un pilote pour ajouter des fonctions, par exemple l'acquisition directe d'image pour un APN, mais n'ont pas besoin de ce pilote pour vous permettre d'acceder aux images que vous avez prises hors connexion. La plupart des périphériques qui offrent un accès direct aux fichiers rendent publique le fait qu'ils n'ont besoin d'aucun CD ou pilote sous Win2k/XP.

Un autre point à considérer est que même si un BIOS peut booter sur un périphérique USB donné, il n'est pas pour autant nécéssairement capable de démarrer dessus si il est connecté à une carte d'extension, comme par exemple une carte controleur USB2 additionelle. Les périphériques connectés sur une carte controleur USB nécéssitant l'installation de drivers (par exemple ma carte bon marché Connexant USB2/Firewire) ne seront pas disponnibles au démarrage, étant donné que le BIOS ne sais pas comment y accéder. Les ports intégrés à la carte mère sont un choix sur pour brancher un périphérique USB bootable.

Une fois que le BIOS a trouvé un ensemble de périphériques potentiellement démarrables, il va les examiner un par un pour déterminer lesquels le sont effectivement. On entends souvent à ce momment la le lecteur de disquette faire un bruit, parcequ'il essaye de lire sur une disquette souvent absente. Cet examen va se passer de la manière suivante:

  • Le BIOS essaye de lire le premiers secteur du périphérique. Un secteur est une partie de l'espace de stockage du périphérique, par exemple une section de disque dur, une ligne d'adresses de mémoire flash, etc... La taille d'un secteur dépends du périphérique, mais fait souvent 512 octets. Si la lecture échoue, comme par exemple si il n'y a pas de CD dans un lecteur de CD-ROM, le périphérique est considéré comme non démarrable.
  • En cas de succes, il compare les valeurs de certains octets lus à des valeurs de référence. Si les valeurs ne correspondent pas, même traitement. La signification et l'emplacement de ces octets seront détaillés plus tard.

Après cet examen, certains BIOS proposent un menu qui permet de choisir sur quel périphérique démarrer en appuyant sur une touche. Sinon, la sélection du périphérique de démarrage se fait en fonction d'une liste paramètrable dans le programme de configuration du BIOS. Une liste typique de PC ressemble souvent à [Disquette] - [CD-ROM] - [Disque Dur 1] - [Disque Dur 2]. Les BIOS qui proposent le démarrage sur USB le font souvent sous l'appellation "USB RMD-FDD" ou "USB DISK" disponnible dans la liste de périphériques de démarrage du BIOS. Si certains périphériques de la liste ont été considérés comme non démarrable, le BIOS tente de démarrer un système d'exploitation sur les suivants, en respectant l'ordre fournis. Pour démarrer un OS, le BIOS tente d'executer le code machine qui se trouve sur le premier secteur. Ce code machine forme un micro programme, qui peut effectuer différentes actions.

Haut
2. Le code de démarrage
Ce petit programme situé sur le premier secteur d'un disque est chargé de démarrer un système d'exploitation. On peut générallement le classer dans une de ces 4 catégories :
  1. Boot Sector (Secteur d'amorçage) :
    Le micro programme charge en mémoire vive un ou plusieurs fichiers du système d'exploitation situés sur le disque, par exemple IO.SYS pour MS-DOS, le fichier contenant le noyau pour linux, ntldr pour Windows NT, etc... Il en execute ensuite un pour transferer le controle au système d'exploitation. Il est la plupart du temps installé par un utilitaire du système d'exploitation qu'il est sensé démarrer, et ne peut lancer que le système d'exploitation pour lequel il est prévu. Ce genre de micro programme simple est souvent utilisé pour les disquettes.
  2. MBC (Master Boot Code) :
    Le programme examine une table de partition, en trouve une bootable, puis charge et execute le micro programme de démarrage contenu sur la partition démarrable. Ce type de programme se trouve sur nos disques durs, et on le nomme souvent a tort MBR, en confondant le contenant et une partie du contenu. La structure du MBR et d'une table de partition sera expliquée plus loin.
  3. Boot Loader :
    Le programme propose un menu de démarrage, qui permets de choisir soit de démarrer sur un autre périphérique, soit de choisir une partition sur laquelle démarrer. Il existe de nombreux programmes de cette sorte et ils offrent des possibilités variées. Les plus connus sont LILO et Grub, qui viennent de linux. D'autres sont proposés moyennant finance par certaines sociétés faisant des utilitaires qui travaillent sur les disques.
  4. Virus :
    Le programme reformatte le disque sur lequel il est, coromps les données, affiche des messages stupides. Les virus s'installant sur le secteur de démarrage d'un disque sont moins fréquents, mais il existe toujours des gens en panne d'imagination pour concevoir de tels programmes.

Si un de ces types de programmes n'est pas présent sur un disque, celui ci ne sera pas démarrable. La plupart du temps, ces programmes sont installés lors du partitionnement ou du formattage d'un disque. Certains fabriquants de périphériques USB fournissent un utilitaire de formattage/partitionnement propriétaire qui n'installe pas de code de démarrage, ou qui crée des partitions sans les activer. Si le code de démarrage n'existe pas, la plupart des BIOS s'en rendront compte lors de l'examen du premier secteur, ce qui rends le périphérique non démarable pour des causes purement logicielles. C'est le cas du logiciel de formattage fournis en standard avec les lecteurs multimédia I-Bead 100 à l'heure ou j'écris ces lignes (nov/2003). Si aucune partition n'est active, un programme de type MBC ne poura pas lancer un système d'exploitation se trouvant sur l'une d'elles.

Haut
En Résumé
Pour pouvoir démarrer sur un périphérique USB, il vous faut:
  1. Un périphérique USB de classe 8 : "Périphérique de stockage de masse USB" (voir le Gestionnaire de périphériques de W2k)
  2. Un BIOS pouvant démarrer sur un périphérique USB (voir le manuel de la carte mère)
  3. Un contrôleur USB reconnu par le BIOS, par exemple ceux intégrés à la carte mère.
  4. Un premier secteur contenant une marque "démarrable" (voir deuxième partie)
  5. Un micro programme correctement installé dans le premier secteur (voir deuxième partie)
  6. Un système d'exploitation correctement installé sur le périphérique USB
Haut