[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 Date d'inscription Statut Contributeur Dernière intervention -
johndoe Messages postés 2645 Date d'inscription Statut Contributeur Dernière intervention -
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)
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à!
@++
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"
A voir également:
- [Info] Le mythe du 1024éme cylindre!
- Crystal disk info - Télécharger - Informations & Diagnostic
- Info pc - Guide
- Wifi info view - Télécharger - Divers Réseau & Wi-Fi
- Info 38028 - Forum Mobile
- I-info - Télécharger - Médias et Actualité
7 réponses
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 :)
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 :)
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 !
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 !
Pourtant, c'est bien réel :)
http://thomas.linard.free.fr/articles/adressage.html
http://thomas.linard.free.fr/articles/adressage.html
"Si c'est stupide et que ça marche, alors ce n'est pas stupide"
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 !
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 !
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.
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 ;-)
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.
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"
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!
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!
Cette partition demarre au cylindre 3236.
- Je désinstalle lilo
- Je reboot.
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.
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)
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"
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.
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 ;-)
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 !
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 !
: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 ;)
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"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est du brut ça, eh ben bravo.
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
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!
??
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!
??
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.
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"
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!
@+
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!
@+