菜鸟学Linux 第035篇笔记 脚本知识、启动流程
系统启动流程
1. POST-->2. BIOS(Boot sequence)-->3. MBR(BootLoader)
--> 4. Kernel (initrd, initramfs)-->5. init(/etc/inittab,)
RHEL6:
upstart 项目名称
/etc/inittab
/etc/init/*.conf
kernel内核初始化工作:
硬件探测
装载驱动
挂载根文件系统(rootfs,ro)
启动用户空间中的第一进程init
/etc/inittab:
设定默认运行级别
系统初始化脚本(/etc/rc.d/rc.sysinit)
运行指定级别的服务脚本
/etc/rc.d/init.d/
/etc/rc.d/rc#.d
rc0.d--rc6.d
K*
S*
00-99运行次序,数字越小越先被执行
rc.local
启动虚拟终端
启动图形终端
/etc/rc.d/rc.sysinit
检测,并且以读写方式重新挂载根文件系统
设定主机名
检测并挂载/etc/fstab中的其它文件系统
启用swap交换分区
初始化外围硬件设备的驱动
根据/etc/sysctl.conf设定内核参数
激活udev和selinux
激活LVM和RAID设备
清理过期锁和PID文件
装载键映射
增加之前所做的小linux功能
1.关机重启
2.主机名
3.运行对应服务脚本
4.启动终端
5.支持用户
6.定义单用户级别
7.装载网卡驱动,启用网络功能;
8.提供一个web服务器
busybox: 1M
kernel:
安装RHEL5, RHEL6
定制安装:
自动化安装
定制引导盘
shutdown
halt
reboot
poweroff
init 0
init 6
mount -n 挂载时不更新/etc/mtab文件
cat /proc/mounts
已经实现的功能
1. 关机重启;
2. 终端
3. 主机名
4. IP地址(模块的装载和服务的实现)
5. functions
6. 终端提示信息
/etc/issue文件的内容
7. rc.sysinit 挂载/etc/fstab中定义的其它文件系统
8. 设定内核参数
/etc/sysctl.conf
sysctl -p
9. 用户
PAM: Pluggable Authentication Module
/etc/pam.d/*
绕过PAM /bin/login:
框架nsswitch: Network Service Switch
库: libnss_file.so, libnss_nis.so, libnss_ldap.so
配置文件: /etc/nsswitch.conf
NIS LADP MySQL
/etc/passwd
/etc/group
10. 单用户模式
总算明白点点这个怎么制作,但目前未再进行深研究,相信应该可以成功了。
下一章的小linux已经成功,所以这里等以后再来研究吧!
脚本编程知识点
${#A} 表示取变量A的值所点字符长度
. /etc/inittab 表示将该文件读到当前脚本中,这样就可以在当前脚本中引用其函数