菜鸟学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 表示将该文件读到当前脚本中,这样就可以在当前脚本中引用其函数