Message «Fichier épars non autorisé» après l'installation sur un système de fichiers btrfs

25

J'ai installé Ubuntu sans créer de partition de swap et avec /un btrfs. # Maintenant, je reçois le message "Un fichier épars n'est pas autorisé" à chaque démarrage. Ce message apparaît devant l'écran de démarrage. Existe-t-il un moyen de supprimer cet avertissement?

FUZxxl
la source
Sur mon système, appuyer sur n'importe quelle touche ne fait rien, c'est coincé!
Michael
1
la solution en 2016 est de mettre GRUB_SAVEDEFAULT=falseen place /etc/default/grubet exécuterupdate-grub
Stuart Cardall

Réponses:

33

OK après un peu de fouille, j'ai trouvé un moyen de se débarrasser de ce problème au moins temporairement, c'est assez simple, mais je n'ai pas la configuration de mon système avec btrfs, donc je ne peux pas confirmer ce correctif.

commentez ou supprimez cette ligne:

if [ -n ${have_grubenv} ]; then save_env recordfail; fi

ou

if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env \
recordfail; fi; fi

dans ce fichier

/etc/grub.d/00_header

puis exécutez

update-grub

la raison de ne pas modifier /boot/grub/grub.cfgdirectement est qu'il sera écrasé à chaque mise à jour de grub dans ce cas, vous n'auriez à "refaire" le correctif que si les paquets communs de grub sont mis à jour.

C'est le bug sur le tableau de bord si vous voulez vous ajouter bug # 736743

Citant Colin Watson du rapport de bogue

Il s'agit en fait d'un message d'erreur trompeur: ce qui se passe, c'est que l'implémentation btrfs de GRUB n'implémente pas l'interface de hook de lecture de fichier pour retourner les listes de blocage au code appelant. J'ai posté sur grub-devel à ce sujet et le responsable en amont a souligné que, même en dehors des problèmes multi-périphériques, écrire sur btrfs depuis GRUB est fondamentalement risqué car:

le même bloc peut être utilisé par plusieurs instantanés chaque arbre qui utilise un bloc donné contiendra sa somme de contrôle, et ainsi de suite récursivement

Cependant, btrfs réserve de l'espace au démarrage pour le chargeur de démarrage. Cet espace est plus que GRUB a besoin de s'incorporer, et nous pourrions donc en utiliser 1 Ko pour un bloc d'environnement.

Dans tous les cas, ce n'est pas un nouveau problème qui est survenu en utilisant des sous-volumes, et cela n'empêche pas le démarrage (vous obtenez une fausse invite "Appuyez sur n'importe quelle touche pour continuer", mais si vous l'ignorez, il démarrera quand même). Revenir à la liste de souhaits.

J'espère que cela t'aides

Allan
la source
1
Pouvez-vous trouver une explication pour expliquer pourquoi il crache cette erreur pour commencer? Merci. :)
jrg
Dans mon fichier de configuration, la ligne ressemble à ceci:if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
FUZxxl
1
Je voudrais commenter. S'il ne démarre pas, vous devriez toujours pouvoir décommenter la ligne en utilisant un disque en direct
Allan
d'accord. Je vais essayer ça.
FUZxxl
2
Sympa, ça marche!
FUZxxl
1

Je dirige une branche de développement de Raring Ringtail.
J'ai rencontré le même problème concernant un message de fichier clairsemé non autorisé. GRUB ne s'affiche pas du tout et démarre directement dans Ubuntu.

Je lisais un Linux Magazine (LXF), qui contenait quelques articles sur la récupération et la réparation de partitions, fichiers, chargeurs de démarrage et autres.

L'un des auteurs de l'article a mentionné un outil simple à utiliser ... Boot-Repair .
Cet outil a fait l'affaire pour moi et devrait à mon avis obtenir une place de choix dans les référentiels d'Ubuntu.

Ajoutez Boot-Repair à votre système:

  1. Ouvrez une fenêtre de terminal et copiez / collez / saisissez ce qui suit:

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  2. Copiez / collez / saisissez ce qui suit pour installer et démarrer la réparation de démarrage:

    sudo apt-get install -y boot-repair && boot-repair
    
  3. L'interface graphique principale de Boot-Repair est maintenant visible.

    Click on a button called 'Recommended repair'.
    

    Laisser l'outil faire c'est «magique».

  4. Lorsque le sort magique se termine,

    create a little note of the url visible. 
    
  5. Redémarrez le système et vérifiez si vous pouvez accéder à vos systèmes d'exploitation récupérés.

  6. En cas d'échec, utilisez l'URL affichée à la fin de la réparation pour demander de l'aide.

C Schilder
la source
Je ne pense pas que cela aide car c'est un bug dans grub lui-même.
FUZxxl
Pourquoi pensez-vous cela? J'ai fait plusieurs installations virtuelles du 13.04, toutes ont eu le même problème. Modifié le grub.cfg, aucun résultat. Cela n'a pas du tout résolu le message "fichier clairsemé non autorisé". GRUB n'était même pas visible non plus. Après avoir essayé la solution que j'ai fournie dans mon article plus tôt dans la journée, cela a fonctionné comme un charme et l'est toujours.
C Schilder
Malheureusement ne fonctionne pas le 14.04 Trusty amd64
loser114491