web-dev-qa-db-fra.com

Est-il possible d'accéder au système de fichiers initrd après le démarrage?

De nombreux systèmes Linux démarrent sur un initrd/initramfs, puis montent le vrai système de fichiers racine, y chrootent et continuent de démarrer. Mon initrd est toujours monté techniquement, mais comment y accéder? Si je modifie mon initrd pour lier le montage lui-même dans la nouvelle racine, je peux le voir. Mais est-il possible d'y accéder sans prendre ces mesures? Y a-t-il un fichier de périphérique particulier associé aux initrds que je pourrais lier monter?

Pourquoi je veux ça ...

J'ai un système intégré où le système de fichiers racine est une superposition d'un tmpfs assis au-dessus d'une image squashfs. Je voudrais travailler sur un système, puis regarder les tmpfs pour voir les modifications que j'ai apportées au système de fichiers. En fonctionnement normal sans que je modifie le démarrage, les montages des couches tmpfs et squashfs sont masqués/perdus une fois que le système passe à la racine de superposition.

1
Harvey

à partir de la documentation du noyau linux sous linux/Documentation/initrd.txt:

  noinitrd

    initrd data is preserved but it is not converted to a RAM disk and
    the "normal" root file system is mounted. initrd data can be read
    from /dev/initrd. Note that the data in initrd can have any structure
    in this case and doesn't necessarily have to be a file system image.
    This option is used mainly for debugging.

    Note: /dev/initrd is read-only and it can only be used once. As soon
    as the last process has closed it, all data is freed and /dev/initrd
    can't be opened anymore.

c'est-à-dire que si vous spécifiez le noinitrd dans vos options de démarrage, vous pouvez supposément accéder à l'initrd d'origine dans le /initrd le point de montage après pivot_root passe à la racine "réelle", avec les mises en garde ci-dessus. J'ai joué avec ça il y a peut-être deux décennies, et je ne sais pas si ça marche toujours.

1
jcomeau_ictx