Je souhaite en savoir plus sur la manière dont Linux gère les partitions de démarrage distinctes. Je ne suis pas vraiment intéressé à faire cela, mais j'aimerais savoir comment cela fonctionne sous le capot.
Considérez un disque dur sda
, qui a deux partitions sda1
et sda2
. Disons que sda2
c'est la root
partition /
qui contient le système d'exploitation Linux.
Ma compréhension est que le chargeur de démarrage GRUB2
est monté sur /boot
. Cependant, lorsque le répertoire se /boot
trouve sur une partition distincte sda2
, comment cela peut-il se produire avant qu'il ne /
soit réellement monté?
Comment l'interaction entre le BIOS, l'enregistrement de démarrage principal et GRUB (ou les fichiers /boot
) se produit-elle dans ce cas? Est-ce que les données /boot
ne sont pas réellement montées sur le /
système de fichiers à ce stade précoce?
Remarque: cette question concerne le montage de la partition racine, mais ne traite pas d'une partition de démarrage distincte.
/boot
fait pas initialement référence à un répertoire monté sur la partition racine?run-init
lequel supprime tous les fichiers dans les initramfs, puis chroote dans le système de fichiers racine.UEFI
devient de plus en plus populaire ;-) @strugeeJe ne pense pas que vous compreniez bien ici. Depuis la page Wikipedia de GNU GRUB :
extrait
Dans GRUB version 2, les opérations suivantes ont lieu:
extrait
REMARQUE: Lorsque vous voyez le menu GRUB2 typique dans lequel vous sélectionnez le système d'exploitation / noyau à démarrer, vous faites référence au
/boot/grub
répertoire du système à ce stade.Les références
la source
Linux (le noyau) ne se soucie pas du nombre de partitions de démarrage dont vous disposez. Chargement du noyau à partir du disque est le travail du bootloader (par exemple
grub
,grub2
,lilo
) et ces outils aussi ne se soucient pas du nombre d'emplacements peut se trouver un noyau. Ils ne se soucient que de l'emplacement spécifique.Par exemple, ma partition de démarrage est
/dev/md1
, qui est un miroir RAID mdadm soutenu par les partitions physiques/dev/sde1
et/dev/sdf1
. Je peux les monter individuellement si je le voulais et en tant que tel, cela compte techniquement comme ayant deux partitions de démarrage, bien qu'elles devraient contenir les mêmes données.Avoir deux partitions pour / boot pour moi est un problème de disponibilité, mais il pourrait également s'agir de partitions / boot différentes. La prochaine étape est de savoir comment le chargeur de démarrage sait? Voici comment:
Ceci est un extrait d'une
grub2
configuration et vous remarquerez que les seules différences sontroot=hd0,1
etroot=hd1,1
qui établissent la partition de démarrage à laquelle cette entrée fait référence.Maintenant, pour vous guider à travers une botte afin que vous puissiez comprendre ce qui se passe ici.
grub2
) est configuré pour savoir quel périphérique et quelle partition contient votre noyau. Grub2 accède directement à cette partition et charge votre noyau en mémoire.Le chargeur de démarrage ne se soucie pas du nombre de partitions de démarrage que vous avez, il ne se soucie que de leur emplacement et vous devez lui fournir ces informations.
Le noyau ne se soucie pas du nombre de partitions de démarrage dont vous disposez, car il n'a jamais besoin de les voir (il vous suffit de le disposer pour ajouter de nouveaux noyaux par exemple).
la source