initrd的启动过程
1.init的启动过程,首先调用配置文件inittab,确定运行级别
2.sysinit 的作用
1.initrd 调用/etc/rc.sysinit
1. mount所有文件系统,以读写的方式挂载
1. mount -a 从 /etc/fstab mount所有文件系统
mount -o rw,remount /dev/sdax
2.如果这里出问题,那么要手动执行fsck.ext4 检测文件系统,检测文件系统必须只读加载
2. 加载SWAP分区
3. 加载驱动
3. rc 脚本程序在/etc/rc.d/,rc负责在系统启动时启动服务和关闭服务
1. inittab中确定运行级别X
2. 调用/etc/init/rc.conf ----->调用rc脚本以X运行级别执行 /etc/rc.d/rc X
3. rc运行/etc/rc.d/rcX.d中所有脚本
1.rcX.d中以K开头的脚本执行
2.rcX.d中以S开头的脚本执行
3.数字表示执行顺序的先后例如:/etc/rc.d/rc3.d/s08ip6tables 和 /etc/rc.d/rc3.d/s20kdump,20在08之后执行
4.所有的/etc/rc.d/rcX.d中的所有脚本都是/etc/rc.d/init.d中脚本的软链接,例如上面就是init.d/中ip6tables和kdump的软链接
5.POSIX规范
1./etc/init.d也是/etc/rc.d/init.d中服务的软链接
2.所有以d结尾的服务名表示该服务是daemon,守护进程
3.所有sysV的守护进程都符合POSIX标准
4.符合POSIX标准都可以使用 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}
1.例如 /etc/init.d/sshd start 启动ssh
5.UNIX的两种体系 sysV体系和BSD体系
6.最后调用rc.local,一般我们把自己需要开机执行的脚本写入rc.local
4.mingetty initrd调用mingetty
1.mingetty 调用/dev/tty1-6 打开6个tty控制台
2.tty调用login,由login验证用户名密码
3.audit通过后调用bash
4.bash按顺序调用4个配置文件
1./etc/bash_profile
2.~/bashrc
3.~/bash_profile
4./etc/bashrc
5.bash退出时调用~/.bash_logout