update-grub
失败并显示错误消息
# update-grub
bash: update-grub: command not found
Run Code Online (Sandbox Code Playgroud)
@GAD3R 输出
# [ -d /sys/firmware/efi ] && echo EFI || echo legacy
legacy
Run Code Online (Sandbox Code Playgroud)
注意 1我已经使用 amd64 CD iso 安装程序使用默认安装安装了 Debian 10 Buster Alpha 3 版本 (Xfce)(除了我删除print server
并添加了ssh server
)。
Note2我使用了 root 帐户 ( su root
)。
lin*_*4kb 13
su - root
而不是su root
- 最好的解决方案(感谢 Rui)发生这种情况是因为 PATH 以一种非常奇怪的方式工作(实际上按设计工作)。
regular user login
-> 环境路径不包含 /usr/sbin =>意见:按设计工作,非常合乎逻辑su root
-> 管理员权限,但环境缺少 /usr/sbin:/sbin =>意见:按设计工作,但不合逻辑,因为具有 root 访问级别的帐户应该能够从 sbin 执行命令,而无需添加路径手动二进制文件su - root
-> 管理员权限,路径上的 /usr/sbin =>意见:按设计工作,非常合乎逻辑更多背景
在 /etc/login.defs 中定义了两个 PATH,但除非我开始su -
或su - root
,否则我将获得 ENV_PATH。我知道,这已经被设计成这样,让实际用户的环境,但在这种情况下,单一的,它真的博格尔斯我的脑海里,为什么不自动添加/usr/sbin
,并/sbin
为“普通用户”的thew路径之后成功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
Run Code Online (Sandbox Code Playgroud)
我发现有一个update-grub
命令/usr/sbin
。
# find / -name update-grub
/usr/sbin/update-grub
Run Code Online (Sandbox Code Playgroud)
运行它,只是为了得到下一个错误信息。
# /usr/sbin/update-grub
/usr/sbin/update-grub: 4: exec: grub-mkconfig: not found
Run Code Online (Sandbox Code Playgroud)
grub-mkconfig
在 下搜索并找到它/usr/sbin/grub-mkconfig
。然后就来找我了,让我们看看update-grub
脚本是什么样子的?
#cat /usr/sbin/update-grub |grep grub-mkconfig
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
Run Code Online (Sandbox Code Playgroud)
修改 /usr/sbin/update-grub 以便grub-mkconfig
通过它的显式路径调用...
exec /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg "$@"
Run Code Online (Sandbox Code Playgroud)
...然后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
Run Code Online (Sandbox Code Playgroud)
结论
这一定是关于 PATH 的
归档时间: |
|
查看次数: |
47840 次 |
最近记录: |