Kernel panic - not syncing: Requested init linuxrc failed (error -13).

    技术2023-10-12  92

    开发板平台exynos-4413,使用busybox-1.31.1制作ext4根文件系统。

    Kernel panic - not syncing: Requested init /linuxrc failed (error -13).

    这是一个巨坑无比的错误,让你伤痛了脑袋都难搞出原因,怎么入手,先看看定义的错误是什么意思。

    错误在这里定义:在Linux源码目录/include/uapi/asm-generic的errno-base.h中

    #define EPERM 1 /* Operation not permitted */

    #define ENOENT 2 /* No such file or directory */

    #define ESRCH 3 /* No such process */

    #define EINTR 4 /* Interrupted system call */

    #define EIO 5 /* I/O error */

    #define ENXIO 6 /* No such device or address */

    #define E2BIG 7 /* Argument list too long */

    #define ENOEXEC 8 /* Exec format error */

    #define EBADF 9 /* Bad file number */

    #define ECHILD 10 /* No child processes */

    #define EAGAIN 11 /* Try again */

    #define ENOMEM 12 /* Out of memory */

    #define EACCES 13 /* Permission denied */

    #define EFAULT 14 /* Bad address */

    #define ENOTBLK 15 /* Block device required */

    #define EBUSY 16 /* Device or resource busy */

    #define EEXIST 17 /* File exists */

    #define EXDEV 18 /* Cross-device link */

    #define ENODEV 19 /* No such device */

    #define ENOTDIR 20 /* Not a directory */

    #define EISDIR 21 /* Is a directory */

    #define EINVAL 22 /* Invalid argument */

    #define ENFILE 23 /* File table overflow */

    #define EMFILE 24 /* Too many open files */

    #define ENOTTY 25 /* Not a typewriter */

    #define ETXTBSY 26 /* Text file busy */

    #define EFBIG 27 /* File too large */

    #define ENOSPC 28 /* No space left on device */

    #define ESPIPE 29 /* Illegal seek */

    #define EROFS 30 /* Read-only file system */

    #define EMLINK 31 /* Too many links */

    #define EPIPE 32 /* Broken pipe */

    #define EDOM 33 /* Math argument out of domain of func */

    #define ERANGE 34 /* Math result not representable */

    从这里看出,13表示:Permission denied,即没有权限。首先怀疑是文件系统文件没有执行权限,全部改为777还是一样的问题。反反复复都还是问题依旧,最终才想到问题可能出在make_ext4fs这个工具上?果然,这个工具有的版本生成的文件系统可以,有的就提示这个错误,这是让人很不容易想到的,既然生成出来没有权限,那你这个工具有啥用?

    在下列链接中,作者提到了要修改make_ext4fs的源代码重新编译,或者去掉-a参数。

    https://blog.csdn.net/adaptiver/article/details/8595591

    至少作者说明了原因,make_ext4fs这个工具确实会导致制作的文件系统没有权。

    经过实测,去掉-a参数最简单可行的办法,即形如:

    make_ext4fs -s -l 314572800 -a root -L linux system.img _install

    改为形如:

    make_ext4fs -s -l 314572800 -L linux system.img _install

    这样即可。

     

     

     

     

     

     

    Processed: 0.028, SQL: 9