您的位置:首页 > 运维架构 > Linux

linux 详细启动流程

2011-05-20 22:21 281 查看
先上一张图,就是上一期的某位同学做的,很是明了,借来这里



然后我们细说系统的启动 system initialization

前言:要详细了解你的系统启动过程,必须清楚你的版本,对于redhat来说查看/etc/redhat-release下
# cat etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
uname可以查看其他系统信息 其选项有-a -r -o -m等
说完系统信息说说系统级别
chkconfig --list可以查看服务在各个级别下的状态 后跟上服务名称就可以查看某个特定服务的状态
各个服务在个级别下的的设定chkconfig --level LLLL service on|off | reset
例如 chkconfig --level 2345 ip6tables off 关掉ip6 在2345
确定操作的是2345 则--level 2345 可省略 直接 chkconfig ip6tables off
接着说明系统服务 有两类:
standalone deamon 独立守护进程 实时在后台运行
transient deamon 短暂守护进程 代理人 à需:超级守护进程 帮忙管理这些进程
超级守护进程叫xinetd --> yum install xinetd -->service xinetd start
注意 service 启动一个人服务 和chkconfig下的状态没有关系 chkconfig只关注下次开机是否会启动
chkconfig rsync on

ntsysv 打开窗口化服务管理
--level 对应级别下的on off 不指定级别默认是对当前级别生效

开机流程
post (BIOS cmos)à boot sequence +MBR(master boot record)bootloader 一个扇区大小
其中MBR 前446 BOOTLOADER 后64 fstab(磁盘分区表) 其中每16个字节标示一个分区 最后两个字节 封装代码àkernel à init(/etc/inittab)àlogin 完成
其中的bootloader
LILO (linux Loader)
grub(grand Unified Bootloader)
MBR 446byte 第一段à /boot/grub/
启动时的初始界面通过etc/grub.conf定义
default=1à默认启动第几个,按title排序
timeout=5à超时时间
splashimage=(hd0,0)/grub/splash.xpm.gz图片
title Red Hat Enterprise Linux Server (2.6.28.10)
root (hd0,0)定义分区
kernel /vmlinuz-2.6.28.10 ro root=/dev/vol0/root rhgb quiet 内核文件
initrd /initrd-2.6.28.10.img
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vol0/root rhgb quiet
initrd /initrd-2.6.18-164.el5.img
title Install Red Hat Enterprise Linux 5
root (hd0,0)
kernel /vmlinuz-5 ks=http://192.168.0.254/workstation.cfg ksdevice=eth0 noi pv6
initrd /initrd-5
password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m.

GRUB 识别硬盘分区都以 hd开头表示(hd0, 0)

grub > root(hd0,0)
find / 看是否有vmlinux开头的文件 两次tab
kernel /vmlinux-verion
initrd /initrd-version
boot
我们可以破坏grub
二进制拷贝dd bs 块大小1k count几块
bs=1k count=2
/dev/zero /dev/urandom 0设备 随机设备
dd if=/dev/zero of=/dev/sda bs=446 count=1
sync然后按上面说的手动搞grub
grub root (hd0,0) setup (hd0) quit 或 grub-install --root-directory /dev/sda
通过grub我们可以进级别1而改密码,所以给grub加密码是必要的
grub-md5-crypt
passwd --md5 @加密的密码
只给内核加密码是没有用的,我们可以编辑grub改密码
grub引导之后系统开始启动init进程,该进程的配置文件时/etc/inittab。
init进程的顺序:
1. 设定默认运行的等级
2. 启动系统初始化脚本rc.sysinit
3. 执行运行级别下的每一个脚本
4. 设定ctrl+alt+del组合键的功能
5. 设定电源故障时执行的脚本
6. 设定要启动的虚拟控制台/dev/tty[1-6]
7. 设定当指定运行级别为5时做GUI初始化脚本
之后系统启动完成。启动rc.sysinit的过程有:
1. 激活udev和SElinux
2. 设置内核参数/etc/sysctl.conf
3. 设置系统时钟
4. 装载键盘映射
5. 启动交换分区
6. 设置主机名,/etc/sysconfig/network
7. 根文件系统并重新以读写方式挂载根文件系统
8. 激活RAID和LVM设备
9. 启动磁盘配额
10. 检查并挂载其它文件系统,/etc/fstab
11. 清楚不再使用锁和PID文件
在执行一定等级时,启动的脚本在/etc/rc.d/下对应等级rcN.d目录下,以S开头的脚本,同理关闭的脚本是以K开头的脚本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: