客户给了我一个定制的内核,并要求我使用以下命令构建它:
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