- 开机预览
- BIOS的初始化
- Boot Loader(GRUB是一个例子)
- GRUB和grub.conf (GRUB的全称 是 the Grand Unified Booterloader)
- grub管理程序可以执行拿些命令
- Kernel 初始化
- init初始化的工作
- Run Levels 运行等级
- /etc/rc.d/rc.initsys
- /etc/rc.d/rc
- Daemon Processes
- System v 脚本
- /etc/rc.d/rc.local
- Virtual consoles
- 控制服务
- Service 可以立即启动或停止
- chkconfig可以立即启动或停止(不对,这个只有在下一次启动后有效,会不会它错了)
- System-config-service
- 关机
- 重启动
UNIT2 系统初始和服务--开机流程
(1)BIOS
(2)MBR
在硬盘第一个serctor,共512bytes,其中446字节是启动程序。
(3)kernel主要是加载系统驱动程序,挂载根分区。因此下列目录与根目录在同一分区上
/
/etc
/bin
/sbin
/dev
/lib
(4)init 是REDHAT中第一个执行的程序
它会执行下列程序
/etc/rc.d/rc.sysinit
/etc/rc.d 和/etc/rc.d/rc?.d/
/etc/rc.d/rc.local
X Display Manger
被安装驱动器的MBR里
被安装在分区的启动扇区里。
(1)Boot loader的stage 1 只有446个字节
(2)stage 2 是从启动分区加载
例 :下图系统在硬盘上的安装位置及分区
第一种 情况:从LINUX启动
屏幕剪辑的捕获时间: 2010/5/15 22:57
Stage 1安装在MBR的前446个字节里
屏幕剪辑的捕获时间: 2010/5/15 22:58
载入后,载入启动分区的stage 2显示GRUB的菜单
屏幕剪辑的捕获时间: 2010/5/15 23:00
加载KERNEL
屏幕剪辑的捕获时间: 2010/5/15 23:01
第二种 情况,从WINDOWS启动
(1)先加载MBR的前446字节,即stage 1
屏幕剪辑的捕获时间: 2010/5/15 23:03
(2)第二步,加载stage1后,找到启动分区,加载stage2,显示grub的菜单。
屏幕剪辑的捕获时间: 2010/5/15 23:04
(3)在GRUB菜单中,选择WINDOWS的话,就加载WINDOWS 2003的KERNEL
屏幕剪辑的捕获时间: 2010/5/15 23:06
第三种情况,MBR中写入了SPF DISK开机管理程序
屏幕剪辑的捕获时间: 2010/5/15 23:08
想动LINUX的过程如下
屏幕剪辑的捕获时间: 2010/5/15 23:09
屏幕剪辑的捕获时间: 2010/5/15 23:09
屏幕剪辑的捕获时间: 2010/5/15 23:10
(1)可以在启动命令行输入命令指令
在界面上按c,就可以输入命令
(2)GRUB可以支持以下文件系统开机
Ext2/ext3
ReiserFS
JFS
FAT
Minix
FFS
(3)提供MD5密码保护
配置文件为/boot/grub/grub.conf 修改grub.conf的配置,则立即生效
如查GRUB在MBR被清除,可以使用命令
/sbin/grub-install /dev/had重新安装
Grub.conf的内容及语法
Grub.conf的位置/boot/grub/grub.conf
注意:磁盘表示方式
(hd0,0)
hd0:表示第一个硬盘
0 :表示每一个硬盘上的第一个分区
全局设置
default = 0
:表示从第一个选项启动,在默认情况下
Timeout =5
:表示等待时间为5秒
spalashimage = (hd0,0)/grub/splash.xpm.gz
:表示开机图片
hiddenmenu
:隐藏开机菜单
菜单选 项
Title :是开机菜单的显示文字
root (hd0,0) :指明kernel等文件在那一个分区上
kernel /vmliunz-2.6.9.5.EL ro root=LABEL=/ rhbg quiet
kernel 文件的启动 ro 只读
Root = LABLE=/ :指明根目录的位置,root参数就是要指明根目录。
rhbg ; Red Hat graphical boot,图形界面启动;若要文件界面,删除rhbg
quiet: 出现错误信息不提示。若要显示错误信息提示,则删除quiet
initrd /initrd-2.6.9-5.EL.img
这个是包括驱动程序的文件。加载这个文件。
这些文件kernel , initrd文件的实质是什么?如果去产生他们。
c 是命令行
a 是在kernel这一行加参数
e 是编辑开机设定
b可以按编辑好的开机参数进行启动
kernel 后如果用1 这个参数表示用 user single mode
kernel /vmliunz-2.6.9.5.EL ro root=LABEL=/ 1
这条命令的后面的数字,是运行等级的意思
user single mode ,不用输入linux的密码
在这个模式下,直接可以使用passwd直接修改root密码
就可以恢复。
若生怕用户随便进行GRUB,所以可以使GRUB加上密码
在grub.conf中加入
password redhat :redhat是密码\
启动后就发现,按p输入密码后,才能进行密码,执行上述的步骤
使用GRUB MD5密码
在命令行下面执行
grub-md5-crypt
屏幕剪辑的捕获时间: 2010/5/16 16:22
产生MD5密码
然后在配置文件中使用
password --md5 <加密的密码>
(1)检测设备
(2)加载设备驱动
(3)将根目录以read only 的方式,挂载进来
(4)执行init程序
其实init是读取/etc/inittab的配置文件
根据文件要执行下列内容
(1)决定运行等级
屏幕剪辑的捕获时间: 2010/5/16 16:30
(2)系统初始化脚本
/etc/rc.d/rc.sysinit
(3)根据运行等级的要求,执行对应目录里的脚本
/etc/rc.d/rc x --> /etc/rc.d/rc5.d下面所有的程序
(4)设定组合键
Ctrlatldel
(5)定义UPS电源动作
屏幕剪辑的捕获时间: 2010/5/16 16:52
上面就是设定,当UPS断电时,关机
屏幕剪辑的捕获时间: 2010/5/16 16:53
如果关机过程中,电源又恢复,则撤消关机动作
(6)产生6个终端
(7)如果是5,则会启动X windows环境
屏幕剪辑的捕获时间: 2010/5/16 16:56
0:关机,所以不能设为inittab中,否则一开机就关机
1,s, emergency:single-user mode 只允许root用户登录
Level1:init --> /etc/rc.sysinit -->/etc/rc1.d
Level s : init --> /etc/rc.sysint
Level emergency init --> some /etc/rc.sysinit
2:多用户,但没有NFS网络
3: 完全多用户登录,包括网络,文本模式
4: 用户自定义,默认情况下与3相同
5: 多用户图形界面,X WINDOWS,其他与3相同
6: 重启动。也不能设定在initdefault中
Run level 特性
Run level 是使用init的定义来决定使用什么等级
run level 可以通过以下几个地方来进行设置
(1)可以在/etc/inittab中设置
(2)可以在boot loader中转一个参数给kernel(前面已经做过)
(3)在启动后进入后, 用init <level>
/sbin/runlevel 显示当前的等级,和前一个运行等级
一个脚本,设定一下环境变量
(1)激活USB等热插拔界面,与selinux
(2)设定kernel参数,这些参数是在/etc/sysctl.conf
(3)设定系统时间
(4)加载键盘图,定义键盘
(5 )启动swap分区
(6)设置主机名
(7)根文件系统的检查与重新挂载
(8)激活RAID和LVM设备
(9)启用磁盘配额
(10)检查和挂载其他文件系统
(11)清除一些locks和PID文件,即清除开机时的文件。
就是根据运行等级来启用对应rc.d所对应的目录里的脚本,来决定启用那些服务。
/etc/rc.d/rcX.d的目录里,S开头的是需要启动的。K开头是关机脚本
其实就是在后台运行的程序,它们提供一些系统的服务
两种 Daemon
(1)独立的 standalone
(2)transient 由xinetd来进行控制
两者差别是提供服务方式上的差别
Standalone:服务开启,始终监听,用户请求,服务响应。
Transient: 服务不是始终开启,用户请求,由xinetd响应,由它去请求相应的服务给用户。
Netstat -tupln
standalone分为两种
(1)开机时直接启动的。
(2) system V 的Daemon
EX:httpd
每个运行等级定义了可以启动的服务
每个RUN level 都有相应的目录
用于系统初始化的脚本都是存放在/etc/rc.d/init.d这个目录里
对应的run level目录里,都做了相应/etc/rc.d/init.d目录下脚本的符号连接
链接脚本的名称格式
每个链接名称分为这个部分
K 09 ypserv
kill 缩写 执行的先后顺序
结束这个服务
S 08
要启用相应服务
默认上,会先执行k ,再执行s
启动服务是用一个脚本加参数
例 :
/etc/rc.d/init.d/httpd start
/etc/rc.d/init.d/httpd stop
启动完rcX.d的目录脚本后,都会执行rc.local
屏幕剪辑的捕获时间: 2010/5/16 23:05
上图中。S代表启用,99代表最后执行
修改rc.local这个文件,将2-5运行等级都执行的程序要在rc.local
是init的第四步
/etc/mingetty tty1
定义在/etc/inittab的文件中
切换用 ctrl + alt + F_key
虚拟终端的设置 文件是/dev/ttyn : n代表编号
/etc/tty0:代表当前的tty
tty
查看当前的tty编号
Echo 111>tty3
在redhat里,有以下RED HAT的设置
12个虚拟终端被定义
1-6可以登录
F7:是图形
f8-f12 :tty8-tty12不允许做登录
(1)控制预设自动启动
1) ntsysv : 在虚拟终端也可以使用
文本的图形界面
若ntsysv后不加参数,预置只会设置当前运行等级
若设置其他等级的
ntsysv --level 35,
2)chkconfig 可以快速设定
Chkcofig gpm --level 123 off
Chkconfig --list | grep gpm
Chkconfig gpm --list
查询服务等级
Ls -l /etc/rc*.d/*.gpm
可以看到他们开头的脚本都会变为K
3) system-config-service:这个工具是图形界面,只能在X WINDOW使用。
(2)手工启动服务
四条命令可以关机
shutdown -h now
halt
poweroff
init 0
例:
Shutdown -h 22:00 10点关机
关机会进行同步 sync
同步是将内存的数据写入到硬盘里
Shutdown -r now
Reboot
Init 6
Ctrl + alt + del(虚拟终端)