深入浅出:linux的启动流程刨析(二)
2. 关于etc/rc.d/rc.sysyinit 和 /etc/rc.d/rc.Nd在inittab文件中,我们了解到rc.sysinit是系统运行的第一个脚本,那么它的作用都有哪些呢?如果有shell脚本基础的话可以用vim打开这个文件来看看,它有900多行...是l
2. 关于etc/rc.d/rc.sysyinit 和 /etc/rc.d/rc.Nd
在inittab文件中,我们了解到rc.sysinit是系统运行的第一个脚本,那么它的作用都有哪些呢?如果有shell脚本基础的话可以用vim打开这个文件来看看,它有900多行...是linux里最牛的脚本,总结下它的作用,有如下几点:(一定要牢记,必要时我们要重写它!)
1. 激活udev和selinux
2. 通过读取/etc/sysct1.conf来设置内核参数
3. 设置系统时钟
4. 设置键盘映射
5. 启动交换分区。
6. 设置主机名
7. 检查跟文件系统,并且如果没有错误,以读写的方式来重新挂载文件系统 (重要)
8. 激活raid和lvm设备
9. 启动磁盘限额
10 挂载其他/etc/fstab里定义的尚未被挂载的设备
11. 清理过时的文件锁和PID文件
12. 启动服务/etc/rc.d/rcN.d
/etc/rc.d/rcN.d 是一个存放了系统启动是加载的服务的文件夹,通过inittab,我们知道了,它的编号对应相应的启动运行级别。
需要说明的是,它里面的文件,以我的为例 以K开头的代表stop,以S开头的代表启动start,数字越小,有限级别越高
[root@server69 rc.d]# cd rc3.d
[root@server69 rc3.d]# ls
K01dnsmasq K74nscd S08ip6tables S25bluetooth S85gpm
K02avahi-dnsconfd K85mdmpd S08iptables S25netfs S90crond
K02NetworkManager K87multipathd S08mcstrans S25pcscd S90xfs
K05conman K88wpa_supplicant S10network S26acpid S95anacron
K05saslauthd K89dund S11auditd S26apmd S95atd
K10psacct K89netplugd S12restorecond S26haldaemon S97rhnsd
K20nfs K89pand S12syslog S26hidd S97yum-updatesd
K24irda K89rdisc S13irqbalance S28autofs S98avahi-daemon
K35vncserver K99readahead_later S13portmap S50hplip S99firstboot
K35winbind S00microcode_ctl S14nfslock S55sshd S99local
K50ibmasm S02lvm2-monitor S15mdmonitor S56cups S99smartd
K50netconsole S04readahead_early S18rpcidmapd S56rawdevices
K69rpcsvcgssd S05kudzu S19rpcgssd S58ntpd
K73ypbind S06cpuspeed S22messagebus S80sendmail
3./etc/fstab文件
它定义了系统初始化挂载的设备,对系统的启动至关重要,rc.sysinit通过读取它来实现系统分区的挂载
它的内容如何呢?我们一起来看下
要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率 文件自检次序
/dev/sda2 / ext3 defaults 0 0
/dev/sda1 /boot ext3 defaults 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
我截取了4个系统启动时必须挂载的设备
/ 根文件目录,由它你才可以进入linux的世界,它在/dev/sda2里
/boot 启动目录,在/下,里面有grub,initrd和系统内核,它在/dev/sda1
sysfs 一个虚拟的文件系统,产生包含所有硬件层次视图,和/proc类似
proc 这是一个虚拟的目录,它映射内存里的信息对应进程信息,也就是说它对应的是内存而不是硬盘
更多推荐
所有评论(0)