web-dev-qa-db-fra.com

Monter le système de fichiers racine depuis initramfs

C'est un scénario courant. Pour une raison quelconque, les initramfs (OpenSUSE, au cas où cela importe) n'a pas réussi à trouver le système de fichiers racine, il vous dépose donc dans un shell de secours. Cependant, je sais parfaitement quel appareil doit être monté. Ma question:

Quelle est la bonne procédure pour monter le système de fichiers racine et continuer la séquence de démarrage?

Vraisemblablement, c'est tout le point de la console de sauvetage. Et pourtant, personne ne semble avoir documenté comment vous faites cela.

Évidemment, je peux monter le système de fichiers racine quelque part. Mais comment puis-je faire que la racine de l'arborescence du système de fichiers? Et maintenant, puis-je continuer le processus de démarrage normal après cela? (Je pensais que juste quitter le Shell le ferait ... mais ce n'est pas le cas.) De quoi avez-vous besoin exactement pour être monté avant de continuer, et comment continuez-vous?

16
MathematicalOrchid
 exec switch_root/mnt/root /sbin/init

https://wiki.gentoo.org/wiki/Custom_Initramfs#Init

4
Petr Ketner

Exécutez simplement la commande fsck sans les options de initramfs puis redémarrez

par exemple: la partition racine est sda3

fsck /dev/sda3
2
GAD3R

la procédure normale est

  1. monter/dev/sdX/mnt
  2. résoudre le problème sur/mnt
  3. redémarrer

Tu pourrais vouloir

  1. monter/dev/sdX/mnt
  2. fixer/mnt
  3. umount/mnt
  4. mount/dev/sdX /
  5. terminer le démarrage manuellement

Ce n'est pas recommandé, vous devrez le faire à chaque démarrage. Dans un environnement de production, vous ne pouvez pas être sûr que le démarrage manuel suit les mêmes étapes que le démarrage automatique.

Cependant, en cas d'urgence avec des données critiques, l'étape 5 se résume généralement à:

  • 5.1 Configurer le réseau
  • 5.2 Copiez le fichier important dans un endroit sûr
2
Archemar

Si la root= est correct et le problème est simplement que le périphérique nécessaire n'est pas disponible (par exemple parce que les initramfs n'ont pas réussi à assembler un md RAID), alors il suffit de rendre le périphérique disponible manuellement, par exemple:

mdadm --assemble ...

Vérifiez ensuite que l'appareil est là et si tout semble bon, appuyez sur ctrl + d ou tapez exit pour quitter le shell initramfs. Les initramfs monteront alors le système de fichiers racine et continueront à démarrer comme d'habitude. Une fois le système démarré, vous devez réparer le problème sous-jacent, par exemple en exécutant update-initramfs -u.

Je n'ai pas encore trouvé de moyen de dire aux initramfs de démarrer un périphérique différent de ce que /proc/cmdline dit. Peut-être que quelqu'un d'autre a une idée?

1
Martin von Wittich