使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式Linux启动所需的配置文件及脚本.由于init进程,或者说linuxrc程序会解析inittab文件,因此就从/etc/inittab文件开始说起.

(1)文件/etc/inittab
  
该文件是init进程需要解析的文件,它的每个条目都是一个脚本或可执行程序,详见博客"inittab文件".




    
::sysinit:/etc/init.d/rcS
     ::respawn:-/bin/login

::ctrlaltdel:/bin/umount -a -r


(2)文件/etc/init.d/rcS
  
该文件的功能主要有两个,一个是将不同的文件系统挂载到根文件系统下的某个目录内;二是新建kernel所需的目录,这些目录都是kernel运行过程中所必须的.




        #! /bin/sh

/bin/mount -n -t
ramfs ramfs /var #在不同的目录内挂载不同的文件系统
        /bin/mount -n -t
ramfs ramfs /tmp
        /bin/mount -n -t
sysfs none /sys
        /bin/mount -n -t
ramfs none /dev
                                          #在不同的目录内新建文件夹

/bin/mkdir /var/tmp

/bin/mkdir /var/modules

/bin/mkdir /var/run

/bin/mkdir /var/log

#在不同的目录内递归新建文件夹

/bin/mkdir -p /dev/pts

/bin/mkdir -p /dev/shm

/sbin/mdev -s

/bin/mount -a                     #当执行命令"mount
-a"时,系统会自动读取配置文件fstab.
        echo /sbin/mdev > /proc/sys/kernel/hotplug


(3)文件/etc/fstab
  
在文件/etc/init.d/rcS中执行mount
–a时,就会按照文件/etc/fstab内容挂载相应的文件系统.




        proc        /proc      
proc     
defaults   0 0
        none        /dev/pts    devpts    mode=0622  0
0
        tmpfs       /dev/shm    tmpfs    
defaults   0
0


<1>fstab文件的格式:
   device Mount
Point filesystem parameters dump fsck

proc   
/proc     
proc    defaults   0    0

<2>文件/etc/fstab就是使用mount将设备载入到系统的某个载入点所需执行的命令内容,将这些内容都写到/etc/fstab里,使得系统一启动就主动载入.

<3>参数dump的值表示是否允许使用dump命令进行系统备份.dump命令会根据对/etc/fstab的设置值,去选择是否要将该分区进行备份.0表示不要dump备份,1或2表示要进行dump备份.

<4>参数fsck的值表示是否允许以fsck检验分区内的文件系统是否完整.其中,根文件系统必须进行检验,其它文件系统可以不需要检验.0表示不要检验,1或2表示要进行检验.

(4)文件/etc/passwd
  
当用户以telnet或ssh登录主机时,系统会出现一login画面来输入账号,此时输入账号和密码后,Linux会执行以下动作:

<1>先找/etc/passwd内是否有该账号,如果有,则将该账号与对应的UID(user
ID)和GID(Group ID)读出,并将该账号的家目录与shell设置也一起读出.
<2>核对密码表,此时Linux会进入/etc/shadow中查找对应的账号与UID,然后核对已输入的密码与里面的密码是否一致.

<3>若一切相符,就进入shell控制阶段.

下面就来分别简述这两个文件的含义.
<1>/etc/passwd





root:x:0:0:root:/root:/bin/sh



  
该文件的构造如上所示,每一行都表示一个账号,有几行就表示系统中有几个账号.注意,里面的很多账号都是系统必须使用的,称作系统账号.在每个Linux系统中都会有第一行,就是root系统管理员行,每行有7个部分,用":"隔开.

1、账号名称:root表示默认的系统管理员的账号名称.

2、密码:x表示密码已经移动到shadow这个加密后的文件中了.

3、UID:当UID=0时,表示root

4、GID:与/etc/group有关,用于规范用户组.

5、用户信息说明栏:用于解释该账号的意义.

6、家目录:用户的家目录.root用户的家目录就是/root.

7、Shell:默认使用/bin/bash来执行命令.

<2>/etc/shadow




root:$1$HNeU8jpc$RyzTN856sZiO.LCN2BZuZ0:14880:0:99999:7:::



  
该文件属于加密文件,每个账号的密码均在该文件中,这里不再赘述.

 

