Debian 11 VMでGRUB設定を更新しようとしています。コマンドを使用していましたが、update-grub
もう機能しないようです。私もgrub-mkconfig > /boot/grub/grub.cfg
コマンドを試しましたが、それも失敗しました。
どちらのコマンドも、次のエラーで失敗します。
/usr/sbin/grub-mkconfig: 38: /etc/default/grub.d/grub.cfg: function: not found
ファイルgrub.cfg
はにあります/boot/grub/grub.cfg
。
38行目を見ると、grub-mkconfig
次の行が表示されます。
grub_mkconfig_dir="${sysconfdir}"/grub.d
sysconf ディレクトリは/etc/
。
私はそれがうまくいくべきだと提案するマニュアルページを見ましたgrub-mkconfig
。
何が問題なの?
答え1
init-select.cfg
私のディレクトリにはいくつかの説明を含むダミーファイルしかありません/etc/default/grub.d/
(Debian 11)。
grub.cfg
このディレクトリには存在してはいけません。誤って走りましたかgrub-mkconfig -o /etc/default/grub.d/grub.cfg
?
ファイルを削除すると再びsudo update-grub
機能します。
答え2
この問題を解決する簡単な方法は、grubを再インストールすることです。
Debian isoファイルをVMに接続して起動します。一度破損したシステムでchrootを完了し、grubを再インストールしてください。
ルートディレクトリを変更してgrubを再インストールする方法は次のとおりです。 (sdaXY
ルートパーティションと交換してください。)
mkdir -p /tmp/mychroot
mount -t ext4 /dev/sdaXY /tmp/mychroot
mount --bind /proc /tmp/mychroot/proc
mount --bind /dev /tmp/mychroot/dev
mount --bind /sys /tmp/mychroot/sys
update-grub
grub-install /dev/sdX
exit
マウントされたパーティションをアンマウントして再起動します。
答え3
ファイルが/boot/grub/grub.cfg
破損しています。このファイルの38行目には、次のテキストが必要です。
38 function savedefault {
40 if [ -z "${boot_once}" ]; then
41 saved_entry="${chosen}"
42 save_env saved_entry
43 fi
44 }
Ubuntu Exchangeの答えです。、私は間違って理解しました。
/usr/sbin/grub-mkconfig: 38: /etc/default/grub.d/grub.cfg: function: not found
君に言うじゃないgrub-mkconfig
それが見つかりませんでしたㅏファイルの38行目の関数/etc/default/grub.d/grub.cfg
仮想Debian 11x64マシンを起動して/etc/default/grub.d/grub.cfg
。このコピー。