linux - 如何检查/init是否启动/etc/inittab

标签 linux embedded-linux busybox panic inittab

我有一个带有处理器 AT91SAM9G45 的嵌入式 ARM 系统。

系统由两部分组成:

  1. Linux 内核 (4.14.79)
  2. Busybox 1.29.3 作为 initramfs 镜像。

我使用腻子连接到设备并连接到串行端口。

当内核启动时,一切正常。内核解压 initramfs 镜像,找到并列出所有文件(我通过调试消息看到它)。但是当它启动/init 时,日志消息是:

Freeing unused kernel memory: 384K
This architecture does not have kernel memory protection.
run_init_process BEFORE /init
run_init_process AFTER /init, result = 0
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

/init 是/bin/busybox 的符号链接(symbolic link)。我尝试将/init 替换为/sbin/init、/bin/busybox、/linuxrc,但结果是一样的。

/etc/inittab 文件:

# Begin /etc/inittab

id::initdefault:

si::sysinit:/etc/init.d/rc S

#l0::wait:/etc/rc.d/init.d/rc 0
#l1::wait:/etc/rc.d/init.d/rc 1
#l2::wait:/etc/rc.d/init.d/rc 2
#l3::wait:/etc/rc.d/init.d/rc 3
#l4::wait:/etc/rc.d/init.d/rc 4
#l5::wait:/etc/rc.d/init.d/rc 5
#l6::wait:/etc/rc.d/init.d/rc 6

ca::ctrlaltdel:/sbin/shutdown -t1 -a -r now

su::once:/sbin/sulogin

1::respawn:/sbin/getty ttyS1 115200
2::respawn:/sbin/getty ttyS2 115200
3::respawn:/sbin/getty ttyS3 115200
4::respawn:/sbin/getty ttyS4 115200
5::respawn:/sbin/getty ttyS5 115200
6::respawn:/sbin/getty ttyS6 115200

# End /etc/inittab

/etc/init.d/rcS文件(允许执行此文件):

#!/bin/busybox sh
echo "Hello world!"

我不知道即使/init 进程开始解析/etc/inittab 还是由于某些我无法找出的原因它在获取/etc/inittab 之前就失败了。也许有 我的/etc/inittab 和/etc/init.d/rcS 文件中有一些错误。也许终端有一些错误(/etc/init.d/rcS 无法写入标准输出,因为它被阻塞、暂停、被另一个进程使用等等)。

如何确定/etc/inittab 已经启动?

最佳答案

欢迎来到 StackOverflow。 我看到 rc 和 S 之间有空格 si::sysinit:/etc/init.d/rc S

改成

si::sysinit:/etc/init.d/rcS

让我知道它是否有效。

关于linux - 如何检查/init是否启动/etc/inittab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320960/

相关文章:

c - 在 linux 中的中断上下文中运行用户线程

docker - 错误 : Cannot Start Container: stat/bin/sh: no such file or directory"

ruby-on-rails - 在 Linux 机器上为 Rails 项目安装 Postgres 的技巧

linux - 在连续的 cron 作业调用之间保留数据

linux - kernel/Linux 位置是内存,如何验证

embedded-linux - 滚刀错误 : Timeout while attempting to communicate with bitbake server

linux-kernel - 如何构建uImage?

operating-system - 固件和操作系统有什么区别?

shell - 使用Docker Alpine在本地文件上运行Shell命令

linux - 无法在 busybox sh 中将 0 填充数字增加到 8