Meldung "Sparse file not allowed" nach Installation auf einem btrfs-Dateisystem

25

Ich habe Ubuntu installiert, ohne eine Swap-Partition zu erstellen und mit /einem BTRFS. # Jetzt erhalte ich bei jedem Start die Meldung "Sparse file is not allowed". Diese Meldung erscheint vor dem Begrüßungsbildschirm. Gibt es eine Möglichkeit, diese Warnung zu töten?

FUZxxl
quelle
Wenn ich auf meinem System eine Taste drücke, passiert nichts, es bleibt hängen!
Michael
1
Die Lösung für das Jahr 2016 ist "Set GRUB_SAVEDEFAULT=falsein /etc/default/grub& Run"update-grub
Stuart Cardall,

Antworten:

33

OK, nach einigem Stöbern habe ich eine Anleitung gefunden, um dieses Problem zumindest vorübergehend zu beseitigen. Es ist ziemlich einfach, aber ich habe mein System nicht mit btrfs eingerichtet, sodass ich dieses Update nicht bestätigen kann.

Entweder auskommentieren oder diese Zeile entfernen:

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

oder

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

in dieser Datei

/etc/grub.d/00_header

dann renne

update-grub

Der Grund dafür, dass die Bearbeitung nicht /boot/grub/grub.cfgdirekt erfolgt, ist, dass sie bei jeder Aktualisierung von grub überschrieben wird. In diesem Fall müssten Sie den Fix nur dann erneut ausführen, wenn die allgemeinen Pakete von grub aktualisiert werden.

Dies ist der Fehler im Launchpad, wenn Sie den Fehler # 736743 selbst hinzufügen möchten

Zitiert Colin Watson aus dem Fehlerbericht

Dies ist eine irreführende Fehlermeldung: Was passiert, ist, dass die btrfs-Implementierung von GRUB die Schnittstelle zum Lesen von Dateien nicht implementiert, um Blocklisten an den aufrufenden Code zurückzugeben. Ich habe in grub-devel darüber geschrieben und der Upstream-Betreuer hat darauf hingewiesen, dass das Schreiben in btrfs von GRUB, abgesehen von Problemen mit mehreren Geräten, grundsätzlich riskant ist, weil:

Der gleiche Block kann von mehreren Snapshots verwendet werden. Jeder Baum, der einen bestimmten Block verwendet, enthält seine Prüfsumme usw. rekursiv

Btrfs reserviert jedoch zu Beginn Speicherplatz für den Bootloader. Dieser Speicherplatz ist mehr als GRUB benötigt, um sich einzubetten, und wir könnten 1 KB davon für einen Umgebungsblock verwenden.

In jedem Fall ist dies kein neues Problem, das durch die Verwendung von Subvolumes verursacht wurde, und verhindert auch nicht das Booten (Sie erhalten die falsche Aufforderung "Drücken Sie eine beliebige Taste, um fortzufahren", aber wenn Sie es einfach ignorieren, wird es trotzdem gebootet). Downgrade auf Wunschliste.

Hoffe das hilft

Allan
quelle
1
Können Sie eine Erklärung dafür finden, warum dieser Fehler zunächst ausgeblasen wird? Vielen Dank. :)
jrg
In meiner Konfigurationsdatei sieht die Zeile so aus:if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
FUZxxl
1
Ich würde auskommentieren. Wenn es nicht booten kann, sollten Sie in der Lage sein, die Zeile mit einer Live-Diskette
Allan
in Ordnung. Ich werde das ausprobieren.
FUZxxl
2
Schön, es funktioniert!
FUZxxl
1

Ich leite einen Entwicklungszweig von Raring Ringtail.
Ich habe das gleiche Problem mit einer Meldung festgestellt, dass eine Datei mit geringer Dichte nicht zulässig ist. GRUB wird überhaupt nicht angezeigt und startet direkt in Ubuntu.

Ich habe gerade ein Linux-Magazin (LXF) gelesen, das einige Artikel über das Wiederherstellen und Reparieren von Partitionen, Dateien, Bootloadern und anderem enthält.

Einer der Artikelautoren erwähnte ein einfaches Werkzeug, das verwendet werden kann ... Boot-Repair .
Dieses Tool hat den Trick für mich getan und sollte meiner Meinung nach einen prominenten Platz in den Repositories von Ubuntu bekommen.

Fügen Sie Ihrem System Boot-Repair hinzu:

  1. Öffne ein Terminalfenster und kopiere / füge / tippe Folgendes ein:

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  2. Kopieren / Einfügen / Geben Sie Folgendes ein, um Boot-Repair zu installieren und zu starten:

    sudo apt-get install -y boot-repair && boot-repair
    
  3. Die Haupt-GUI von Boot-Repair ist jetzt sichtbar.

    Click on a button called 'Recommended repair'.
    

    Lassen Sie das Werkzeug zaubern.

  4. Wenn der Zauber endet,

    create a little note of the url visible. 
    
  5. Starten Sie das System neu und prüfen Sie, ob Sie auf Ihre wiederhergestellten Betriebssysteme zugreifen können.

  6. Wenn es keinen Erfolg gibt, verwenden Sie die am Ende der Reparatur angezeigte URL, um Hilfe zu suchen.

C Schilder
quelle
Ich glaube nicht, dass das hilft, da dies ein Bug in Grub selbst ist.
FUZxxl
Warum denkst du, dass? Ich habe mehrere virtuelle Installationen von 13.04 durchgeführt, alle hatten das gleiche Problem. Bearbeitet die grub.cfg, keine Ergebnisse. Das hat die Meldung "Sparse File not allowed" für mich überhaupt nicht gelöst. GRUB war auch nicht sichtbar. Nachdem ich die Lösung ausprobiert hatte, die ich heute in meinem Beitrag bereitgestellt habe, hat es wie ein Zauber funktioniert und ist es immer noch.
C Schilder
Leider nicht funktioniert in 14.04 Trusty amd64
loser114491