对于Kernel panic - not syncing: No init found. Try passing init= option to kernel.出错的一点总结!

 "mount_devfs_fs(): unable to mount devfs, err: -2"一个困扰了我很久的问题,主要是ecc的问题。    搞清楚你在driver/mtd/nand/s3c2410.c文件中有没有把NAND_ECC_SOFT改成NAND_ECC_NONE,这个网上不少的人都会做(听说会与yaffs文件系统有冲突,但我发现反而和cramfs文件系统有冲突)。

    假设你把NAND_ECC_SOFT改成NAND_ECC_NONE,那[*]     Lets Yaffs do its own ECC 这一步是必需的。
    最后,如果你把NAND_ECC_SOFT改成NAND_ECC_NONE的话,那你下载yaffs文件系统的时候就不应该加上-e的参数了。
    这个东西由"mount_devfs_fs(): unable to mount devfs, err: -2"得来的.

   先让内核挂载cramfs试试看(记得把NAND_ECC_SOFT改成NAND_ECC_NONE),因为这个文件系统只要用下载内核的命令下载就行,成功挂载cramfs的话将会是你最大的鼓舞


2  确保devfs修改正确.由于linux 2.6.12后取消了devfs,因此你自己在fs/kconfig里面添加devfs的支持.

从2.6.12的fs/Kconfig中拷贝下面几项到2.6.14的fs/Kconfig中去:

config DEVFS_FS
bool "/dev file system support (OBSOLETE)"
depends on EXPERIMENTAL
help
…………………………………………………

config DEVFS_MOUNT
bool "Automatically mount at boot"
depends on DEVFS_FS
help
………………………………………………….

config DEVFS_DEBUG
bool "Debug devfs"
depends on DEVFS_FS
help
…………………………………………………..

help 的部分就省了,在 2.6.12 内核的配置文件会看得到,或者自己写上去也行。

重新make menuconfig 在File systems->Pseudo filesystems目录里面可以后到devfs的配置选项如下:
[*] /proc file system support                                          │ │
[*] /dev file system support (OBSOLETE)                                │ │
[*]   Automatically mount at boot                                      │ │
[*]   Debug devfs                                                      │ │
[*] Virtual memory file system support (former shm fs)                 │ │
[ ] Relayfs file system support

因为在执行内核要结束的时候,要mount devfs,需要debug devfs!所以要加上去! 

Debug devfs 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Kernel panic - not syncing: No init found. Try passing init= option to kernel" 是一个错误消息,通常在Linux系统中出现。它表示内核无法找到初始化进程(init)并且建议尝试通过传递init=选项给内核来解决这个问题。 这个错误通常发生在系统启动过程中,当内核无法找到或加载初始化进程时。初始化进程是系统启动的第一个进程,它负责启动其他进程和服务。如果内核无法找到初始化进程,系统将无法正常启动。 解决这个问题的方法是通过在启动时传递init=选项给内核来指定初始化进程的位置。这可以通过编辑引导加载程序的配置文件来完成。具体的步骤可能因不同的Linux发行版而有所不同,但通常涉及到编辑/boot/grub/grub.conf或/boot/grub/menu.lst文件,并在内核行中添加init=选项。 以下是一个示例,演示如何通过传递init=选项给内核来解决这个问题: 1. 打开终端并以root用户身份登录。 2. 编辑/boot/grub/grub.conf文件(或/boot/grub/menu.lst文件)。 3. 在内核行中找到以kernel开头的行,类似于: ``` kernel /vmlinuz-4.18.0-193.el8.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto resume=/dev/mapper/centos-swap rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet ``` 4. 在该行的末尾添加init=选项,例如: ``` kernel /vmlinuz-4.18.0-193.el8.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto resume=/dev/mapper/centos-swap rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet init=/sbin/init ``` 5. 保存文件并退出编辑器。 6. 重新启动系统。 通过这种方式,您可以尝试指定初始化进程的位置,以解决"Kernel panic - not syncing: No init found. Try passing init= option to kernel"错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值