grub-probe:错误:无法获取 10.0.0.1:/export/host1 的规范路径

grub-probe:错误:无法获取 10.0.0.1:/export/host1 的规范路径

我通过 pxe 和 nfs 启动无盘 debian linux (ubuntu 20.04)。一切正常,我可以启动我的主机。当我运行 apt upgrde 时收到错误消息

/usr/sbin/grub-probe: error: failed to get canonical path of `10.0.0.1:/export/host1'

当我运行 mount 时我看到

10.0.0.1:/export/host1 on / type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,proto=tcp,port=2049,timeo=600,retrans=10,sec=sys,local_lock=all,addr=10.0.0.1)

df我看到:

10.0.0.1:/export/host1  500G   39G  462G   8% /

/etc/fstab我有:

#/swap.img      none    swap    sw      0       0
/dev/nfs       /               nfs    defaults          1       1

我在日志中没有看到任何内容。

答案1

您是否在无盘系统上安装了 GRUB 引导加载程序?您的引导加载程序位于 PXE 服务器上 - 您只需删除本地 GRUB 软件包即可。

该错误消息是在每次内核更新后引起的,因为/etc/kernel/post(inst|rm).d/zz-update-grub运行update-grub只是一个包装器grub-mkconfig,它会在运行时grub-probe导致错误消息。它grub-probe有一个内置的假设,即每当它运行时,都会使用本地引导加载程序,并且它会被 NFS 安装的根文件系统混淆。

如果出于某种原因您更喜欢保留 GRUB 软件包(例如,为了轻松访问 GRUB 文档和手册页),您可能会删除/etc/kernel/postinst.d/zz-update-grub/etc/kernel/postrm.d/zz-update-grub,或者最好将它们更改为仅运行exit 0,因为不会有本地引导加载程序可以在无盘系统。

(删除它们只会导致它们在下一个 GRUB 软件包更新时重新安装;用自定义无操作脚本替换它们将使软件包管理保留您的自定义设置,除非 Debian 的 GRUB 集成发生重大变化,因为它们被声明为配置文件通过grub2-common包裹。即使发生重大更改,您也会收到包管理的提示,询问您是否应该替换自定义文件。)

您还可以考虑创建自己的脚本,/etc/kernel/postinst.d//etc/kernel/postrm.d/最新的内核及其 initramfs 文件复制到 PXE 启动服务器中的适当位置(如果您尚未这样做)。否则,您将必须在每次内核更新时手动进行复制...这通常意味着您将陷入未打补丁的内核,直到您抽出时间来执行此操作。

相关内容