GNU/Linux >> Tutoriels Linux >  >> Linux

Comment savoir si le système spécifique a besoin d'une partition de démarrage ?

Je connais l'histoire générale de la raison pour laquelle nous avons historiquement des partitions de démarrage distinctes :

A quoi sert vraiment la partition /boot ?

et sur un nouvel ordinateur, je ne pourrais pas m'embêter avec un. Cependant, j'installe Linux sur un système de 20 ans, avec un BIOS non UEFI (qui ne peut même pas démarrer depuis USB). Ce ne sera pas une machine multi-boot, ou quoi que ce soit de compliqué :pas de LVM, pas de cryptage de disque, pas de RAID, etc.

Comment puis-je savoir si mon spécifique ordinateur, avec mon spécifique Disque dur, besoin d'une partition de démarrage ?

Remarque :

  • Au cas où cela aurait de l'importance - la distribution que j'avais l'intention d'installer est antiX Linux 19.3 i386. Il invoque gparted pour vous permettre de modifier les partitions.
  • Le chargeur de démarrage sera naturellement celui que ma distribution installe, qui AFAICT est grub2.

Réponse acceptée :

Si un système date de l'année 1994 ou plus, son BIOS peut ne pas être en mesure de gérer les disques avec une géométrie de clusters/têtes/secteurs supérieure à 1024/16/63, ce qui correspond à une limite de 504 Mio (528,4 Mo). La raison en était une interaction gênante de deux ensembles de limites :

  • la fonction BIOS INT 13h classique non étendue acceptait une géométrie de disque maximale de 1024/255/63
  • le matériel IDE (PATA) accepterait une géométrie maximale de 65536/16/63
  • jusqu'à présent, les implémentations triviales choisissaient simplement la plus petite limite dans chaque valeur, ce qui entraînait une limite de 1024/16/63.

En juillet 1994, une nouvelle fonctionnalité du BIOS "Enhanced Disk Drive Services" (EDD en abrégé) a été développée pour contourner cette limite. Il a déplacé des bits entre les parties Clusters et Heads de la géométrie entre la représentation du BIOS et l'interface matérielle IDE (appelée "traduction de géométrie"), comme solution de contournement pour cette limite.

Certaines versions du BIOS présentaient également des bogues au niveau de la géométrie du disque 4096/16/16 ou de sa forme "traduite" 1024/64/63.

A une géométrie de disque de 16383/16/63 (ou 1024/255/63 sous forme traduite), la limite maximale de l'adressage disque C/H/S classique a été atteinte :les formats d'entrée de données des fonctions BIOS gérant ce type d'adressage disque n'avait tout simplement pas assez de bits pour gérer des disques plus gros que cela. Cette limite a été atteinte avec une taille de disque de 7,87 Gio (8,45 Go), soit exactement 16 450 560 blocs de disque.

La spécification IDE (PATA) incluait une fonctionnalité qui pouvait contourner ce problème, mais elle était initialement spécifiée comme fonctionnalité facultative et tous les BIOS ne l'implémentaient pas. Il s'appelait Logical Block Addressing, ou LBA en abrégé. Au fur et à mesure que la taille des disques augmentait, la plupart des disques sortis après 1996 environ prenaient en charge LBA.

Mais ensuite, un autre bogue du BIOS a été découvert :certains BIOS avaient une implémentation LBA défectueuse qui échouait si plus de 26 bits étaient nécessaires pour représenter le numéro de bloc de disque. Cela a affecté certaines versions du BIOS publiées en août 1999 ou avant, et a entraîné une limite de taille de disque d'exactement 32 Gio (33,8 Go).

La spécification LBA publiée en 1994 n'avait alloué que 28 bits pour le numéro de bloc de disque, ce qui a entraîné une autre limite de taille de disque à exactement 128 Gio de taille de disque. La spécification ATA-6 publiée en 2003 spécifiait des versions 48 bits des fonctions d'accès au disque LBA, ce que nous utilisons actuellement avec les disques SATA modernes. Cela devrait fonctionner jusqu'à ce que la taille des disques atteigne 128 PiB.

Connexe :Comment utiliser "par" et "jusqu'à" dans ces contextes spécifiques ?

Il était souvent possible de contourner ces limitations en spécifiant délibérément une géométrie de disque incorrecte dans le BIOS, en lui disant que le disque était plus petit que la limite incriminée et en faisant /boot une partition qui s'intègre parfaitement dans la fausse géométrie.

Parfois (après l'introduction du support LBA), il suffisait que le /boot la partition était dans la limite de taille appropriée.

Le chargeur de démarrage utiliserait les routines du BIOS pour charger le noyau Linux (et éventuellement un fichier initrd) à partir de cette partition, et une fois le noyau démarré, ses pilotes prendraient en charge l'accès au disque, contournant complètement le BIOS et rendant ses limitations non pertinentes tant que le système d'exploitation courait. À ce stade, la géométrie réelle du disque serait généralement détectée automatiquement par le noyau.

Alors, qu'est-ce que cela signifie ?

  • si votre système a une date de sortie du BIOS en 2004 ou avant, vous devrez peut-être créer un /boot partition qui tient entièrement dans les 128 premiers Go du disque, sinon le BIOS risque de ne pas démarrer le système d'exploitation. (Il s'agit généralement d'un problème uniquement pour les configurations à double amorçage et autres configurations multi-OS.)
  • si votre système a une date de sortie du BIOS antérieure à l'an 2000, vous pouvez créer un /boot séparé partition dans les 32 premiers Go du disque, juste pour être à l'abri des bogues d'implémentation LBA.
  • si le système date de 1996 ou avant et ne mentionne "LBA" nulle part dans les paramètres du BIOS, vous devrez peut-être spécifier une fausse géométrie de disque et vous assurer que votre /boot partition se trouve à la fois dans la fausse géométrie et dans les premiers 7,87 Gio du disque.
  • quelque chose de plus ancien :"Il appartient à un musée." 🙂 Mais si vous devez, voir ci-dessus pour les limites pertinentes.

Si la date de publication du BIOS d'un système est juste après la date d'une mise à jour de spécification particulière, il peut ou non avoir la spécification mise à jour :après la publication de chaque mise à jour de spécification, il a fallu un certain temps pour que les nouvelles implémentations deviennent omniprésentes.


Linux
  1. Comment copier la disposition des partitions d'un disque entier à l'aide d'outils standard ?

  2. Comment ajouter une nouvelle entrée de démarrage du système d'exploitation au menu Grub2 ?

  3. Sur quelle partition le chargeur de démarrage est-il installé ?

  4. Comment puis-je savoir si je suis dans un écran ?

  5. Redimensionner la partition de démarrage

Comment partitionner un disque sous Linux

Comment supprimer une partition sous Linux

Comment chiffrer une partition sous Linux

Comment déplacer la partition Ext4 avant la partition de démarrage ?

Comment savoir quel processus a un port spécifique ouvert sous Linux ?

Comment puis-je savoir si le serveur prend en charge les disques remplaçables à chaud ?