Différence entre les partitions amorçables et non amorçables


8

Quelle est la différence entre une partition amorçable et non amorçable? Je sais qu'un utilisateur ne peut pas démarrer un système à partir d'une partition marquée non amorçable et peut à partir d'une partition marquée amorçable.

Je veux connaître les différences sous-jacentes entre ces drapeaux de partition.


1
Peut-être que savoir quel est le processus de démarrage linux pourrait vous aider. ibm.com/developerworks/linux/library/l-linuxboot

@anon_anon Euh, cet article, bien qu'il soit sans aucun doute bon, est un peu ancien. Il date de 2006 et traite de GRUB Legacy. Je pense que les choses ont un peu changé avec GRUB 2. (Si rien d'autre, ils utilisent des noms différents pour les " étapes " de démarrage dans GRUB 2 :). J'ai essayé de trouver une mise à jour DeveloperWorks de l'article que vous avez lié pour GRUB 2, mais je ne l'ai pas fait. Le plus proche que j'ai pu venir était celui-ci: Migrer vers GRUB 2 .
John irrationnel

@Rony Ooops. Mis à jour ma réponse.
John irrationnel

Réponses:


6

Bien qu'il ait été rejeté ... peut-être parce que quelqu'un pensait qu'il ne répondait pas à la question ... Je pense que la réponse de @ Rony est un bon début pour expliquer de quoi bootparle le drapeau. (Je prévoyais en fait de commencer ma réponse par un exemple similaire à celui qu'il a fourni.)

J'étais prêt à divaguer sur la façon dont le bootdrapeau est, à ce stade, un vestige historique souvent ignoré (comme le montre l'exemple de @ Rony) d'une période où les disques durs étaient plus petits et les chargeurs de démarrage beaucoup moins sophistiqués.

Mais j'ai découvert que cela avait déjà été dit dans cette réponse à cette question: Qu'est-ce que l'option "Drapeau de démarrage" lors de l'installation d'une distribution?

De plus, il y avait aussi un lien vers un court article sur le drapeau de démarrage qui dit

  • " Sa fonction principale est d'indiquer à un chargeur de démarrage de type MS-DOS / MS Windows la partition à démarrer. Dans certains cas, il est utilisé par Windows XP / 2000 pour affecter à la partition active la lettre" C: ". "

Eh bien, c'est embarrassant ...

Quand j'ai prétendu que le bootdrapeau était un " vestige historique ", je supposais que c'était le cas parce que GRUB n'avait clairement pas besoin de l'utiliser. Certes, Microsoft aurait également " évolué ".

La citation bien connue généralement attribuée à Oscar Wilde s'est avérée trop vraie dans ce cas.

Il semble que les chargeurs MBR et PBR (Partition Boot Record) utilisées par les systèmes d'exploitation de Windows NE prévoient que le bootpavillon soit correctement réglé.

Pour tester cela, j'ai effacé l'indicateur de démarrage de toutes les partitions d'une machine virtuelle Windows 8. (Voir ci-dessous. Si vous êtes curieux, voici un lien vers la boîte à pâte du résultat complet du script BootInfo )

Drive: sda     
Disk /dev/sda: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders, total 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048       718,847       716,800   7 NTFS / exFAT / HPFS
/dev/sda2             718,848    52,426,751    51,707,904   7 NTFS / exFAT / HPFS

Lorsque j'ai effacé l'indicateur des deux partitions, j'ai reçu le message d'erreur FATAL: INT18: BOOT FAILURElorsque j'ai tenté de démarrer. (Je ne sais pas si cela provient du chargeur de démarrage Windows MBR ou de l'équivalent VM d'un BIOS.)

Juste pour voir ce qui se passerait, j'ai également mis le bootdrapeau sur la "mauvaise" partition, /dev/sda2au lieu de /dev/sda1. Cela a abouti à la fenêtre montrée dans l'image ci-dessous.

Windows n'a pas pu démarrer la fenêtre d'erreur

<sigh/>

Cette expérience me fait me demander si Microsoft utilise toujours le même chargeur de secteur de démarrage MBR qu'ils ont utilisé pour MS-DOS et Windows 3.0 / 3.1?


3

Je sais qu'un utilisateur ne peut pas démarrer un système à partir d'une partition marquée non amorçable et peut à partir d'une partition marquée amorçable.

Depuis le disque dur d'un ordinateur portable

# fdisk  -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x47b94fbe

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     1999999      998976   83  Linux
/dev/sda2         2000000     9999999     4000000   82  Linux swap / Solaris
/dev/sda3        10000000    89999999    40000000   83  Linux
/dev/sda4        90000000   976773167   443386584   83  Linux

Depuis USB Linux amorçable

# fdisk  -l /dev/sdb

Disk /dev/sdb: 8004 MB, 8004304896 bytes
247 heads, 62 sectors/track, 1020 cylinders, total 15633408 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a5395

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2097151     1047552   83  Linux
/dev/sdb2         2097152    15632383     6767616   83  Linux

Ils n'ont pas de partition de démarrage unique, alors qu'ils sont tous amorçables.


2

Juste un drapeau dans la table des partitions. Le MBR recherche l'indicateur dans les partitions et s'exécute à partir de la partition avec l'indicateur "boot".


0

Lorsque vous utilisez le MBR Microsoft traditionnel, le code du MBR identifie comment effectuer les E / S disque et parcourt les partitions pour voir laquelle est marquée avec l'indicateur de démarrage. Une seule partition doit être ainsi marquée. Il vérifie ensuite le premier secteur de cette partition, et s'il est correctement marqué, il lit ce secteur et lui transfère le contrôle. Si je me souviens bien, cette vérification est que le secteur se termine par 0x55 0xaa.

Le reste de la responsabilité du démarrage incombe au code de ce secteur et au code qu'il charge à son tour.

GRUB2 utilise très souvent ses propres MBR et processus, ignorant ce bit.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.