update-grub
がエラーメッセージで失敗しました
# update-grub
bash: update-grub: command not found
@ GAD3Rの出力
# [ -d /sys/firmware/efi ] && echo EFI || echo legacy
legacy
注1デフォルトのインストールを使用してAMD64 CD isoインストーラーを使用してDebian 10 Buster Alpha 3リリース(Xfce)をインストールしました(print server
を削除してssh server
を追加した場合を除く) )。
Note2 rootアカウント(su root
)を使用しました。
su - root
の代わりにsu root
-最高のソリューション(Ruiに感謝)これは、PATHが非常に奇妙な方法で機能するために発生しました(実際には設計どおりに機能します)。
regular user login
->環境PATHに/ usr/sbinが含まれていない=>意見:設計どおりに機能し、非常に論理的su root
->管理者権限がありますが、環境に/ usr/sbin:/ sbin =>opinion:がありませんが、設計どおりに動作しますルートレベルのアクセス権を持つアカウントは、手動でバイナリへのパスを追加せずにsbinからコマンドを実行できるはずですsu - root
->管理者権限、パス上の/ usr/sbin =>意見:設計どおりに機能し、非常に論理的背景が少しあります
/etc/login.defsには2つのPATHが定義されていますが、su -
またはsu - root
を開始しない限り、ENV_PATHを取得します。これは、実際のユーザーの環境を維持するためにこのように設計されていることを知っていますが、この1つのケースでは、私の心を揺さぶるので、/usr/sbin
と/sbin
を成功後の「通常のユーザー」su root
# cat /etc/login.defs |grep PATH=
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
update-grub
に/usr/sbin
コマンドがあることがわかりました。
# find / -name update-grub
/usr/sbin/update-grub
次のエラーメッセージを取得するためだけに実行しました。
# /usr/sbin/update-grub
/usr/sbin/update-grub: 4: exec: grub-mkconfig: not found
grub-mkconfig
を検索し、/usr/sbin/grub-mkconfig
で見つけました。それから私に来ました、update-grub
スクリプトがどのように見えるか見てみましょうか?
#cat /usr/sbin/update-grub |grep grub-mkconfig
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
明示的なパスでgrub-mkconfig
を呼び出すために/ usr/sbin/update-grubを変更しました...
exec /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg "$@"
...次にupdate-grub
と呼ばれ、明示的なパスとtadaで機能しました。
# /usr/sbin/update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-4.18.0-2-AMD64
Found initrd image: /boot/initrd.img-4.18.0-2-AMD64
Found linux image: /boot/vmlinuz-4.16.0-2-AMD64
Found initrd image: /boot/initrd.img-4.16.0-2-AMD64
done
結論
これはPATHに関するものでなければなりません
こちらです:
#Sudo update-grub
「Sudo」という単語はコマンドの一部です。
はい、簡単です。
まず、ローカルパッケージリストを更新します。
Sudo apt update && Sudo apt upgrade
正しい起動モードを見つけます。
[ -d /sys/firmware/efi ] && echo EFI || echo legacy
次に、leagcy grub-legacy
パッケージ用のgrubパッケージの強制再インストールがあり、efi grub-efi
用です(ブートモードがEFIであると想定しています)。
Sudo apt install --reinstall grub-efi
Sudo apt install grub-common
それでも問題が解決しない場合は、これを試してください:
Sudo grub-mkconfig -o /boot/grub/grub.cfg
update-grub
コマンドは、grub-mkconfig
ツールを実行してgrub.cfgファイルを生成するスクリプトです。 Archlinuxをご覧くださいGRUB ドキュメント
Ref:
私はjoão-pauloの答えを使用しましたが、intoSudo
グループを取得するために少し助けが必要でした。
端末を開きます。
groups
を実行して、Sudo
グループに属しているかどうかを確認します。
$ groups
... Sudo ...
a。 しないでくださいリストのSudo
を参照し、ルートアカウントを使用して自分を追加します。
su -
# Enter your root password
adduser <your_username> Sudo
exit
ターミナルを閉じてログアウトし、再度ログインします。groups
を再実行して、Sudo
にいることを確認します。
Sudo update-grub
を実行します。 Sudo
を使用して$PATH
で利用できるはずです。