Je m'avise que
jcfaggia
vient de répondre à la question avec une concision qui décidément me fait défaut. Je poste nonobstant cette prose qui tire « en longitude »...
Salut
Yhugs.
Réponse au 1er degré
Un disque est un support physique porteur de
partitions, qui sont des sectorisations logiques de son espace. Chaque partition contient un
système de fichiers, dans lequel sont stockées des données, et qui
monte en volume au démarrage. Il existe 2 grands types de volumes (systèmes de fichiers montés d'une partition) : «
démarrable » vs «
de stockage ». Un volume «
démarrable » contient un
Système (comme
OS X) ; un volume «
de stockage » contient des
données mais pas de Système.
Lorsqu'on démarre le Mac avec la touche "
alt" pressée, un programme auxiliaire de l'
EFI (le
Programme Interne du Mac ou
Firmware recelé dans une puce de la Carte-Mère) se trouve déclenché : le
DiskManager, qui est un "gestionnaire de disque" natif => ce programme
scanne tous les
volumes montés des disques attachés au Mac (en interne et en externe) au démarrage, avec
un seul critère discriminant : la
présence ou l'
absence d'un fichier
boot_loader, qui est le fichier "
démarreur" (logiciellement parlant) d'un OS que l'
EFI peut exécuter. En gros : un
boot_loader est une « application primaire de l'
EFI » capable de
booter un Système démarrable présent dans un volume monté (pour
OS X : le
boot_loader est le fichier
boot.efi qui charge le
kernel (micro-noyau) et lui injecte les
kexts ou pilotes du
hardware).
Les volumes reconnus
contenir un fichier
boot_loader au scan (un
boot.efi pour
OS X) sont identifiés par le
DiskManager comme relevant de la catégorie des : «
démarrables » et donc
affichés à l'écran de choix du disque de démarrage / les volumes reconnus
ne pas contenir un fichier
boot_loader au scan (un
boot.efi pour
OS X) sont identifiés par le
DiskManager comme relevant de la catégorie des : «
supports de stockage » et donc
non-affichés à l'écran de choix du disque de démarrage.
☞ Tout volume d'un DDE, d'une clé USB ou d'une Carte mémoire (externes) comme tout volume d'une partition du HDD ou SSD du Mac (interne) qui, au scan du
DiskManager, ne révèle pas la présence d'un
boot_loader est donc identifié comme un «
support de stockage » simple, sans Système démarrable, et par conséquent
non-affiché à l'écran de choix du disque de démarrage.
♤
Réponse au 2è degré
Comment s'y prend le "gestionnaire de disque" de l'
EFI : le
DiskManager pour repérer, par scannage des volumes montés au démarrage, la présence ou l'absence d'un
boot_loader (
boot.efi pour
OS X) ?
Cette question mérite d'être posée, parce qu'en ce qui concerne le fichier
boot_loader d'
OS X, il se trouve
enfoui dans les profondeurs de l'arborescence logique de l'OS at:
/Volumes/"Macintosh HD"/System/Library/CoreServices/boot.efi => le "gestionnaire de disque"
DiskManager va-t-il pousser le scan des volumes montés jusqu'à descendre de haut en bas l'arborescence des systèmes de fichiers concernés afin de vérifier «
exhaustivement » si oui ou non existe quelque part un
boot_loader ?
Ce type de procédure de vérification aurait très bien pu être implémentée dans la programmation du
DiskManager par les ingénieurs de la , mais ils s'en sont bien gardés, à cause d'une objection majeure : le
Temps requis par une telle procédure, qui se trouverait multiplié par autant de volumes que montés. Lorsque, par exemple, je lance un logiciel de scan de la taille des fichiers/dossiers d'un volume comme «
Disk Inventory X», il faut largement plus d'une minute au programme pour inventorier toute l'arborescence du système de fichiers concerné d'un seul volume. J'ai 6 volumes démarrables de 6 versions d'
OS X différentes sur des partitions de mon SSD interne de 1 To + 5 volumes de «
Recovery HD» corrélatives démarrables, soit 11 volumes démarrables. Et je peux avoir attaché à mon Mac en externe 4 DDE recelant ensemble 10 volumes démarrables. Ce qui m'amène à 21 volumes démarrables : si je démarre avec "
alt" dans de telles conditions, vais-je avoir à attendre plus d'un quart d'heure que le
DiskManager ait scanné
exhaustivement de haut en bas l'arborescence de
chaque volume monté (et, en plus de mes 21 volumes démarrables, j'aurais une poignées additionnelle de volume « de stockage » simple dans le lot) ?
Ce serait
irréaliste en pratique. Par suite, le
DiskManager ne scanne que les
headers ("en tête") des systèmes de fichiers, et additionnellement le seul espace-racine consécutif des volumes, sans aucunement suivre l'arborescence logique en-dessous. Comment alors un Système intrinsèquement démarrable comme
OS X, dont le
boot_loader :
boot.efi réside au 3è degré inférieur par rapport à la racine du volume, va-t-il pourvoir être détecté au scan du
DiskManager comme «
démarrable » et pas relégué au rang de «
support de stockage » ? Tu vois le problème ?
Il est résolu depuis les origine d'
OS X par la technique du
blessing ("
bénédiction") : il s'agit de l'inscription (par une commande), sur le
header d'un système de fichiers «
démarrable », de l'
adresse au dossier recelant le
boot_loader => ainsi, au scan d'un tel volume, le
DiskManager suit directement ce chemin depuis le
header et vérifie la présence d'un
boot_loader, ce qui prend un temps infime. À la fin de l'installation de toute version d'
OS X, l'installateur procède au
blessing du volume concerné, càd. à l'inscription de l'adresse au
boot_loader :
boot.efi sur le
header du système de fichiers. Idem pour la «
Recovery HD» corollaire. Idem pour les logiciels de clonage, qui terminent toute opération de clonage sur un DDE par un
blessing du volume.
Quid si (par exception) j'ai l'image d'un système démarrable (= clone) sur le volume d'un DDE sans que le
blessing ait opéré (parce qu'au lieu de passer par le logiciel de clonage «
Carbon Copy CLoner» - par exemple - qui opère toujours un
(re)blessing in fine, j'ai utilisé dans le «
Terminal» un programme de recopie
UNIX, comme
cp,
ditto,
rsync ou
asr avec l'option
archive sans opérer de
blessing du volume en sortie) ? Eh bien ! le Volume ne pourra pas être démarré, car il ne sera pas repéré comme «
démarrable » par le
DiskManager lors du scan initié par "
alt" et, par suite, non affiché à l'écran de choix des disques de démarrage (alors qu'il recèle un Système intrinsèquement démarrable) => il faut alors, pour corriger cette lacune, procéder à une commande manuelle de
blessing spécifique de ce volume dans le «
Terminal» (par l'invocation
ad-hoc du programme
bless) de type :
Bloc de code:
sudo bless --folder /Volumes/"Macintosh HD"/System/Library/CoreServices
et le chemin au
boot_loader :
boot.efi recelé dans le répertoire des
CoreServices sera inscrit sur le
header du système de fichiers et pourra être suivi par le
DiskManager au scan initié par "
alt".
Quid si (par plaisanterie) j'ai une copie du
boot_loader :
boot.efi dans un simple volume «
de stockage », que je me suis amusé à bénir en manuel dans le «
Terminal» ? Ce volume sera infailliblement assimilé à un volume «
démarrable » par le
DiskManager, alors même que c'est un faux volume démarrable, car il n'y a pas de Système derrière le
boot.efi => le
DiskManager a été leurré par le petit plaisantin
macomaniac...
♧