嵌入式linux中,linux把ramdisk作为根文件系统后,立刻执行哪些程序?

时间:2021-11-03 08:02:21
又如何开始执行脚本的,如何指定定一个要执行的脚本?

谢谢。

13 个解决方案

#1


系统在加载上根本文件系统之后,紧接着执行init程序,关键就是这个init程序,看你是如何实现的,一般都是用BusyBox中的init,如果选用了它,它就会加载/etc/inittab脚本文件,一般说来在这个脚本文件里最终会加载/etc/rc/rc.local(当然这个路径可以改变,关键就是看你在/etc/inittab脚本里是如何实现的了,而真正实现“开始”菜单的功能的就是那个rc.local脚本了)

所以,当你弄懂了如何作映像文件之后,下一个需要做的事情就是如何使用busybox

#2


这个大概是bootloader做的事情,可以修改bootloader的源码, 一般是C代码, 在VMLinuz里面

#3


sorry, 我说的可能不是你想要的

#4


谢谢,两位。

我做的ramdisk,是用busybox编译出来的文件,etc/为空也可以,奇怪?

我现在手上别人做的ramdisk,etc/inittab 里就 inet:unknown:/bin/inetd  boa:unknown:/bin/boa  slog:unknown:/sbin/syslogd -n  klog:unknown:/sbin/klogd等四条语句,什么意思啊?

#5


ramdisk只是一个简单的文件系统,只做为启动引导驱动,/etc为空也没有什么奇怪的。挂载之后执行linuxrc脚本,在里面解压Linux文件系统到内存中。

用pivot_root 和 chroot移动到真正的/目录。

然后执行init程序初始化系统。

#6


init以后,执行哪些脚本。

#7


不是说了吗??
/etc/inittab

#8


不是说了吗??
/etc/inittab
--------------------------------------
哦,thanks.
________________________________________
inet:unknown:/bin/inetd  boa:unknown:/bin/boa  slog:unknown:/sbin/syslogd -n  klog:unknown:/sbin/klogd等四条语句还是不明白。

#9


看一下你的/etc/inittab中写的是什么东东??一般在那个文件中还会引用一个用于启动的脚本文件,这个文件一般都是/etc/rc/下面,不过,有可能不是,要看你的inittab文件了

你在开始启动了inet守护程序,boa是一个HTTP服务程序,syslogd是一个日志守护进程,至于slog是什么我就不晓得了,大概意思是你在脚本中启用了这些程序,而实现在你的文件系统中却没有这些程序(也有可能是其它问题引起的,比如环境变量中未设定系统在执行SHELL的时候去查找相应的目录,也就是说未设定PATH环境变量)

#10


一般在那个文件中还会引用一个用于启动的脚本文件,这个文件一般都是/etc/rc/下面
-----------------------------------------------------------------------------
我也是这么想的,但现在inittab中就这四条语句,但又调用了其他的教本,所以就不明白了,他是怎么调用的呢?

#11


你看一下你PC机上的那个inittab文件中你就晓得咋个引用其它地方的脚本了

#12


ok,谢谢各位。

#13


新手

#1


系统在加载上根本文件系统之后,紧接着执行init程序,关键就是这个init程序,看你是如何实现的,一般都是用BusyBox中的init,如果选用了它,它就会加载/etc/inittab脚本文件,一般说来在这个脚本文件里最终会加载/etc/rc/rc.local(当然这个路径可以改变,关键就是看你在/etc/inittab脚本里是如何实现的了,而真正实现“开始”菜单的功能的就是那个rc.local脚本了)

所以,当你弄懂了如何作映像文件之后,下一个需要做的事情就是如何使用busybox

#2


这个大概是bootloader做的事情,可以修改bootloader的源码, 一般是C代码, 在VMLinuz里面

#3


sorry, 我说的可能不是你想要的

#4


谢谢,两位。

我做的ramdisk,是用busybox编译出来的文件,etc/为空也可以,奇怪?

我现在手上别人做的ramdisk,etc/inittab 里就 inet:unknown:/bin/inetd  boa:unknown:/bin/boa  slog:unknown:/sbin/syslogd -n  klog:unknown:/sbin/klogd等四条语句,什么意思啊?

#5


ramdisk只是一个简单的文件系统,只做为启动引导驱动,/etc为空也没有什么奇怪的。挂载之后执行linuxrc脚本,在里面解压Linux文件系统到内存中。

用pivot_root 和 chroot移动到真正的/目录。

然后执行init程序初始化系统。

#6


init以后,执行哪些脚本。

#7


不是说了吗??
/etc/inittab

#8


不是说了吗??
/etc/inittab
--------------------------------------
哦,thanks.
________________________________________
inet:unknown:/bin/inetd  boa:unknown:/bin/boa  slog:unknown:/sbin/syslogd -n  klog:unknown:/sbin/klogd等四条语句还是不明白。

#9


看一下你的/etc/inittab中写的是什么东东??一般在那个文件中还会引用一个用于启动的脚本文件,这个文件一般都是/etc/rc/下面,不过,有可能不是,要看你的inittab文件了

你在开始启动了inet守护程序,boa是一个HTTP服务程序,syslogd是一个日志守护进程,至于slog是什么我就不晓得了,大概意思是你在脚本中启用了这些程序,而实现在你的文件系统中却没有这些程序(也有可能是其它问题引起的,比如环境变量中未设定系统在执行SHELL的时候去查找相应的目录,也就是说未设定PATH环境变量)

#10


一般在那个文件中还会引用一个用于启动的脚本文件,这个文件一般都是/etc/rc/下面
-----------------------------------------------------------------------------
我也是这么想的,但现在inittab中就这四条语句,但又调用了其他的教本,所以就不明白了,他是怎么调用的呢?

#11


你看一下你PC机上的那个inittab文件中你就晓得咋个引用其它地方的脚本了

#12


ok,谢谢各位。

#13


新手