使用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. UI-了解ISO

    1. iOS学习路线: C语言:数据类型.流程控制.函数.指针.字符串.结构体.枚举.预处理: OC:面向对象.内存管理.分类.协议.Block.KVC/KVO.Foundation框架: iOS基础 ...

  2. 在Virtualbox虚拟机中配置使用ROS Spark机器人(Orbbec Astra 和 Xtion)

    在虚拟机中配置使用ROS Spark,在Virtualbox中使用USB外设包括Orbbec Astra 和 Xtion深度摄像头和底盘. 虚拟机使用外接设备时,会遇到一些问题.不过随着虚拟机功能的逐 ...

  3. EasyDSS流媒体服务器出现no compatible source was found for this media问题的解决

    在EasyDSS流媒体服务器的客户反馈中,我们遇到这样一个现象,在chrome中经常会出现RTMP/HLS流无法播放的问题: 这个问题复现的几率比较低,因为chrome禁止了flash的加载,这也从另 ...

  4. v-if和v-show的区别

    v-if 是“真实”的条件渲染,因为它会确保条件块(conditional block)在切换的过程中,完整地销毁(destroy)和重新创建(re-create)条件块内的事件监听器和子组件. v- ...

  5. (六)java数据类型

      数据类型:决定了变量占据多大的空间,决定了变量存储什么类型的数据 整形: byte     1个字节 short    2个字节 int        4个字节 long     8个字节 浮点型 ...

  6. 怎么把openrety 里边的 table 优雅的打印出来

    1.安装 loarocks 库以后 2.安装 Penlight 插件 3.如下图所示 4.利用dump 函数优雅的打印 table

  7. Logical standby database 搭建(配置)

    说明 Logical standby 数据库是通过Physical standby数据库转换的.本Logical standby是通过之前创建的Physical standby转换的. Physica ...

  8. typedeifn typename

    1.类型说明typedef 类型说明的格式为: typedef  类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整 ...

  9. HTML <meta> http-equiv Attribute 说明

      1. 说明 Value Description content-type Specifies the character encoding for the document. Example: & ...

  10. 基于SQL调用Com组件来发送邮件

    这个需求是公司有个文控中心,如果有用增删改了文件信息希望可以发邮件通知到有权限的人.当然方式很多. 这里是用数据库作业来完成 JOB+Com,这里用的com组件是Jmail 当然你需要把com组件放到 ...