Linux initrd环境设置 – 无法执行/ init

我正在寻找帮助,以启动和运行基本的initrd环境.我的目标是增强我对如何创建基本Linux环境的了解.理想情况下,我希望稍后进入嵌入式Linux系统,这似乎是最好的起点.

我还没有找到关于这个主题的一个很好的基本操作方法,因此我最终完成了关于这个主题的一些半完成或不完整的教程.

以下是关于我到目前为止所做的参考的方法的链接.

> http://web.archive.org/web/20120601223451/http://blog.nasirabed.com/2012/01/minimal-linux-filesystem.html
> http://revcode.wordpress.com/2012/02/25/booting-a-minimal-busybox-based-linux-distro/

目前,当我启动环境时,我得到一个GRUB提示符,我已经尝试添加一个grub.cfg文件,但它只是在系统启动时被忽略并直接进入grub提示符.

要启动initrd环境,我必须提供以下命令:

set root=(hd0,msdos1)
linux /boot/bzImage
initrd /boot/rootfs.cpio.gz
boot

这引导了迷你操作系统,但是出现了一个错误,即无法找到一个init文件(这是我的rootfs.cpio.gz文件在其结构的根目录中的一部分)

.

我如何解决这个initrd环境的问题?

解决方法:

当linux内核引导到initramfs filsystem时,它不会运行/ sbin / init,而是运行/ init.解决方案是将/ sbin / init符号链接到/ init.

更新:
我试图重新创建你的问题,我发现你可能编译了64位busybox和32位linux内核.因此,linux内核不知道如何执行/ init程序,因为它是64位的.使用64位选项重新编译linux并用它替换旧版本.另外,你需要将/ init符号链接到/ sbin / init,就像我之前告诉你的那样

上一篇:PXE(preboot execution environment):【网络】预启动执行环节:引导 live光盘 ubuntu livecd:成功


下一篇:N35-张同学-第十一周作业