[Info] Le mythe du 1024éme cylindre!

asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   -  
johndoe Messages postés 2645 Statut Contributeur -
Salut à tous, et tout particulierement à John!

Ben dis moi, ça a l'air de vraiment te trotter dans le crâne cette
limite de 1024 (1023!) cylindres :D

Alors c'est pas bien compliqué, mais c'est pas simple non plus! :p

Donc au départ, c'est sur, on ne pouvait pas booter au-delà du 1024éme cylindre...

C'était même pire que ça!
En fait, toute partition se terminant au-delà de ce 1024éme cylindre ne pouvait être vue. Ce qui inclue un lecteur logique se terminant au 100éme cylindre placé sur une partition étendue se terminant au 1025éme cylindre :D

Pour en revenir à nos moutons...
Il existe trois types d'adressage 'logiciel' possibles. En réalité il y en a 4 mais le 4éme, 'large-mode', est assez rare, pas de limitation du bios (enfin si, mais pas 1024), mais pas de support LBA, une obligation pour certains UNIX.

1- Cylinders/Head/Sector ou CHS ou encore geometric.
2- Linéaire, des adresses de secteur codées sur 24 bits traduites en adresses CHS lors du passage au BIOS.
3- LBA32, des adresses de block codées sur 32 bits, traduites en CHS si le bios ne supporte pas ces adresse, ou si l'on communique avec une disquette.

Au niveau materiel (ou plutot du BIOS), il en existe 3 types.
-CHS (1024 cylindres)
-Large (c'est pour le 4 d'au dessus) (nombre de cylindres/2)
-LBA (?)

L'adressage Géometrique et donc Linéaire (au niveau du bios ce sera pareil: CHS) limite les disques (vu par le bios) à 1024 cylindres.
L'adressage LBA32 quand à lui (dans le cas ou le BIOS supporte LBA) ne connait pas de limite particulière.

La limite de ce 1024éme cylindre, ce traduit par la possibilitée ou non d'acceder au map-file

Depuis 1994 pour les premiers, et 1998 pour les derniers c'est l'Enchanced Dirsk Drive (EED) bios extension qui supporte l'adressage LBA.

Le mode LBA32 est disponible depuis la version 21 (.6?) de LILO, et est l'adressage par défaut depuis la version 22.

Donc, pour booter au delà du 1024éme cylindre, il faut:
-Un disque de plus de 1024 cylindres, mais ça tu l'auras compris ;)
-Le Support EDD dans le BIOS.
-Un lilo de version 21 au minimum.

Je termine par une note présente dans la doc debian (CVS, 03-03-2003)
3.1.5 Le Mythe Lilo

Lilo est limité à 1024 cylindres. --FAUX!

Les version récentes de lilo utilisées depuis Debian Potato supportent lba32. Si
le BIOS de la carte mère est assez récent pour supporter lba32, lilo devrait être 
capable de charger au-delà de la vieille limite de 1024 cylindres.

Assurez-vous simplement d'ajouter la ligne "lba32" vers le début de votre fichier 
lilo.conf si vous avez gardé un vieux lilo.conf.

