Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Fedora 34 Beta est disponible

#1 22/04/2020 19:22:37

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

[Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

J'ai une clé USB sur laquelle j'ai installé plusieurs systèmes avec Multisystem ( sous Xubuntu 18.04 ).
J'ai voulu y ajouter une Fedora XFCE 31 Live. L'installation a eu l'air de bien se passer.
Par contre, au démarrage, lorsque je choisis de démarrer la Fedora, je me retrouve planté en mode
texte apparemment en cours d'exécution de l'initramfs. Le noyau de système a été trouvé et démarré,
mais après je ne sais pas ce qui se passe. Est-ce un problème de GRUB ?
Si j'essaye de démarrer un autre système ( Xubuntu par exemple ), ça marche parfaitement.

Hors ligne

#2 22/04/2020 20:48:05

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

A priori rien ne s'oppose au démarrage de cette image depuis une clé usb.

Pour essayer de savoir ce qu'il se passe au démarrage, efface les options rhgb et quiet au lancement de grub. AInsi tu ne seras pas perturbé par le boot graphique et tu verras exactement à quel moment tu plantes.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#3 22/04/2020 21:38:58

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

J'ai des messages bizarres vers la fin :

  Failed to switch root: Specified switch root path '/sysroot' does not seem to be an OS tree. os-release file is missing.
  initrd-switch-root.service: Main process exited, code=exited, status=1/FAILURE.
  initrd-switch-root.service: Failed with result 'exit-code'.
  Failed to start Switch Root.

D'après le premier message, y aurait-il un problème de récupération du fichier "squashfs" ?

Hors ligne

#4 22/04/2020 21:50:06

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Pour info, voici l'entrée correspondante dans le fichier "grub.cfg" de la clé :

menuentry "Fedora-Xfce-Live-x86_64-32_Beta-1.2.iso" {
search --set -f "/Fedora-Xfce-Live-x86_64-32_Beta-1.2.iso"
loopback loop "/Fedora-Xfce-Live-x86_64-32_Beta-1.2.iso"
linux (loop)/isolinux/vmlinuz   iso-scan/filename=/Fedora-Xfce-Live-x86_64-32_Beta-1.2.iso rd.live.image rd.live.check quiet
initrd (loop)/isolinux/initrd.img
}

Suivant ton conseil, j'avais enlevé le paramètre "quiet" pour le démarrage précédent.

Hors ligne

#5 22/04/2020 23:03:42

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Bon je pense qu'avant tout il faut vérifier le checksum de ton image. Rien ne justifie un comportement paril.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#6 23/04/2020 10:05:55

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

J'ai trouvé un fichier de checksums sur ce site : https://spins.fedoraproject.org/fr/verify
Ensuite, après avoir enlevé les infos inutiles, j'ai lancé la commande :
  sha256sum -c Fedora-Spins-31-1.9-x86_64-CHECKSUM
Elle m'a renvoyé :
  Fedora-Xfce-Live-x86_64-31-1.9.iso: Réussi

Je pense qu'on peut donc, dans un premier temps, rayer l'intégrité de l'image iso
de la liste des suspects.

D'autre part, j'ai trouvé une page intéressante :
  https://mirrors.edge.kernel.org/pub/lin … racut.html
Elle contient la doc de dracut. Je vais tenter d'y trouver une bonne inspiration.

Hors ligne

#7 23/04/2020 13:17:30

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Je reste persuadé que si tu installais en vrai  et non en live cette distrib sur ta clé, tu n'aurais pas de souci


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#8 23/04/2020 15:47:14

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Si je l'installe en Live, c'est parce que:
1  je veux avoir plusieurs distributions sur la même clé grâce à Multisystem,
2  je veux pouvoir essayer sur plusieurs machines différentes.

Hors ligne

#9 23/04/2020 16:34:18

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Tu as raison, ça pourrait coincer côté pilotes video et net.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#10 23/04/2020 17:17:24

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Après avoir parcouru ( et lu attentivement certains paragraphes de la doc de dracut ), j'ai essayé deux choses:
1. Ajouter ce paramètre de boot : root=live:LABEL=<Etiquette de partition>
2. Ajouter celui-là : root=live:UUID=<UUID de partition>

Dans les deux cas, je suis arrivé au même fiasco. Un programme semble boucler joyeusement en
affichant la ligne suivante :
  A start job is running for /dev/mapper/live-rw ( compteur / 50 min )

Le compteur affiche des secondes, puis des minutes et des secondes. Je n'avais pas vraiment envie
d'attendre 50 minutes, alors je l'ai interrompu sauvagement avec [Ctrl] [Alt] [Suppr].

Le mystère semble s'épaissir...

D'autre part, le contenu de la doc au sujet du paramètre iso-scan/filename est d'une limpide obscurité :
  Using iso-scan/filename with a Fedora/Red Hat/CentOS Live iso should just work by copying the original kernel cmdline parameters.

J'ai comme l'impression qu'on n'est pas près de trouver le pourquoi du comment...

Hors ligne

#11 23/04/2020 19:24:10

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Tu n'aurais pas une clé usb ou tu n'aurais rien d'autre pour tester si cette live, seule, démarrerait ?


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#12 23/04/2020 20:34:53

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Je l'ai déjà fait. La clé, sur laquelle j'ai écrit bestialement avec dd n'avait plus aucune partition.
L'essai a été concluant, comme avec un DVD. Ceci prouve que l'iso n'est pas corrompue.

Je suis en train de penser à une manip en plusieurs temps :
1 Extraire de l'iso le fichier initramfs, soit /isolinux/initrd.img , qui est censé être le résultat de la compression d'une archive cpio
2 Le décompresser
3 Extraire les fichiers de l'archive, voir quels sont les programmes et essayer de trouver qui fait quoi : en un mot, procéder à une rétroingénierie ciblée en espérant trouver un maximum de fichiers écrits en un langage lisible, par exemple en shell ( pour les binaires compilés, il faudrait lancer une artillerie lourde pour récupérer les sources, bonjour les dégâts... )

Hors ligne

#13 23/04/2020 22:06:08

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Je pense que c'est une occupation idéale par ce temps de confinement.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#14 29/04/2020 16:33:10

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Je ne savais pas que j'allais m'embarquer dans une telle galère !!!

La récupération de l' initramfs s'est bien passée ; j'ai seulement deux remarques :
- le fichier initrd.img ayant été compressé avec xz, il faut d'abord le renommer initrd.xz
pour que xz accepte de le décompresser, le résultat étant un fichier nommé initrd qui
contient une archive cpio,
- je n'avais pas les droits d'administrateur quand j'ai lancé le gestionnaire d'archive pour
extraire l'arborescence de l'initramfs ; le résultat est que certains fichiers spéciaux
n'ont pas pu être recréés par la commande mknod, mais ce n'est pas grave.

Après avoir parcouru le résultat, j'ai surtout focalisé mon attention sur le script
/usr/sbin/iso-scan , qui recherche dans toutes les partitions sur disque le fichier
iso dont le nom est renseigné par le paramètre iso-scan/filename . Ce script contient
une boucle :
    for dev in /dev/disk/by-uuid/*
Il tente alors de monter l'élément ${dev} sur le directory /run/initramfs/isoscan .
Si le montage s'est bien passé, il cherche alors le fichier iso dans ce directory.
Si le fichier est trouvé, il fait un losetup sur ce fichier et l'exécution du script
se termine victorieusement par : exit 0 .
Sinon, l'élément est démonté et la boucle continue.
Si on arrive à la fin, le directory est détruit et le script se termine piteusement
par : exit 1 .

J'ai écrit une variante simplifiée de ce script pour pouvoir le tester sur mon
système installé Xubuntu et sur le système Fedora Live installé sur ma deuxième
clé USB. J'ai eu deux sortes d'ennuis.

Le premier, agaçant mais bénin, arrive lorsque je tombe sur une partition de swap.
Le système n'apprécie pas que je cherche un fichier dedans, ce qui est normal.
La solution est simple. On récupère le type de système de fichiers avec la
commande : fstype=$(lsblk -n -o FSTYPE ${dev})
et on saute la swap avec : [ "x${fstype}" = "xswap" ] && continue .

Le second est beaucoup plus ennuyeux. Il est connu depuis longtemps sur tous les
systèmes Unix-like. C'est le temps de latence entre le retour d'une commande de
montage et certaines commandes, comme umount ou losetup, qui ne peuvent marcher
correctement que si tout ce qui dépend du montage s'est bien terminé. Une solution
approximative consiste à faire suivre une telle commande mount par une commande
sleep. Suite à des problèmes de démontage non effectué, je me suis retrouvé avec
plusieurs partitions montées sur le même directory, ce qui fait désordre.

J'ai essayé de jouer au plus fin en bricolant l'ersatz d'UUID de la partition de
ma clé USB pour qu'elle soit essayée la première, mais c'est l'instruction losetup
qui a coincé.

J'ai eu l'idée de corriger ce script, mais j'ai hésité devant l'ampleur de la tâche.
Il fallait recréer l' initramfs puis le fichier iso, et je ne savais pas exactement
quels paramètres utiliser.

C'est alors que le démarrage réussi avec ma deuxième clé USB m'a mis sur la piste
d'une autre solution. Sur la première clé, j'ai créé une deuxième partition ( en
fat32 mais ce n'est pas obligatoire ) dans laquelle j'ai exrait de l'iso le
directory LiveOS contenant le fichier squashfs. J'ai affecté une étiquette à cette
partition. Puis, dans le fichier grub.cfg , j'ai remplacé le paramètre
  iso-scan/filename=<Nom_Fichier_iso> par root=live:LABEL=<Etiquette>

Le démarrage s'est bien passé. Cette solution marche à merveille mais pose un
problème d'espace sur la clé USB. En effet, le fichier squqshfs est présent deux
fois : une dans l'iso, l'autre dans la partition supplémentaire. On pourrait
récupérer cet espace en créant un fichier iso amputé du directory LiveOS.

Hors ligne

#15 01/05/2020 18:11:07

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

J'ai trouvé une nouvelle solution à mon problème. Elle est économique en place, car on n'a plus besoin d'avoir le fichier squashfs présent deux fois. Par contre, elle nécessite
de "soulever le capot" pour faire une petite manipulation.
L'entrée correspondante du fichier grub.cfg est la suivante :

menuentry "Fedora-Xfce-Live-x86_64-31-1.9.iso" {
  set isodir=/run/initramfs/isoscan
  set isofile=Fedora-Xfce-Live-x86_64-31-1.9.iso
  loopback loop "/$isofile"
  linux (loop)/isolinux/vmlinuz ro iso-scan/filename=$isofile root=live:$isodir/$isofile rd.live.image rd.shell rd.break=initqueue rd.vconsole.keymap=fr
  initrd (loop)/isolinux/initrd.img
}

Les trois derniers paramètres de la ligne linux servent à s'arrêter au bon moment en se trouvant dans un shell avec un clavier AZERTY, ce qui est plutôt agréable.
Entrer alors les commandes suivantes :

cd /usr/lib/dracut/hooks/initqueue/settled
mv iso-scan.sh aso-scan.sh
exit

Le problème vient du fait que les deux derniers scripts du directory sont exécutés dans l'ordre alphabétique. Or, pour que ça puisse marcher, il est indispensable
qu'ils soient exécutés dans l'ordre inverse. La solution simple, bête et méchante que j'ai trouvée consiste à en renommer un pour qu'il soit correctement
exécuté avant l'autre. L'instruction exit sort du shell et redonne le contrôle au reste du processus de démarrage.

Cette solution n'est pas parfaite, mais elle a le mérite d'être beaucoup plus économique que la précédente. Je ne désespère pas encore de trouver mieux.

Je l'aurai, un jour, je l'aurai !!!

Hors ligne

#16 02/05/2020 09:50:20

madko
Contributeur Fedora et Linuxé depuis 1994
Modérateur
Lieu : Noisy the Great (9³)
Inscription : 22/12/2006
Messages : 8 472
Site Web

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Je ne sais pas ce que tu fais, mais dans ce bricolage je pense que tu es le seul à te comprendre. Bonne chance


Linux, ya moins bien, mais c'est plus chèr!!!
Fedora 32 WorkStation sur HP 850 G5
Fedora 32 SilverBlue sur Lenovo Thinkpad Yoga 12

Hors ligne

#17 02/05/2020 11:43:28

thierryR
Membre
Lieu : Chalons en Champagne
Inscription : 31/01/2011
Messages : 1 768

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Peut être que le problème a été vu avec la 32. Pourquoi tu n'essayes pas ? https://forums.fedora-fr.org/viewtopic.php?id=70840


201119024340877569.gifChalons en Champagne: Au nord, un peu avant la banquise (Ah ben non... Elle a fondu)
Kernel: 5.10.7-200.fc33.x86_64 x86_64 bits: 64 Desktop: KDE Plasma 5.20.5
Type: Desktop Mobo: ASRock model: X470 Gaming-ITX/ac  UEFI: CPU: Topology: 8-Core model: AMD Ryzen 7 2700X bits: 64 type: MT MCP L2 cache: 4096 KiB

Hors ligne

#18 02/05/2020 12:52:31

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

thierryR a écrit :

Peut être que le problème a été vu avec la 32. Pourquoi tu n'essayes pas ? https://forums.fedora-fr.org/viewtopic.php?id=70840

Sérieusement tu as vu le boulot qu'il a fait et les connaissances qu'il faut pour ça ? Tu penses vraiment que ton commentaire aide ?


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#19 02/05/2020 18:34:33

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Je pense que, pour arriver à me comprendre, il est recommandé, voire indispensable:
1. de récupérer l' initramfs , par exemple de la manière que j'ai expliquée précédemment,
2. d'aller y faire un tour, ou même de s'y plonger carrément.

Je pense que le problème initial dont je suis parti n'est pas trivial ... Désolé ...

Hors ligne

#20 02/05/2020 18:58:14

thierryR
Membre
Lieu : Chalons en Champagne
Inscription : 31/01/2011
Messages : 1 768

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

nouvo09 a écrit :

Sérieusement tu as vu le boulot qu'il a fait et les connaissances qu'il faut pour ça ? Tu penses vraiment que ton commentaire aide ?

Oui c'est vrai. Il aime se la jouer. Normal il vient des .deb


201119024340877569.gifChalons en Champagne: Au nord, un peu avant la banquise (Ah ben non... Elle a fondu)
Kernel: 5.10.7-200.fc33.x86_64 x86_64 bits: 64 Desktop: KDE Plasma 5.20.5
Type: Desktop Mobo: ASRock model: X470 Gaming-ITX/ac  UEFI: CPU: Topology: 8-Core model: AMD Ryzen 7 2700X bits: 64 type: MT MCP L2 cache: 4096 KiB

Hors ligne

#21 03/05/2020 18:25:33

madko
Contributeur Fedora et Linuxé depuis 1994
Modérateur
Lieu : Noisy the Great (9³)
Inscription : 22/12/2006
Messages : 8 472
Site Web

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

le message

sysroot' does not seem to be an OS tree.

je l'ai déjà eu, c'est quand systemd ne trouve pas le fichier /etc/os-release https://www.freedesktop.org/software/sy … lease.html

Donc soit le chemin vers root n'est pas bon, soit l'installation est bizarre et il manque ce fichier. Est-ce qu'il n'y aurait pas un décalage à un moment et que le boot Fedora tenterait un switchroot sur une partition d'un autre linux ? Un linux sans systemd, ou une partition qui ne serait pas root (donc ne contenant pas /etc)


Linux, ya moins bien, mais c'est plus chèr!!!
Fedora 32 WorkStation sur HP 850 G5
Fedora 32 SilverBlue sur Lenovo Thinkpad Yoga 12

Hors ligne

#22 03/05/2020 18:50:16

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 23 053

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

Tout ça probablement parce qu'un live suppose qu'il est seul sur son media et que si on l'installe en multiboot sur une clé il ne comprend pas que ces fichiers de boot ne sont pas à la racine du media en question.


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

Hors ligne

#23 05/05/2020 14:59:09

tarski
Membre
Lieu : Nantes
Inscription : 22/04/2020
Messages : 15

Re : [Résolu] Fedora XFCE 31 Live ne démarre pas depuis une clé USB.

EUREKA !!!

J'ai trouvé une manière ( bizarre ?... ) de démarrer sans perte de place ni intervention humaine pendant l'exécution de l' initramfs.
Dans le script /usr/sbin/iso-scan , lorsque le fichier iso a été trouvé sur la partition testée dans la boucle, l'instruction suivante est exécutée avant de sortir du script :

losetup -f "/run/initramfs/isoscan/$isofile"

Un "man losetup" nous apprend que le périphérique de boucle pointant vers le fichier cité est alors le premier périphérique boucle non utilisé.
J'ai alors émis une conjecture : s'il s'agit de la première instruction losetup exécutée depuis le démarrage du système, alors le périphérique de boucle affecté
a de fortes chances d'être /dev/loop0 . Si elle est fausse, on pourra toujours essayer de se rabattre sur /dev/loop1 , puis sur /dev/loop2 , etc...

Pour le récupérer, la recette est alors simple. Il suffit, dans la ligne "linux" de grub.cfg  , d'insérer : root=live:/dev/loop0 . Ceci donne, par exemple :

  linux (loop)/isolinux/vmlinuz ro iso-scan/filename=$isofile root=live:/dev/loop0 rd.live.image

On peut ajouter d'autres paramètres, comme quiet ou rd.live.ram=1 .
C'est tombé en marche dès le premier essai, et les essais suivants ( histoire de vérifier que je n'avais pas eu seulement un coup de chance ) ont tous
été concluants.

Je me suis rendu compte que, pendant que j'essayais de démarrer la version 31, la version 32 était sortie. Je l'ai téléchargée et l'ai ajoutée à ma clé USB
en lui appliquant la même recette. L'essai a également été concluant.

Hors ligne

Pied de page des forums