最近我尝试创建一个最小的 Linux 发行版,它只能运行一个程序。我首先编译 Linux 内核并创建 initramfs。 initramfs 包含 /init(编译的 c 脚本)、/proc(空目录)、/dev(另一个空目录)和 /sys(同样,只是一个空目录)。一切正常,直到我尝试使用 C 行挂载 /proc
mount("/proc", "/proc", "proc", MS_NOATIME, NULL);
但它返回 errno 11。然后我尝试首先使用以下行挂载 /dev
mount("-", "/dev", "devtmpfs", MS_NOATIME, NULL);
但它也返回了 errno 11。有谁知道如何修复它吗?顺便说一句,对于配置,系统没有任何本文中未描述的内容,目前仅在 QEMU 中进行了测试(发布此问题后我将在真实硬件上进行尝试)。提到的安装代码位于我的脚本之上(主函数的第一行)
更新:在真实计算机上测试后,错误代码消失了。因此我想改变我的问题。为什么 QEMU 的行为如此奇怪?