btrfsファイルシステムにインストールした後のメッセージ「スパースファイルは許可されていません」


25

スワップパーティションを作成せず/に、btrfsでUbuntuをインストールしました。起動するたびに「スパースファイルは許可されていません」というメッセージが表示されます。このメッセージは、スプラッシュスクリーンの前に表示されます。この警告を殺す方法はありますか?


私のシステムでは、キーを押しても何も起こりません。
マイケル

1
2016年の解決策は、設定GRUB_SAVEDEFAULT=falseして/etc/default/grub実行することですupdate-grub
スチュアートカーダル

回答:


33

OKを少し調べた後、少なくとも一時的にこの問題を取り除く方法を見つけましたが、それはかなり単純ですが、btrfsでシステムをセットアップしていないため、この修正を確認できません。

この行をコメントアウトするか削除してください:

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

または

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

このファイル内

/etc/grub.d/00_header

その後、実行します

update-grub

/boot/grub/grub.cfg直接編集しない理由は、grubが更新されるたびに上書きされるためです。この場合、grub共通パッケージが更新された場合にのみ修正を「再実行」する必要があります。

バグを自分で追加したい場合、これはランチパッドのバグです。#7367​​43

バグレポートからColin Watsonを引用

これは実際には誤解を招くエラーメッセージです。起こっているのは、GRUBのbtrfs実装が、呼び出しリストにブロックリストを返すためのファイル読み取りフックインターフェイスを実装していないことです。私はこれについてgrub-develに投稿し、アップストリームのメンテナーは、マルチデバイスの問題は別として、GRUBからbtrfsへの書き込みは根本的にリスクがあると指摘しました。

同じブロックが複数のスナップショットで使用される場合があります。指定されたブロックを使用するすべてのツリーにチェックサムが含まれます。

ただし、btrfsは起動時にブートローダー用のスペースを予約します。このスペースは、GRUBがそれ自体を埋め込むために必要なスペースよりも大きいため、環境ブロックに1 KBを使用できます。

いずれにせよ、これはサブボリュームの使用から生じた新しい問題ではなく、起動を妨げるものでもありません(「続行するには任意のキーを押してください」という誤ったプロンプトが表示されますが、無視すると単に起動します)。ウィッシュリストへのダウングレード。

お役に立てれば


1
そもそもこのエラーを吐き出す理由についての説明を見つけることができますか?ありがとう。:)
jrg

私の設定ファイルでは、行は次のようになりますif [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
。– FUZxxl

1
コメントアウトします。起動に失敗した場合でも、ライブディスクを使用して行のコメントを解除できるはずです
アラン

はい。これを試してみます。
-FUZxxl

2
うまくいきました!
-FUZxxl

1

Raring Ringtailのすべての開発ブランチを運営しています。
スパースファイルが許可されていないというメッセージについても同じ問題が発生しました。GRUBがまったく表示されず、Ubuntuを直接起動します。

私はLinux Magazine(LXF)を読んでいました。そこには、パーティション、ファイル、ブートローダーなどの回復と修復に関する記事がいくつかありました。

記事執筆者の一人は、使用するシンプルなツールについて述べました... Boot-Repair
このツールは私のためにトリックをしてくれたので、私の意見では、Ubuntuのリポジトリで目立つ場所を取得するはずです。

システムにブート修復を追加します。

  1. ターミナルウィンドウを開き、次をコピー/貼り付け/入力します。

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  2. 次をコピー/貼り付け/入力して、Boot-Repairをインストールおよび開始します。

    sudo apt-get install -y boot-repair && boot-repair
    
  3. ブート修復のメインGUIが表示されます。

    Click on a button called 'Recommended repair'.
    

    ツールに「魔法」を任せましょう。

  4. 魔法の呪文が終わると、

    create a little note of the url visible. 
    
  5. システムを再起動し、回復したオペレーティングシステムにアクセスできるかどうかを確認します。

  6. 成功しなかった場合は、修復の最後に表示されたURLを使用して助けを求めてください。


これはgrub自体のバグであるため、これは役に立たないと思います。
FUZxxl

なぜそう思うの?13.04の仮想インストールをいくつか行いましたが、すべて同じ問題がありました。grub.cfgを編集しましたが、結果はありません。それは私にとって「許可されていないスパースファイル」メッセージをまったく解決しませんでした。GRUBも表示されませんでした。今日の投稿で提供した解決策を試した後、それは魅力的であり、今でも機能しています。
Cシルダー

悲しいことに14.04 Trusty amd64
loser114491で
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.