Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/10/2011, à 12:30

Zolotaya

Démarrage du système

Hello les gens,

Je viens juste pour poser une question, et non à cause d'un soucis.
Ma question est la suivante:

Lors du démarrage du système, le process init va lire le fichier /etc/initiab (enfin peut être plus dans Ubuntu 11.04, j'ai pas encore regardé comment ça fonctionne) puis monter les partitions avec les informations dans /etc/fstab.

Ma question est la suivante : Comment le process de démarrage fait pour lire ces deux fichiers alors que le filesystem n'est toujours pas mounté (donc pas de répertoire /etc...) ?

Merci d'avance pour vos réponse big_smile

Hors ligne

#2 Le 03/10/2011, à 13:14

ssdg

Re : Démarrage du système

Il n'y a pas que dans /etc/fstab que sont indiqués des informations de montage de disques.

Il y a aussi les fichiers de conf du gestionnaire de démarrage ou bootloader (chez ubuntu, je crois que c'est encore grub). Et le noyau (linux) reçoit en paramètre les identifiants du disque sur lequel chercher ça.

Le bootloader et sa conf existent dans le dossier /boot mais sont aussi écrits dans le secteur de démarrage du disque. C'est là, à un endroit où l'ordinateur sait le trouver "de base" que se trouvent les instructions pour monter le disque (et le lire)

Par contre, je ne sais plus si un noyau est dispo aussi dans ce secteur ou si le bootloader doit savoir lire le système de fichier ou le trouver.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#3 Le 03/10/2011, à 13:46

serged

Re : Démarrage du système

Le gestionnaire de boot monte le noyau avec une partition "root". Par exemple (avec grub 1, dans grub 2 les fichiers de configuration sont "éclatés" je ne sait où), un système est décrit dans le menu.lst :

title           Ubuntu 11.04, kernel 2.6.38-11-generic
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.38-11-generic root=UUID=bae08ff6-7f77-48e9-bb31-bc1cc839601f ro no vga=771
initrd          /boot/initrd.img-2.6.38-11-generic
quiet

Va :
Chercher le tout sur la première partition du 1er disque : root (hd0,0)
Charger dessus le noyau situé dans /boot/vmlinuz-2.6.38-11-generic cette partition avec la partition d'UUID=bae... montée en root et un ramdisk chargé depuis /boot/initrd.img-2.6.38-11-generic.

(on aurait pu mettre la ligne :

kernel          /boot/vmlinuz-2.6.38-11-generic root=(hd0,0) ro no vga=771

)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#4 Le 03/10/2011, à 16:36

Zolotaya

Re : Démarrage du système

Ok pour le chargement du noyau :

Au chargement, Grub choisi une image noyau à partir des données qu'il connaît. Ma question de façon plus précise est la suivante :
J'ai supposons le partitionnement suivant :

/boot -> /dev/sda1 (ext2)
/home -> /dev/sda2 (ext3)

/bin  -> /dev/sdb1 (ext4)
/etc  -> /dev/sdb2 (btrfs)
/var  -> /dev/sdb3 (raiserfs)

à grub je lui dit : le noyau linux est ici : hd0,0 (1er disque, 1ere partition)
il va donc :

  1. décompresser l'image et charger le noyau en mémoire.

  2. Charger les drivers interne au noyau (genre btrfs)

  3. Charger les drivers externe (modules)

Pour monter les différentes partitions, il va avoir besoin à un moment d'aller lire le fichier (/etc/fstab). Cependant pour le lire, la partition /etc doit déjà être monté et ceux avec le drivers btrfs inclu dans  le noyau.
Ma question est donc :
Comment savoir que la partition /dev/sdb2 est en btrfs et correspond /etc sans avoir eu accès au fstab (la lecture dépend du système de fichier sous jacent...) ? Quel est donc l’intérêt du fstab ?

Hors ligne