Page suivante Page précédente Table des matières GRUB-HOWTO: Accéder aux fichiers par le GRUB  

9. Accéder aux fichiers par le GRUB

9.1 Spécifier une partition et des fichiers dans le GRUB

Le gestionnaire d'amorçage doit charger en mémoire des données, appliquer à ces données certaines modifications (certaines données sont particulières puisqu'elles forment un noyau ou un autre amorceur qui doit être finalement exécuté). Bref : le GRUB doit pouvoir accéder à des champs de caractères placés quelque part : localement sur des périphériques, ou téléchargeables.

En gros, ces données sont réparties sur des champs de données (les disques par exemple), dans ces champs de données éventuellement dans des subdivisions (les partitions), auxquelles on doit pouvoir accéder soit en indiquant la liste des blocs à lire, soit, si le champ de données est équipé d'informations (un système de fichiers), en fournissant le nom de cet ensemble de blocs dans le système de fichiers.

La désignation d'un ensemble de données sera donc composée de la désignation du périphérique de stockage(le disque par exemple), de la partition dans le disque, et du nom de fichier dans le système de fichiers si ce système existe, ou de la liste des blocs.

9.2 Désignation des périphériques de stockage

Le GRUB, en tant que gestionnaire d'amorçage, dispose de moyens plus limités qu'un OS complet. Il s'appuie essentiellement sur les interruptions du BIOS (pour le moment celui des PC). Par conséquent, pour le GRUB, il n'existe pas de différence entre des disques IDE ou SCSI, ils seront tous appelés de la même façon : hdN où N est un entier. Le premier disque trouvé est désigné par hd0, le deuxième par hd1, etc... A donc retenir que la numérotation est "à la C", démarrant de 0.

Plus précisément, pour désigner une unité de données (disque ou partition), on place son nom entre parenthèses. (hd0) signifie donc que l'on désigne non pas une commande mais un périphérique (la distinction se fait par les parenthèses), et que cette unité est le premier disque dur --- hd0.

Une disquette sera désignée par le préfixe fd, avec le même système de numérotation : (fd0) désigne donc la première unité de disquette.

Enfin, un périphérique spécial, (nd), existe lorsque le réseau a été initialisé (il s'agit du network device).

9.3 Désignation des partitions

Les unités physiques sont partitionnées, dès lors qu'il y a la place pour stocker cette information (ce n'est pas le cas des disquettes). Pour désigner une partition sur une unité physique, on fait suivre la désignation de l'unité physique par une virgule et l'identifiant de la partition.

Ainsi hd0,0 désigne la première partition sur le premier disque dur. Dans le cas de partitions BSD, on désignera par (hd1,a) la partition `a' du deuxième disque dur, et par (hd1,1,a) le deuxième slice de la partition `a' du deuxième disque dur.

A noter que l'écriture (hd0) est tout à fait légitime : dans ce cas on désigne le périphérique (disque) dans son intégralité. Cette notation est utile pour accéder, par exemple, au MBR : le MBR n'appartient à aucune partition. De même, dans le cas d'une disquette qui n'est pas partionnable (en fait l'intégralité de la disquette se confond avec une partition), on utilisera également la syntaxe (fd0).

9.4 Désignation des fichiers par leur nom

Dès lors que le périphérique est désigné, si le système de fichiers est supporté, vous y avez accès en appelant les fichiers par leur nom (ce qui est quand même plus chaleureux). Ainsi :


(hd2,4)/vmlinuz

va désigner le fichier vmlinuz situé à la racine du système de fichiers existant sur la 5ème partition (première partition logique) du troisième disque dur.

ATTENTION ! Les systèmes de fichiers ne sont pas montés. Donc, si dans votre fstab cette partition était d'habitude montée sous boot, le nom n'est pas /boot/wmlinuz : la racine pour ce système de fichiers est... la racine, pas le point de montage hypothétique.

9.5 Désignation d'un fichier ou de données par la liste des blocs

Comme évoqué dans l'introduction, l'une des caractéristiques du GRUB est de pouvoir accéder à un fichier en utilisant le système de fichiers. Mais il est également possible de désigner cet ensemble de données en syntaxe "bas niveau", c'est-à-dire en explicitant les blocs le composant.

La commande blocklist sert à visualiser cette liste de blocs :


grub> blocklist (hd1,0)/vmlinuz
        (hd1,0)1322144+96,1322248+1227

qui signifie que le fichier vmlinuz, situé sur la première partition du deuxième disque, occupe 96 blocs en commençant du bloc 1322144, et 1227 blocs en commençant du bloc 1322248. Dans ce cas il est visible que le fichier est ---peu--- fragmenté.

A quoi cela sert-il ? Entre autres à accéder à des blocs de données qui ne font pas partie de fichiers. Typiquement le MBR ou les secteurs d'amorçage. Par exemple, si Windows est installé sur la deuxième partition primaire du premier disque, la syntaxe (hd0,1)+1 désigne le premier bloc de cette partition, qui renferme l'amorceur de Windows.

9.6 Désigner le périphérique par défaut sur lequel se trouvent les fichiers

Plutôt que d'avoir à re-désigner, à chaque commande, le périphérique, autant signifier au GRUB le périphérique par défaut. Nous retrouvons la commande root :


root (hd0,0)

qui stipule donc que le système de fichiers par défaut est celui existant sur la première partition du premier disque dur dans notre exemple.

A noter que le complétement permet de visualiser à la demande les périphériques disponibles en invoquant `root (' et en appuyant sur TAB. Puis, en entrant `root (hd2,' et en appuyant sur TAB vous obtenez la liste des partitions et du type de système de fichiers présents sur le troisième disque dur.


Page suivante Page précédente Table des matières