根文件系统的启动及配置

发表于:2010-4-09 12:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小寿    来源:51Testing软件测试网采编

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

  一、内核启动完之后,首先运行/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 networking)
  #   3 - Full multiuser mode
  #   4 - unused
  #   5 - X11
  #   6 - reboot (Do NOT set initdefault to this)

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号