web-dev-qa-db-fra.com

Initiramfs utilise-t-il / etc / fstab?

La façon dont je comprends, InitiRAMFS est responsable du chargement du système de fichiers racine "réel".

Maintenant, il y a deux endroits où nous définissons cette racine. Nous avons d'abord mis une entrée dans /etc/fstab. Deuxièmement, nous mettons l'appareil sur les commandes de démarrage du noyau par exemple. root=/dev/sda1.

Laquelle utilise-t-on pour déterminer où est le système de fichiers racine? S'il utilise le paramètre de noyau racine, pourquoi avons-nous une entrée dans /etc/fstab? La deuxième option, (elle lit /etc/fstab), est assez illogique parce que le /etc/fstab Le fichier est sur le périphérique très racine que Initiramfs tente de monter en premier lieu.

Trucs très confus.

20
Ahmed Ghonim

Comme vous l'avez dit, le but d'Initiramfs est d'obtenir le système de fichiers racine "réel" (il peut également faire d'autres choses aussi, mais c'est la tâche commune).

Sans initramfs, le noyau montra normalement une partition en lecture seule, puis passe le contrôle de /sbin/init. Un initramfs prend simplement sur cette tâche du noyau, généralement lorsque le système de fichiers racine n'est pas une partition normale (MDRAID, LVM, crypté, etc.).

Maintenant, en dehors de l'arrière-plan sur Initiramfs, votre /etc/fstab réside sur votre système de fichiers racine. En tant que tel, lorsque INITITRAMFS est lancé, ce système de fichiers racines n'est pas là, et il ne peut donc pas se rendre au fstab (poulet et problème d'œuf).
[.____] Au lieu de cela, nous devons adopter un paramètre dans les arguments de démarrage du noyau pour les initiatives d'injustice à utiliser. Normalement, c'est quelque chose comme root=/dev/sdX. Cependant, cela pourrait également faire quelque chose pour déterminer automatiquement où votre périphérique racine est, et il n'y a donc aucun paramètre du tout. Comme il s'agit d'un logiciel (généralement un script), il peut vraiment faire tout ce qu'il souhaite pour monter le périphérique racine.

Maintenant, comme indiqué précédemment, le noyau montera la racine réelle comme en lecture seule. Les Initiramfs devraient faire exactement cela. Une fois que l'injusteur est terminé, le système procède à démarrer exactement comme s'il n'y avait pas d'injusteur du tout et /sbin/init commence. Cet init commence alors tous vos scripts de démarrage normaux et c'est le travail de l'un de ces scripts à lire /etc/fstab, commutateur racine pour lire-écriture et monter tous vos autres systèmes de fichiers.

15
Patrick

Cela peut ou non. Comme l'initiateur peut être construit de différentes manières (le noyau le charge et fonctionne /init qui fait quoi que ce soit). Cependant, l'utilisation d'un paramètre est plus courante, car elle permet une plus grande flexibilité - c'est-à-dire que quelque chose change, vous pouvez simplement modifier l'entrée de démarrage et les choses continuent de fonctionner. Avec une racine codée codée codifiée, cela ne serait pas nécessairement possible.

L'entrée FSTAB peut toujours être requise de toute façon, car elle détermine également d'autres choses, telles que les options de montage (dont certaines peuvent être modifiées sur le parc et fsck commande. Également même si c'était entièrement superflu (et si l'Initiramfs le gère, cela peut fonctionner sans), je garderais toujours l'entrée là-bas simplement pour l'intérêt de l'exhaustivité.

2
frostschutz

Vous pouvez envisager/etc/fstab en tant que montage statique, ce n'est qu'un moyen de faire une telle tâche, mais pas le seul, en fait, exécuter la montagne de la commande et que vous voyez beaucoup de systèmes de fichiers qui manquent dans FSTAB. Service Un tel UDev et UDISK gèrent une grande partie de la "Automobilisation" ignorant le fichier/etc/fstab ...

Donc, si quelque chose est monté ou pas souvent, il n'a rien à voir avec/etc/fstab.

initiRAMFS Ce n'est que des rootfs temporaires utilisés lors du processus de démarrage jusqu'à ce que la roche rootfs "vraie" soit montée, alors pourquoi devraient-elles être inadramfs sur/etc/fstab?

1
sebelk