Sources:
lilo (8)
lilo.conf (5)
Guide de référence pour Debian CVS 2003-03-03-07:43:12 ( http://gref.sf.net/ )
+Divers doc retrouvé sur mon disque datant de 2000-2003, trouvées via Google à
l'époque ;)

PS: C'est comme ça que j'ai crompris le truc, maintenant, ce n'est peut-être pas exact a 100%, mais une chose est sure, l'arrivée de l'EDD en 1994 à repoussé les limites imposées par le BIOS jusque là!

@++
"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"

7 réponses

Résumé de la discussion

Le fil explore comment dépasser la limite historique de 1024 cylindres pour booter, en distinguant les modes d'adressage logiciel (CHS, linéaire, LBA32) et les types d'adressage matériel/BIOS (CHS, Large, LBA) et leurs implications. Des conditions clés émergent: un disque >1024 cylindres, un BIOS avec support LBA via EDD, et un bootloader comme LILO ou GRUB capable d'exploiter le LBA32, version 21 au minimum, puis 22 par défaut. La documentation indique que le LBA32 est accessible lorsque le BIOS prend en charge le LBA et que Debian indique que LILO peut charger au-delà de 1024 cylindres en activant l'option lba32.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Fredish Messages postés 373 Statut Membre 19
     
    Jolie explication asevere :)

    Néanmoins, ca doit être assez théorique. Enfin, moi j'ai toujours des problèmes avec mes disques...

    Mais bon, n'abordons pas de problèmes ici. Bonne journée asevere :)
    0
  2. johndoe Messages postés 2645 Statut Contributeur 386
     
    salut Adrien,
    l'arrivée de l'EDD en 1994 à repoussé les limites imposées par le BIOS ben, là je dois dire que je reste sceptique. C'est bien lilo ou grub qui peuvent, mais le bios... hummmmmmmmm, cela me semble étonnant, pour le moins.... Je vais aussi me renseigner de nouveau...Lle bios lance le bootloader qui n'est pas bien loin, puisque dans le mbr...
    MErci. En fait j'avais déjà fait cette précision pour grub il n'y a pas longtemps, et je vulais etre sûr de n'avoir pas à revoir ma copie suite à une prouesse de la modernité.... Je vais donc re vériifer
    @+

    _
    No money, no honey, One Boss !
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Et puis lilo, (grub aussi) n'est pas forceent installé sur le MBR! :)

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0
    2. johndoe Messages postés 2645 Statut Contributeur 386 > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
       
      Ok pour mettre le bootloader hors du secteur zero, mais, l'as tu déjà installé au delà du cylindre 1024 ?
      Il me semblait qu'il fallait necessairement mettre grub dans le mbr si la partoche à activer etait au dela du cylindre 1024.

      Si cela m'interesse, c'est pour éviter de raconter des betises, ou de faire prendre des précautions inuitles....
      Je vais voir l'article que tu as indiqué.
      Merci :-)

      _
      No money, no honey, One Boss !
      0
    3. johndoe Messages postés 2645 Statut Contributeur 386 > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
       
      pÔ de bol ! Free n'est pas accessible en ce moment :-(((((((
      J'essaierai plus tard.

      _
      No money, no honey, One Boss !
      0
    4. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > johndoe Messages postés 2645 Statut Contributeur
       
      Ha ?

      bon moi ça passenickel, c'est même étonnament rapde je trouve :)

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut les bretons du sud et du centre du monde ;-))

    Ben moi je pencherai plutôt du côté de la théorie de ...... johndoe (désolé Adrien).
    J'ai (a peu prés) compris ça :
    avant (le LBA) les systèmes ne pouvaient pas booter au-delà du 1024 ème cylindre. Depuis ils le peuvent mais pas tout seul, z'ont besoin d'un "bootloader" du style "Lilo" ou "Grub".
    Et maintenant nouveau Bios ou pas, si y'a pas un truc pour dire où aller booter, ben ça fait toujours "chou blanc".
    Donc je pense pas le Bios capable de booter au-delà du 1024 tout seul...

    Mais peut être ai-je mal "comprationné" ou je" m'exprimè-je" mal ;o))

    Z'@+...che.
    JP : Cap de burro Catalan ! 
            Mais Content ;-)
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Ben en fait, c'est dans l'autre sens,
      Lilo,Grub, et bien d'autres n'ont pas leurs propres pilotes de disque.

      Ils doivent donc passer par le BIOS pour acceder au disque.
      Le Bios lit le MBR, il detecte la prtition active, lance le programme d'ammorcage, qui lui même repasse par le BIOS pour lire les données a l'adresse voulue. :)

      Dans tout les cas, pour booter au delà du 1024éme cylindre, il faut à la fois un bios qui gere le LBA, et un Bootloader qui gere aussi le LBA.

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
         
        Merchi ;-))

        Je résume :
        Le Bios tout seul il va pas bien loin ;-))
        Lilo et Grub sans le Bios, il vont pas bien loin aussi ;-))

        Moralité, "Bios + Lilo" ou "Bios + Grub" = ;o))

        Z'@+...che.
        JP : Cap de burro Catalan ! 
                Mais Content ;-)
        0
  4. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    Bon, pour éliminer totalement certains doutes :)
    J'ai fait un test, aprés tout, rien de plus simple pour démontrer qu'un BIOS
    peu demarrer au-delà de la limite imposée il y a de ça quelques années!

    [root@XP1800+ root]# fdisk -l /dev/hda
    
    Disque /dev/hda: 120.0 Go, 120034123776 octets
    255 têtes, 63 secteurs/piste, 14593 cylindres
    Unités = cylindres de 16065 * 512 = 8225280 octets
    
    Périphérique Boot      Start         End      Blocks   Id  System
    /dev/hda1   *           1         261     2096451    7  HPFS/NTFS
    /dev/hda2             262        2219    15727635    b  W95 FAT32
    /dev/hda3            2220        3235     8161020    5  Extended
    /dev/hda5            2220        2282      506016   83  Linux
    /dev/hda6            2283        2345      506016   82  Linux swap
    /dev/hda7            2346        2854     4088511   83  Linux
    /dev/hda8            2855        2981     1020096   83  Linux
    /dev/hda9            2982        3235     2040223+  83  Linux
    
    [root@XP1800+ root]# cat /etc/lilo.conf
    boot=/dev/hda
    map=/boot/map
    install=menu
    default="linux"
    keytable=/boot/fr-latin1.klt
    prompt
    nowarn
    timeout=100
    message=/boot/message
    menu-scheme=wb:bw:wb:bw
    image=/boot/vmlinuz
            label="linux"
            root=/dev/hda5
            initrd=/boot/initrd.img
            append="devfs=mount acpi=ht resume=/dev/hda6 splash=silent"
            vga=788
            read-only
    image=/boot/vmlinuz
            label="linux-nonfb"
            root=/dev/hda5
            initrd=/boot/initrd.img
            append="devfs=mount acpi=ht resume=/dev/hda6"
            read-only

    Bon voilà l'état de mon systéme ce matin à mon réveil :)
    étant donné que mes partoches située au-delà du cylindre 1024 sont dans une
    partition étendue (non activable) je ne peut pas faire grand chose.
    Lilo est installé sur le MBR (boot=/dev/hda).

    Donc, étape par étape:
    - Je cré une partition de 6Go à la suite des partoches existantes en spécifiant
    bien que je souhaite avoir une partition primaire, pour pouvoir l'activer, ce
    que je fais aussi tôt en prenant bien soin de désactivé la premiere sinon ça
    marche pas!
    [root@XP1800+ root]# fdisk -l /dev/hda
    
    Disque /dev/hda: 120.0 Go, 120034123776 octets
    255 têtes, 63 secteurs/piste, 14593 cylindres
    Unités = cylindres de 16065 * 512 = 8225280 octets
    
    Périphérique Boot      Start         End      Blocks   Id  System
    /dev/hda1               1         261     2096451    7  HPFS/NTFS
    /dev/hda2             262        2219    15727635    b  W95 FAT32
    /dev/hda3            2220        3235     8161020    5  Extended
    /dev/hda4   *        3236        3999     6136830   83  Linux
    /dev/hda5            2220        2282      506016   83  Linux
    /dev/hda6            2283        2345      506016   82  Linux swap
    /dev/hda7            2346        2854     4088511   83  Linux
    /dev/hda8            2855        2981     1020096   83  Linux
    /dev/hda9            2982        3235     2040223+  83  Linux


    Cette partition demarre au cylindre 3236.

    - Je désinstalle lilo
    [root@XP1800+ root]# lilo -U


    - Je reboot.
    [root@XP1800+ root]# init 6

    A ce niveau là, bien evidement rien ne demarre (PRESS ANY KEY TO REBOOT)

    J'insere le cd 1 de Mandrake 10 community, et j'appuis sur une touche comme le
    BIOS me l'a gentiment demandé :)

    - Installation standard au possible, avec 3 fois rien (3 minutes), sur la seule
    partition hda4

    - A la configuration de lilo, je précise que je veux l'installer sur la
    partoche racine, pas sur le MBR.

    - Je redemarres sur le systeme fraichement installé et je fais juste une
    verification de base.

    [root@XP1800+ root]# cat /etc/lilo.conf
    boot=/dev/hda4
    map=/boot/map
    install=menu
    default="linux"
    keytable=/boot/fr-latin1.klt
    prompt
    nowarn
    timeout=100
    message=/boot/message
    menu-scheme=wb:bw:wb:bw
    image=/boot/vmlinuz
            label="linux"
            root=/dev/hda4
            initrd=/boot/initrd.img
            append="devfs=mount acpi=ht resume=/dev/hda6 splash=silent"
            vga=788
            read-only
    image=/boot/vmlinuz
            label="linux-nonfb"
            root=/dev/hda4
            initrd=/boot/initrd.img
            append="devfs=mount acpi=ht resume=/dev/hda6"
            read-only
    

    C'est bon, lilo est bien installé sur la partition racine (boot=/dev/hda4) qui
    débute bien au-delà du cylindre 1024. Le systeme a correctement démarré.

    Ceci prouve bien que le BIOS est capable d'aller lire ce qui se trouve au dela
    du 1024éme cylindre avant même de charger le bootloader! :o)

    @++, J'espert que les doutes sont effacés! :o)
    "Si c'est stupide et que ça marche,
            alors ce n'est pas stupide"
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Pas de doute, t'es le meilleur ;-))

      Chapeau bas, clap clap clap.

      Non, sans dec, là je suis scié ! Comme preuve on fait pas mieux.
      Je bookmarke le topic, et à l'occase, fait nous un ch'tit truc pour la base de connaissances ;-))

      Allez, j'en remet une couche, chapeau Monsieur Adrien et merci ;o)

      PS. J'ai z'oublié, c'est quoi la tâche sur hda1 ??? ;-DDDDDD

      Z'@+...che.
      JP : Cap de burro Catalan ! 
              Mais Content ;-)
      0
    2. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Ben heu... merci, mais j'ai juste fais une install hein! rien de plus ;o)

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0
    3. johndoe Messages postés 2645 Statut Contributeur 386
       
      Merci Adrien,
      Je n'avais pas le moyen de faire une install, mon pc de test étant occupé.
      Seules les expériences permettent d'avancer, et même les infos soit disant fiables doivent toujours être confrontées à la théorie.
      Si lilo est installé sur /root, et que /root est placé au delà du cylindre 1024 (comme dans ton test) cela semble évidemment probant.
      Je me demande si ça le fait aussi avec windaube.... Juste pour être bien sûr, que le pingouin-génial n'a pas une astuce pour faire démarrer /root si loin.
      Pour partager les expérience, je veux bien faire celle-ci, si tu veux. : j'ai un disque neuf derrière moi, et il faudra juste que j'arrete ma machine, mais ce n'est pas trop genant.
      Ton avis ?

      _
      No money, no honey, One Boss !
      0
    4. johndoe Messages postés 2645 Statut Contributeur 386 > johndoe Messages postés 2645 Statut Contributeur
       
      n'importe quoi ! windaube met son lanceur dans le mbr, donc ça ne montrerait rien ! :-)
      donc je pense que le compte est bon.
      Merci.

      _
      No money, no honey, One Boss !
      0
    5. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > johndoe Messages postés 2645 Statut Contributeur
       
      :D

      C'est vrai qu'il ne demande pas ou il doit mettre le lanceur, mais il y a peut-etre une option qui permetrai de le faire, ou une astuce qui consiterait à le dérouter...
      Par exemple en créant tes partition avec linux avant, puis en activant la partition de windows, à tester, mais comme le MBR contient entre aure l'adresse de la partition active, ça peut fonctionner :)
      Mais la, c'est prendre trop de risque! je te laisse tester ;)

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tafiscobar Messages postés 1281 Statut Contributeur 177
     
    c'est du brut ça, eh ben bravo.

    tafiscobar "lou waye def bopame"
    la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
    0
  7. bigouden
     
    Salut!
    J'ai lu les infos sur les 1024 cylindres mais j'ai un peu de mal à comprendre les explications tou de même!!
    Se que j'ai compris:
    Au demarrage le bios fait ses tests matériel, passe la main au lecteur bootable, il li le MBR qui lance le Boot loader et puis le noyau s'execute.
    Du coup j'ai lu le Howto sur lilo pour voir qu'esce qui se passe après, mais quand il dise que le noyau doit résider à un endroit accessible par le bios, c'est la que je comprend moins!!
    C'sst pas le bios qui demarre le noyau mais lilo!
    ??
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      En fait, j'ai expliqué ça un peut plus haut :)

      Lilo ne dispose pas de ses propres drivers pour l'accés aux disques, () fait, trés peu de boot Loader les ont) Lilo passe donc par le Bios pour lire les données, c'est pour cela que tout les fichiers nécéssaire à l'amorcage du systeme doivent être accessibles du BIOS.

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0
  8. bigouden
     
    Ok,
    si j'ai compris, lilo passe par le bios pour lire les infos disques et être au courant de se qui existe ou pas et ensuite fait demarrer le système voulu si il le trouve!
    Je pense comprendre un peu mieux, merçi asevere
    je reste quand même dans le flou quand on parle d'adressages logiciel!
    Mais je vais chercher ça dans mes docs!
    @+
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Bah!
      ne te prend pas trop la tête avec le terme 'logiciel', je ne l'ai employé que pour bien separer la façon dont un bootloader adresse un secteur, et la façons dont le BIOS traduit ou non ces adresses pour la compatibilitée :o)

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
      0