快速业务通道

slackware的启动过程(2)之rc.S

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-13
上节我们介绍了init进程执行的inittab脚本,这节我们分析在inittab中出现的 /etc/rc.d目录中的 “rc.X”脚本.
是系统初始化时执行的“rc.S”脚本,inittab中的对应行为si:S:sysinit:/etc/rc.d/rc.Src.S文件内容有380行之多,我们尽可能的逐行命令一一解释.
1、设置path环境变量
PATH=/sbin:/usr/sbin:/bin:/usr/bin
2、挂载proc文件系统/sbin/mount -v proc /proc -n -t proc 2> /dev/null
proc文件系统是一个伪文件系统,它只存在于内存当中,它以文件系统的方式为访问系统内核数据的操作提供接口.例如我们查看cpu信息时经常使用”cat /proc/cpuinfo“ 命令.
3、挂载sysfs文件系统if [ -d /sys ]; then
if grep -wq sysfs /proc/filesystems ; then
if ! grep -wq sysfs /proc/mounts ; then
/sbin/mount -v sysfs /sys -n -t sysfs
fi
fi
fi
sysfs文件系统是用来对系统的设备进行管理的,它把实际连接到系统上的设备和总线组织成一个分级的文件,用户空间的程序同样可以利用这些信息以实现和内核的交互.这种文件系统只存在于2.6内核中.
4、为2.6内核启动执行udev脚本.if grep -wq sysfs /proc/mounts && grep -q tmpfs /proc/filesystems ; then
if ! grep -wq nohotplug /proc/cmdline ; then
if [ -x /etc/rc.d/rc.udev ]; then
/bin/sh /etc/rc.d/rc.udev start
fi
fi
fi
udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等.设备文件通常放在/dev目录下.使用udev后,在/dev目录下就只包含系统中真正存在的设备.
Empire CMS,phome.net

5、初始化LVM.if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
echo "Initializing LVM (Logical Volume Manager):"
# Check for device-mapper support.
if ! grep -wq device-mapper /proc/devices ; then
# Try to load a device-mapper kernel module:
/sbin/modprobe -q dm-mod
fi
# Scan for new volume groups:
/sbin/vgscan --mknodes --ignorelockingfailure 2> /dev/null
if [ $? = 0 ]; then
# Make volume groups available to the kernel.
# This should also make logical volumes available.
/sbin/vgchange -ay --ignorelockingfailure
fi
fi
6、开启交换分区./sbin/swapon -a 2> /dev/null
7、设置硬件时钟
if grep -wq "^UTC" /etc/hardwareclock ; then
echo "Setting system time from the hardware clock (UTC)."
/sbin/hwclock $CLOCK_OPT --utc --hctosys
else
echo "Setting system time from the hardware clock (localtime)."
/sbin/hwclock $CLOCK_OPT --localtime --hctosys
fi
8、检查根分区是否为只读,只有只读时才能检查硬盘.READWRITE=no
if touch /fsrwtestfile 2>/dev/null; then
rm -f /fsrwtestfile
READWRITE=yes
else
echo "Testing root filesystem status: read-only filesystem"
fi
Empire CMS,phome.net

9、重新挂载根分区,使其可写/sbin/mount -w -o remount /
10、修复/etc/mtabif [ -d /proc/sys ]; then
/sbin/mount -f proc /proc -t proc
fi
if [ -d /sys/bus ]; then
/sbin/mount -f sysfs /sys -t sysfs
fi
mount的f参数不执行实际的mount,只是模拟mount的执行过程.
11、加载内核模块,即执行rc.module*脚本if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then
echo "Running /etc/rc.d/rc.modules.local:"
/bin/sh /etc/rc.d/rc.modules.local
elif [ -x /etc/rc.d/rc.modules-

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号