Vous n'êtes pas identifié(e).
tel que préconisé ici.
Ensuite j'ai tout éteint et quatre heures plus tard je rallume et je constate que mes modifs sont bien prises en compte.
Or la date du /boot/initrd.img.5.7.10, qui "pèse" 19 Mio et qui contient bien "etc/fstab" (sans "/" en tête) entre autres, date de plusieurs jours.
J'aurais tendance, à la lecture de ce qui précède, à penser que le fstab dans initrd-img.5.7.10 n'est pas à jour mais pour vérifier c'est mission impossible : je lis dans le man update-initramfs "The initramfs is a gzipped cpio archive.", alors je tente un
et je me prends "gzip: initrd-img.5.7.10 not in gzip format" alors je tente
et j'attends qu'il se passe quelque chose et il ne se passe rien...
Donc pas moyen de savoir ce que contient ce fichu fichier d'initramfs : les vrais fichiers nécessaires au boot, ou des pointeurs vers ces fichiers ?
Je précise que lsinitramfs mon-fichier liste bien ce à quoi je m'attends (sauf le "/" de tête, comme dit plus haut).
Bon, j'ai la réponse avec la commande
Il fait 0 octet. Est-ce à dire que le système va aller chercher l'autre sur le disque ?
Il y a plein d'autres fichiers à 0, entre autres dans usr/sbin et usr/bin, et je ne sais quoi penser.
Une idée, quelqu'un ?
Merci,
Dernière modification par jpt (05-10-2020 18:54:56)
AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War
Hors ligne
gzip: initrd-img.5.7.10 not in gzip format
Tu as vérifié le contenu du fichier avec file ?
Si un paquet intel-microcode ou amd-microcode est installé, le contenu de l'initramfs classique peut être précédé par des microcodes pour le processeur.
que contient ce fichu fichier d'initramfs : les vrais fichiers nécessaires au boot, ou des pointeurs vers ces fichiers ?
Les vrais fichiers. Des pointeurs vers la racine ne fonctionneraient pas puisque la racine n'est pas encore montée.
Il y a plein d'autres fichiers à 0, entre autres dans usr/sbin et usr/bin
Exemples ?
Il vaut mieux montrer que raconter.
Hors ligne
A ma connaissance l'initramfs de Debian généré par le paquet initramfs-tools ne contient pas de copie du fichier fstab, il n'en a pas besoin. Pour monter la racine, il utilise le paramètre root= de la ligne de commande du noyau passée par le chargeur d'amorçage. Pour savoir s'il doit monter un /usr séparé, il peut lire le fichier /etc/fstab de la racine après l'avoir montée. Le reste du contenu de /etc/fstab ne concerne pas l'initramfs.
Et pourtant... voir en fin de réponse.
jpt a écrit :gzip: initrd-img.5.7.10 not in gzip format
Tu as vérifié le contenu du fichier avec file ?
Si un paquet intel-microcode ou amd-microcode est installé, le contenu de l'initramfs classique peut être précédé par des microcodes pour le processeur.
Oui, c'est ce qu'on voit en l'examinant avec Xarchiver par ex.
jpt a écrit :que contient ce fichu fichier d'initramfs : les vrais fichiers nécessaires au boot, ou des pointeurs vers ces fichiers ?
Les vrais fichiers. Des pointeurs vers la racine ne fonctionneraient pas puisque la racine n'est pas encore montée.
C'est ce que je m'étais aussi dit.
jpt a écrit :Il y a plein d'autres fichiers à 0, entre autres dans usr/sbin et usr/bin
Exemples ?
et pour savoir ce qu'il en est irl (lsn c'est un alias à moi pour trier par noms) :
man adjtimex --> c'est pour du code.
EDIT :
J'ai recopié le current et en ai fait générer un autre. Il y a 45 octets de différence, et etc/fstab est toujours là, à 0, tout comme la ligne concernant adjtimex, qui n'existe pas dans la cible.
Go figure...
Et voilà les différences :
Pourquoi est-ce que ces trucs (dont on se contre-fiche) ont changé, indépendamment de la date ? Mystère...
Dernière modification par jpt (06-10-2020 12:13:41)
AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War
Hors ligne
boot/initrd.img-5.7.10: ASCII cpio archive (SVR4 with no CRC)
Donc l'initramfs n'est pas compressé. Cela peut s'expliquer si tu as déjà exécuté gzip -d dessus (remplace le fichier compressé par le fichier décompressé et supprime l'extension .gz le cas échéant).
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/blockdev
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/arping
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/arp
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/adjtimex
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/acpid
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/bin/zcat
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/bin/yes
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/bin/xzcat
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/bin/xz
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/bin/xxd
Ce sont des commandes implémentées par l'exécutable busybox (cf man busybox). Je suppose que ce sont des liens pointant vers cet exécutable, soit des liens "physiques" (hard links) qui ont une taille nulle par nature, soit des liens symboliques dont la cible serait traitée par le format d'archive cpio comme une méta-donnée et non comme du contenu (d'où la taille nulle). Pour en avoir le coeur net, il faut extraire le contenu de l'initramfs ou redémarrer avec le paramètre "break" qui lance un shell dans l'initramfs.
Dernière modification par raleur (06-10-2020 12:19:03)
Il vaut mieux montrer que raconter.
Hors ligne
Dernière modification par jpt (06-10-2020 15:47:06)
AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War
Hors ligne
jpt a écrit :boot/initrd.img-5.7.10: ASCII cpio archive (SVR4 with no CRC)
Donc l'initramfs n'est pas compressé. Cela peut s'expliquer si tu as déjà exécuté gzip -d dessus (remplace le fichier compressé par le fichier décompressé et supprime l'extension .gz le cas échéant).
Non, j'ai fait générer un initrd tout frais pour essayer de comprendre, et j'y suis arrivé en étudiant les scripts : l'initramfs EST compressé, en fait en 2 parties : ce fichu dossier "kernel (qui contient x86 qui contient microcode qui contient AuthenticAMD.bin)" et un autre, compressé également et que je n'ai pu récupérer qu'avec l'aide de unmkinitramfs.
Je recopie un petit bout de son man :
DESCRIPTION
The unmkinitramfs command extracts the content of a given initramfs image using cpio. If the image contains multiple segments, each are passed to cpio in order.
...
BUGS
unmkinitramfs cannot deal with multiple-segmented initramfs images, except where an early (uncompressed) initramfs with system firmware is prepended to the regular compressed initramfs.
jpt a écrit :-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/blockdev
-rwxr-xr-x 247 root root 0 Apr 1 2019 usr/sbin/arping
--snip--
Ce sont des commandes implémentées par l'exécutable busybox (cf man busybox). Je suppose que ce sont des liens pointant vers cet exécutable, soit des liens "physiques" (hard links) qui ont une taille nulle par nature, soit des liens symboliques dont la cible serait traitée par le format d'archive cpio comme une méta-donnée et non comme du contenu (d'où la taille nulle). Pour en avoir le cœur net, il faut extraire le contenu de l'initramfs ou redémarrer avec le paramètre "break" qui lance un shell dans l'initramfs.
1- je ne connais pas busybox. Je sais que ça existe, si je me souviens bien je l'ai découvert sous knoppix, j'ai essayé de comprendre mais ça n'était pas évident et j'ai laissé tomber.
2- extraire le contenu de l'initramfs montre des tas de fichiers avec la même taille, c'est vraiment curieux. Mais n'importe qui peut jouer : il suffit de recopier un initrd.img quelque part puis d'aller dans ce dossier et là, unmkinitramfs -v initrd.img . (n'oubliez pas le point pour dire que c'est là que ça se passe !) et encore, je ne suis pas sûr que le -v soit bien utile.
Et vous découvrirez un dossier early (avec kernel et ce qu'il contient, vu plus haut) et un autre main qui contient tout le fourbi pour activer la suite, genre (mais les fichiers sont bizarres, ils sont parfois un paquet à avoir la même taille) :
Et voilà.
Dernière modification par jpt (06-10-2020 16:20:56)
AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War
Hors ligne
1- je ne connais pas busybox.
Busybox est une "boîte à outils" qui regroupe un grand nombre de commandes et programmes standard d'Unix/Linux en version compacte dans un seul exécutable et peut remplacer les exécutables individuels dans un système compact comme un initramfs, un installateur ou un système embarqué.
Il est inclus par défaut dans l'initramfs généré par le paquet initramfs-tools, mais on peut le désactiver via /etc/initramfs-tools/initramfs.conf. Dans ce cas, il est remplacé par klibc-utils, autre implémentation compacte des commandes système usuelles.
2- extraire le contenu de l'initramfs montre des tas de fichiers avec la même taille, c'est vraiment curieux
Ce sont simplement des liens physiques qui pointent vers le même exécutable (busybox) comme je le soupçonnais dans mon message précédent. Le nombre de liens de l'inode est affiché : 247, ce qui correspond à peu près au nombre de commandes mentionnées dans la page de manuel de busybox.
Il vaut mieux montrer que raconter.
Hors ligne
jpt a écrit :2- extraire le contenu de l'initramfs montre des tas de fichiers avec la même taille, c'est vraiment curieux
Ce sont simplement des liens physiques qui pointent vers le même exécutable (busybox) comme je le soupçonnais dans mon message précédent.
Bien vu !
Le man de busybox me liste les commandes disponibles et la première que je rencontre c'est celle dont je ne comprenais pas d'où elle sortait puisqu'elle est absente de la vraie machine :
COMMAND DESCRIPTIONS
adjtimex
adjtimex [-q] [-o OFF] [-f FREQ] [-p TCONST] [-t TICK]
Read and optionally set system timebase parameters. See adjtimex(2)
Mais je n'ai toujours pas d'explication concernant fstab, car si j'ai bien vu au début du man
... To create a working system, just add /dev, /etc, and a Linux kernel.
je constate avec lsinitramfs que le dossier /etc de initrd.img est loin de ressembler à celui de la machine : 29 fichiers et dossiers contre 3074 !
J'ai passé la matinée à étudier les scripts de création des .img sans rien trouver de significatif.
Bon, ce n'est pas dramatique, c'était juste pour me coucher moins bête.
Par ailleurs,
jpt a écrit :1- je ne connais pas busybox.
Busybox [...] est inclus par défaut dans l'initramfs généré par le paquet initramfs-tools, mais on peut le désactiver via /etc/initramfs-tools/initramfs.conf. Dans ce cas, il est remplacé par klibc-utils, autre implémentation compacte des commandes système usuelles.
J'ai bien l'impression que j'ai les deux -- infos récupérées avec lsinitramfs -l fichier.img :
Bah, tant que ça n'est pas gênant, ça peut rester ainsi.
Dernière modification par jpt (07-10-2020 12:43:26)
AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War
Hors ligne