计算机常识:
硬盘MBR(Master Boot Recorder)主引导记录
硬盘读取数据的第一个位置,存放自举程序、分区表
Windows 使用NTLDR引导 配置文件为boot.ini
Linux 使用GRUB引导 配置文件为 grub.conf
软件时钟 date查看/设置
硬件时钟(CMOS) hwclock查看/设置
获得命令主要选项设置帮助:命令 --help
Linux引导流程解析
固件firmware(CMOS/BIOS) --> POST加点自检
| * 软硬件时钟设置、同步,帮助使用
自举程序BootLoader(GRUB) --> GRUB配置文件
| * 单用户模式、光盘修复模式 载入内核Kernel --> 驱动硬件
| * dmesg、内核版本和存放位置 启动进程init
| * 进程 读取配置文件/etc/inittab --> 读取运行等级
| * 缺省运行级别initdefault 初始化/etc/rc.d/rc.sysinit | /etc/rc.d/rc
| * 自启动程序管理、手工管理服务 /etc/rc.d/rcN.d(N=0-6) | 启动X Window /etc/X11/prefdm
GRUB
内核启动程序存放目录 /boot
配置文件 /boot/grub/grub.conf:
#缺省启动项 default=0
#超时时间 timeout=5
#引导时背景图片 splashimage=(hd0,0)/boot/grub/splash.xpm.gz
#隐藏菜单,此项可去掉 hiddenmenu
#可以设置密码 命令:grub-md5-crypt
#password --md5 yourpassword
#系统启动项标题 title CentOS (2.6.32-220.el6.i686)
#boot目录所在硬盘分区 root (hd0,0)
#将要启动的内核,在结尾加上空格s或1即可进入单用户模式
#vmlinuz-2.6.32-220.el6.i686
#中间数6,基数为测试版,偶数为正式版 kernel /boot/vmlinuz-2.6.32-220.el6.i686 ro root=UUID=fcfd578b-b174-496a-9412-bf5da64e8217 nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD quiet rhgb crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM
#镜像文件 initrd /boot/initramfs-2.6.32-220.el6.i686.img
单用户模式-root密码忘了?
e-进入GRUB菜单
e-进入详细菜单
选择kernel行,e-进入GRUB编辑状态,在末尾空格
进入单用户模式:passwd root 退出:exit(回到默认运行等级)
GRUB加密
grub-md5-crypt
将得到的md5密码放在grub.conf的password --md5 加密密码
inittab:
# Default runlevel. The runlevels used are:
# 缺省运行等级. 运行等级有:
# 0 - 关机(设了此项会无法启动)
# 1|s|S - 单用户模式,只有root能登陆
# 2 - 字符多用户模式(不启动NFS,NFS-Network File System,实现Linux/UNIX的文件共享,安全性差)
# 3 - 字符多用户模式
# 4 - 自定义
# 5 - 图形多用户模式(X11 X11R6 XFree86)
# 6 - 重启(设了此项会一直重启)
#id:runlevels:action:process
#id-行标记,runlevels-如果为空代表所有运行级别都执行,action-执行的要求或形式 #process-执行的操作(命令或脚本) id:3:initdefault:
切换运行级别: init 运行级别
查看运行级别: runlevel
rc.d(r-resource,c-contral,d-deamon)
/etc/rc.d/rc.sysinit --> 用于初始化系统
/etc/rc.d/rc --> 用户启动缺省运行等级
/etc/rc.d/rc(0-6).d --> 定义各个运行等级所要启动的服务程序
此目录下的文件特征:
例:S08iptables
大写S开头的标识需要启动的服务
--> 启动时
大写K开头的标识需要关闭的服务
--> 此项用户切换运行级别时
数字08代表启动优先级,如果数字一样,则根据文件创建时间排序
iptables --> 服务名称
chkconfig 查看和设置服务
1.查看: chkconfig --list 服务名
2.设置: chkconfig --levels 运行级别 服务名 on|off
nvsysv 针对运行级别设置
ntsysv --level 运行级别
/etc/rc.d/init.d 保存系统所有服务启动脚本
start|stop|restart 启动|关闭|重启
reload 重新加载配置文件
status|fullstatus 进程状态
httpd: configtest 检查语法错误
/etc/rc.d/init.d/httpd start = /etc/init.d/httpd start
= service httpd start (UNIX不支持)
init 进程的PID恒为1(PID-process ID,PID一般都是随机分配的)
PPID-Parent Process ID 父进程
PID为0的是内核调度器
现代的cpu一般都是分时的
进程树:
父进程终止,子进程自动终止
孤儿进程(父进程终止了,子进程没有终止)--父进程指向init
僵尸(Zombie)进程(没有指向任何父进程)
ps -le | more 查看当前进程状态