快速业务通道

根文件系统的启动及配置

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-22

  按启动顺序依次介绍相关的文件:

  一、内核启动完之后,运行/linuxrc.

  /linuxrc内容:

  --------------------------------------------------------------------------------

  #!/bin/sh

  echo "mount /etc as ramfs"

  /bin/mount -n -t ramfs ramfs /etc

  /bin/cp -a /mnt/yaffs/etc/* /etc //关机的时候我们会保存/etc的内容到/mnt/yaffs/etc.

  echo "re-create the /etc/mtab entries"

  # re-create the /etc/mtab entries

  /bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/2 /

  /bin/mount -f -t ramfs ramfs /etc

  exec /sbin/init

  --------------------------------------------------------------------------------

  你要看懂这个linuxrc,

  1. /bin/mount -n -t ramfs ramfs /etc

  这句话的作用加载一个ramfs作为/etc目录.这样/etc就是一个可写目录.

  看这个脚本,得出你的根文件系统是一个cramfs,是一个只读文件系统中,而/etc作为系统运行配置文件的存放地点,可能会写一些运行状态在这里, linuxrc第一件事情就是将一个ramfs mount 到/etc只读目录中,/etc/目录可写,指定参数 -n的目的是告诉mount不要写/etc/mtab, 这个文件存放当前系统mount了的所有文件系统中.现在/etc/目录还是只读,这次mount不要写这个文件,否则会失败.

  而你问到的 ramfs在哪里,这个在你的 /etc/fstab文件中应该有ramfs一项, mount 会去找这项,如果没有,mount会失败.后面就执行不下去.

  2. /bin/cp -a /mnt/yaffs/etc/* /etc

  /etc成为可写目录后,将所有/mnt/yaffs/etc中的配置文件拷贝到/etc/中,这说明你的ramfs可能是一个空的ramfs,没有配置文件,或者配置文件比较老. 同时也说明你这个系统是一个只读系统,每次系统运行中写入的配置不会保留.

  将以前mount的那些信息重新写到/etc/mtab中,命令就是下面这些.

  3. /bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/2 /

  /bin/mount -f -t ramfs ramfs /etc

  这些命令只是将这些mount信息写到/etc/mtab中,不会实际去mount这些block device,说明你的根文件系统依然是以前的那个/dev/bon/2

  4. exec /sbin/init

  执行根文件系统中的init执行程序,使其成为1号进程.shell正式运行.

  ###################################################################################

  /etc/mtab介绍:

  mtab同/etc/fstab的格式一样,它用于记录已经挂载的分区信息.

  注意:

  如果没有/linuxrc这个文件,系统默认运行/sbin/init.

  ###################################################################################

  二、从/linuxrc文件中我们看到它运行了/sbin/init,而init又会根据/etc/inittab来运行.

  inittab 文件条目格式:

  id:runlevels:action:process

  id:

  inittab 文件中条目的唯一标识, 限于 1-4 个字符 (如果是用版本号小于 5.2.18 或 a.out 的库编译生成的 sysvinit 程序, 则仅限于 2 个字符).

  注意: 对于 getty 或其它的注册进程, id 是响应的终端线路的 tty 后缀, 如 1 响应 tty1, 否则, 注册过程不能正常的工作.

  runlevels:

  # 0 - halt (Do NOT set initdefault to this)

  # 1 - Single user mode

  # 2 - Multiuser, without NFS (The same as 3, if you do not have netwo***ng)

  # 3 - Full multiuser mode

  # 4 - unused

  # 5 - X11

  # 6 - reboot (Do NOT set initdefault to this)

  action

  描述要发生的动作.

  process

  要执行的进程. 如果

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号