linux内核 init=sh,内置在自定义Linux内核中的Initramfs没有运行

我正在构建一个自定义的initramfs映像,作为CPIO归档到Linux内核(3.2).

我所遇到的问题是,无论我尝试什么,内核似乎甚至没有尝试从initramfs运行.

我的CPIO存档中的文件:

cpio -it < initramfs.cpio

.

init

usr

usr/sbin

lib

lib/libcrypt.so.1

lib/libm.so

lib/libc.so.6

lib/libgcc_s.so

lib/libcrypt-2.12.2.so

lib/libgcc_s.so.1

lib/libm-2.12.2.so

lib/libc.so

lib/libc-2.12.2.so

lib/ld-linux.so.3

lib/ld-2.12.2.so

lib/libm.so.6

proc

sbin

mnt

mnt/root

root

etc

bin

bin/sh

bin/mknod

bin/mount

bin/busybox

sys

dev

4468 blocks

Init非常简单,应该只是init设备并生成一个shell(现在):

#!/bin/sh

mount -t devtmpfs none /dev

mount -t proc none /proc

mount -t sysfs none /sys

/bin/busybox --install -s

exec /bin/sh

在内核.config我有:

CONFIG_INITRAMFS_SOURCE="../initramfs.cpio"

CONFIG_INITRAMFS_ROOT_UID=0

CONFIG_INITRAMFS_ROOT_GID=0

CONFIG_BLK_DEV_INITRD=y

CONFIG_BLK_DEV_RAM=y

CONFIG_BLK_DEV_RAM_COUNT=1

CONFIG_BLK_DEV_RAM_SIZE=32768

内核构建,uImage大小取决于initramfs大小,所以我知道映像正在被打包.但是,当我启动时,我得到这个输出:

console [netcon0] enabled

netconsole: network logging started

omap_rtc omap_rtc: setting system clock to 2000-01-02 00:48:38 UTC (946774118)

Warning: unable to open an initial console.

Freeing init memory: 1252K

mmc0: host does not support reading read-only switch. assuming write-enable.

mmc0: new high speed SDHC card at address e624

mmcblk0: mmc0:e624 SU08G 7.40 GiB

mmcblk0: p1

Kernel panic - not syncing: Attempted to kill init!

[] (unwind_backtrace+0x0/0xe0) from [] (panic+0x58/0x188)

[] (panic+0x58/0x188) from [] (do_exit+0x98/0x6c0)

[] (do_exit+0x98/0x6c0) from [] (do_group_exit+0xb0/0xdc)

[] (do_group_exit+0xb0/0xdc) from [] (sys_exit_group+0x10/0x18)

[] (sys_exit_group+0x10/0x18) from [] (ret_fast_syscall+0x0/0x2c)

从该输出,它看起来不像甚至尝试提取CPIO存档为initramfs.我期望看到这个printk输出,它出现在linux代码init / initramfs.c中:

printk(KERN_INFO "Trying to unpack rootfs image as initramfs...\n");

一旦启动完成,我尝试了文件系统(使用chroot),它工作正常…所以我相信文件系统/库是理智的.

任何人都可以给我一些关于我可能有什么不正确的指针?提前感谢任何帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值