[SOS] Notions basic sur boot... => OK !
Romain LABBE
labbe.romain at wanadoo.fr
Mar 13 Fév 20:31:09 CET 2007
> Je vais t'expliquer le plus précisément possible.
> C'est très simple :)
>
> Le premier secteur d'une unitée de stockage est toujours réservé à un
> Master Boot Record.
> Dans le cas d'un PC x86(_64) et d'un disque dur avec format
> de partition
> MSDOS, ce MBR contient :
>
> Un peux de code, une structure d'information pour 4 partition
> maximum,
> et un nombre magique (0x55AA) qui est en principe vérifié par
> le Bios de
> ta machine, de sorte qu'elle ne charge pas quelques chose de vide.
>
> Si on utilise le format de partition compatible MSDOS, c'est pour la
> seule raison d'être compatible avec Microsoft...
>
> Le BIOS, lui, ne ce souci que d'un chose, charger le MBR à l'adresse
> mémoire 0x7C0 (1984, la date du lancement du PC par IBM ^^).
>
> Le MBR, est donc un BootSector (Secteur de démarrage) plus 4
> définition
> de partition. (Position sur le disque, taille... etc).
>
> De plus, le BootSector lui, contient des informations, comme des
> informations de type de partition...
> Une disquette ou un cd/dvd par exemple, possède un BootSector.
>
> Tu sera ravis d'apprendre que chaque partition, possède un
> BootSector ! Qui permet d'avoir du code, et une description
> de la partition.
>
> Bon, tu vas me dire, le MBR est les BootSectors sur 512
> octets (Taille
> d'un secteur de disque dur), c'est pas gros.
> Réponse : Le premier cylindre du disque dur est vide... Ce
> qui fait 63
> secteur sur un disque conventionnel.
> La chose se répète de la même manière pour chaque partition ! Ça fait
> donc presque 8ko d'utilisable.
>
> Notons bien que le bios lui, ne charge que le MBR, et donc
> seulement 512
> octets.
>
> Dans le fonctionnement du DOS, le MBR, qui est executé après
> avoir été
> chargé par le BIOS, s'occupe de lire la table des partitions, qui se
> trouve donc en mémoire, puisqu'elle fait partit du MBR.
> Le but est de trouver la partition "Active". Celle qui possède cet
> attribut dans la table, sera la partition à "Démarrer". Le
> MBR, charge
> le BootSector de cette partition. Il le charge d'ailleur à
> l'adresse 0x7C0.
>
> Bien sur, le petit code du MBR ne s'écrasera pas lui même, il aura
> copier sont code un peux plus haut en mémoire.
>
> Après avoir chargé le BootSector de la partition "Active", le MBR
> l'execute. C'est à dire qu'on entendra plus jamais parlé du MBR, le
> processeur continuant sur le BootSector.
>
> Et que fait le BootSector de la partition ? Et bien dans le cas de
> Windows par exemple, il va se débrouiller pour charger le système
> d'exploitation. (Je pourrais encore en raconter, mais c'est suffisant
> pour comprendre ^^).
>
> Je ne parlais pas beaucoup de LILO, je ne l'utilise pas, et ne le
> connais pas. LILO, est étalé sur plusieurs secteurs au début
> du disque,
> juste après le MBR. Le MBR, installé par LILO, s'occupe de charger le
> nombres de secteurs voulut (Dans la limite des 62 possibles). Il y a
> assez de place pour pouvoir contenir des noms et paramètres associé.
> Pour windows, LILO chargement le BootSector de la partition
> correspondante, pour linux, c'est différent. Il n'y pas de BootSector
> linux (enfin si mais bon... il charge linux 1 ^^).
> Dans le cas de linux, LILO parcoure la partition, et charge le noyau
> directement ainsi qu'un système de fichier virtuel si demandé
> (Initrd).
>
> Tu comprend donc que pour LILO, la notion de partition 'Active' n'as
> aucun sens.
> Tu remarque aussi, que tu peux tout ta fait mettre un LILO dans un
> BootSector, et t'amuser à chaîner des LILO :)
>
> Bien, maintenant, passons à GRUB (Grand Unified Boot). GRUB
> est un mini OS. Il possède sont MBR (Stage 1), qui va charger
> du code dans les 62
> secteurs suivant, tout comme LILO.
> Pour GRUB, c'est le Stage 1.5. La ressemblance avec LILO
> s'arrête là. Dans ce code chargé, se trouve le numéro de
> disque et le numéro d'une
> partition, contenant un dossier particulier à GRUB. (Souvant
> /boot/grub).
>
> Dedans, ce trouve un petit noyau, que GRUB vas charger. C'est
> le stage 2. Toujours dans ce même dossier, nous pouvons
> trouver un fichier de
> configuration de grub (Souvant menu.lst).
> Grub charge dynamiquement sa configuration dans ce fichier.
>
> Grub peux aussi fonctionner en interactif, et il est possible
> d'entrer
> de commande de boot à la volée, de mettre un mot de passe, un image...
>
> Ensuite, c'est un peux comme pour LILO, GRUB peux charge un
> BootSector,
> un noyeau linux, un inird... Mais aussi des modules, ceci étant
> notamment utilisé par le Hurd.
>
> Notons que le noyau linux supporte le standard GRUB. Ce qui veut dire
> que grub trouvera dans les 8 premiers ko du noyau, des
> informations de
> chargement comme l'adresse mémoire, la position où placer la
> pile etc.
> Alors que dans LILO, il faudra entrer les adresses manuellement...
>
> Ah, et juste une dernière chose, on peux très bien faire sont propre
> MBR, qui ne charge pas de partition 'Active' ou même qui ne
> fasse rien
> du tout... ou encore, des choses vilaines. (J'ai eu une fois
> l'occasion
> de punir un camarade de classe en cours d'informatique O:-) ).
>
> Quelque possibilités :
>
> MBR_DOS -> BootSector -> OS
> MBR_GRUB -> BootSector -> OS
> MBR_GRUB -> BootSector_GRUB -> BootSector_GRUB ...
>
> À noter que le Loader de Windows, depuis les version 2000,
> est capable
> de charger au choix plusieurs BootSector. Il est ainsi
> possible de faire : MBR_DOS -> BootSector > LoaderMS ->
> BootSector_GRUB
>
> Bon, t'aura compris, quasiment toute les combinaison sont possible.
>
> J'espère avoir été assez clair ;)
> Si tu veux plus de précisions, je reste à ta disposition.
>
> @+
>
> Bombela
Salut,
Parfait, clair net et précis, j'ai tous pigé !
je n'arrivais pas a comprendre, il faut que je me planche un peut plus sur
ces subtilités du partitionnement.
Un grand MERCI d'avoir pris le temps de me repondre aussi précisement.
A++
Romain
Plus d'informations sur la liste de diffusion Sos