(5)/etc/profle




   
echo
    echo -n "Processing
/etc/profile... "
    # no-op

echo "Done"

echo

PATH=/bin:/sbin:/usr/bin:/usr/sbin

export LD_LIBRARY_PATH=/lib:/usr/lib


嵌入式Linux启动配置文件及脚本分…的更多相关文章

  1. 【转】嵌入式Linux启动配置文件及脚本

    原文网址:http://blog.csdn.net/shuaishuai80/article/details/6202497 使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式L ...

  2. 转:嵌入式linux启动时运行的inittab文件

    嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多.嵌入式系统下的linux启动过程一般是:     1 在bootloader中制定各种要 ...

  3. [转载]嵌入式linux启动时运行的inittab文件

    源地址:https://www.cnblogs.com/yfz0/p/5853826.html 嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要 ...

  4. 嵌入式linux启动信息完全注释

    嵌入式linux启动信息完全注释 from:http://www.embedlinux.cn/ShowPost.asp?ThreadID=377 摘要 我们在这里讨论的是对嵌入式linux系统的启动过 ...

  5. 嵌入式Linux启动优化手记2&nbsp;U…

    参考一下 原文地址:U-boot优化">嵌入式Linux启动优化手记2 U-boot优化作者:ZhaoJunling 既然不能使用新的U-boot,那就优化一点是一点,慢慢干吧. 1. ...

  6. 嵌入式Linux启动过程中的问题积累

    嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...

  7. 基于bootsplash的嵌入式linux启动画面定制

    来源: ChinaUnix博客 作者: ChinaUnix博客 发布时间:2007-01-01 16:29:00 摘 要:在基于linux的嵌入式仿真平台研发中,利用开源工具bootsplash能够定 ...

  8. Linux启动流程和脚本服务-6

    授课笔记:----------------------------------- linux系统启动流程:一.初始化阶段:1.grub引导界面2.识别硬件3.初始化驱动 二.加载/etc/rc.d/r ...

  9. 嵌入式linux启动过程详解

    启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...

随机推荐

  1. Siemens

    Sr.EE-Complete the electronics and mechanical designs from design concepts to mass production for RU ...

  2. 2017.11.18 IAP下载(STM8,PIC,STM32)

    客户要求用IAP下载,mark一下,客户还给了stm32的引导码.仅供参考. 1 PIC单片机的IAP  2 STm32 IAP https://www.cnblogs.com/WeyneChen/p ...

  3. 【git】新建一个git仓库的方法

    1.在github上登陆,新建一个远程仓库 2.在本地创建仓库 3.本地仓库关联到远程仓库 git remote add origin(仓库名) git@github.com:yesuuu/test. ...

  4. CodeIgniter (CI)框架中的数据库查询汇总

    引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...

  5. 一个高性能RPC框架的连接管理

    既然说连接,先对EpollServer的连接管理做个介绍吧.客户端与服务器一次conn,被封装成为Connection类在服务器进行管理. 服务器连接有三种类型,分别为: enum EnumConne ...

  6. [转载] FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  7. 重温CLR(七 ) 属性和事件

    无参属性 许多类型都定义了能被获取或更高的状态信息.这种状态信息一般作为类型的字段成员实现.例如一下类型包含两个字段: public sealed class Employee{ public str ...

  8. [BZOJ5290][HNOI2018]道路

    bzoj luogu sol 考场上普及\(dp\)都做不来,果然是思想僵化了. 设\(f[u][i][j]\)表示在\(u\)点,上方有\(i\)条未修复的公路和\(j\)条未修复的铁路的最小花费. ...

  9. 关于modelsim添加库的说明

    声明:以下纯属个人习惯. 1.工程建好后添加一个编译好的库的方法是:file->new->library选择a map to an existing library.然后将这个库在你这工程 ...

  10. (转)setTextColor()的参数设置方式

    setTextColor()的参数设置方式 分类: Android界面研究2011-12-09 23:27 11160人阅读 评论(2) 收藏 举报 查了下资料发现setTextColor()的参数应 ...