为什么“make install”只能在我的目标机器上完成?

为什么“make install”只能在我的目标机器上完成?

客户给了我一个定制的内核,并要求我使用以下命令构建它:

make
sudo su
make modules_install
make install

这必须在我的主机上完成,因为目标机器太慢了。我chroot到目标的硬盘驱动器(外部硬盘),前三个命令运行顺利,但最后一步“make install”无法工作。我收到这条消息:

grub-probe: error: cannot find a device for / (is /dev mounted?)

我通过返回目标机器并完成那里的最后一个命令来修复它。有人可以向我解释错误消息的含义,以及为什么不能在我的台式机上完成此操作吗?

答案1

对于make install,它尝试更新 grub 引导加载程序。为此,它必须找到/boot/dev。由于您是在 chroot 环境中执行此操作的,因此此目录(在外部硬盘中)中没有 和/boot/dev因此出现错误消息和安装失败。

答案2

在 Linux 内核上运行make install,将导致您的引导加载程序(在本例中为 Grub)使用最新内核映像的位置进行更新。

现在,由于您处于 chroot 环境中,make因此无法找到驻留在/boot和中的所需引导文件/dev

为了安全起见,您应该在运行之前挂载/dev,/boot/proc在您的 chroot 环境中make install

相关内容