
そのため、Grub Customizer を使用する際に間違いを犯し、その後、の指示に従って以前の構成を復元しようとしたときに別の間違いを犯し/etc/grub.d/backup/RESTORE_INSTRUCTIONS
、その結果、grub 構成ファイルが破損しました。
今、走ろうとするsudo update-grup
と
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.
結果はgrub.cfg.new
空です (生成されたことに関する最初のコメントのみが含まれます)。
私はgrubを再インストールしようとしましたこの答えによる
sudo apt-get purge grub-pc grub-common
しかし、もう動作しません。最初にapt
満たされていない依存関係について文句を言い、grub2-common grub-pc-bin
削除するリストに追加したときに、代わりにこれらをインストールする必要があると言われました。
... grub-common:i386 grub-efi-amd64 grub2-common:i386 ...
少し迷った後、私はそれを受け入れ、後でそれらを元に戻すつもりでそれらのパッケージをインストールしましたが、インストール中に再びこれに遭遇しました。
Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
...
dpkg: error processing package grub-pc (--configure):
installed grub-pc package post-installation script subprocess returned error exit status 1
どうやらこれはupdate-group
現在インストール後のスクリプトの一部になっており、これが失敗するとパッケージのインストールは失敗します。そのため、依存関係が両方の方法で壊れており、どちらの grub バージョンも適切にインストールされておらず、修正できない状態になっています。
grub (/etc/default/grub
および/etc/grub.d/*
) の設定ファイルは、パージ中に削除および上書きされることはありませんでした。また、手動で削除すると、再度インストールされることはありません。
今、OS のインストールを保存するために何かできることはありますか?
答え1
apt purge
このような状況では、ほとんどの場合、間違った解決策になります。この方法では、重要なものも削除される可能性があり、削除しすぎると、再インストールしなければ解決できない状況に陥ることになります。パッケージの削除が役立つのは、再インストールしようとしている他のパッケージがパッケージによって置き換えられた場合のみです。
dpkg -V
代わりに、破損したファイルと権限を見つけるために を使用し、破損したパッケージを再インストールするために を使用することをお勧めしますapt install --reinstall
。これにより、コアの破損したファイルは置き換えられますが、構成ファイルは破損したままになる可能性があります。しかし、これは始まりです。
破損した設定ファイルを見つけた場合は、それらを修正するか名前を変更し、dpkg --reconfigure
関連するパッケージを使用して設定ファイルを再構築してみてください。 dpkg --configure
設定が完全に壊れているか削除されている場合に役立つ可能性があります。
もう一つの可能性としては、余分な設定を破損させた config ディレクトリ内のファイル。繰り返しますが、apt purge ではこれらのファイルは削除されず、何も修正されません。これらの余分なファイルを見つけるには消去法を使用する必要がありますが、不可能ではありません。
答え2
問題は権限であり、ファイルが欠落/破損していたり構文が間違っていたりするのではなく、権限が間違っていました。 の Grub Customizer によって作成されたバックアップ ファイルには/etc/grub.d/backup/etc_grub_d
実行フラグがありません。そのため、空の grub.cfg が生成されました。 のエラー メッセージが誤解を招くため、それを見ることができませんでしたupdate-grub
。
だから、単にフォローしてコピーするだけでは十分ではRESTORE_INSTRUCTIONS
あり/etc/grub.d/backup/
ませ/etc/grub.d/backup/etc_grub_d
ん/etc/grub.d
。
sudo chmod +x 0* 1* 2* 3* 4*
しかし、これはパッケージ管理者に問題として報告されるべきだとも思います。パッケージを正常にインストールするには、壊れやすいユーザー設定に依存するスクリプトを実行する必要があるというのは、問題です。また、そのパッケージを一時的にアンインストールして再インストールしようとすると、i386 サブシステムがインストールされてしまうというのも、問題です。
愚痴はこれで終わりです。助けてくれた皆さんに感謝します。