设为首页 收藏本站
查看: 337|回复: 0

[经验分享] linux系统启动流程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-16 09:12:26 | 显示全部楼层 |阅读模式
PC:OS(Linux)
POST(加电自检)-->BOIS(Boot Sequence)-->MBR(Bootloder,446字节)-->Kernel(内核)-->initrd-->/sbin/init

运行级别:0-6 启动的服务不同
    0:halt    关机
    1:single user mode    单用户模式,直接以管理员身份登入
    2:muli user mode    多用户模式,不启用NFS
    3:multi user mode    多用户模式,文本模式不启用图形界面
    4:reseved    保留级别,尚未启用
    5:muti user mode    多用户模式,图形界面
    6:reboot    重启

查看运行级别
runlevel
who -r
[iyunv@localhost ~]# runlevel
N 3
N:表示前一个级别

查看内核release号
    uname -r


详解启动过程
bootloader(MBR)
    LTLO:LInux LOader
    GRUB:GRand Unified Bootloader
        Stage1:MBR    第一阶段
        Stage1.5:识别文件系统
        Stage2:/boot/grub/    第二阶段

grub.conf的每项意义
default=0    设定默认启动的title的编号,从0开始
timeout=5    等待用户选择的超时时长,单位是秒
splashimage=(hd0,0)/grub/splash.xpm.gz    grub的背景图片
hiddenmenu    隐藏菜单
#为grub加密
password --md5 密码
title CentOS (2.6.18-308.el5)    内核标题或操作系统名称,字符串,可自由修改
        root (hd0,0)    内核文件所在的设备,对grub而言,所有类型硬盘一律为hd,格式为(hd#,N):hd#表示第#号磁盘,N表示对应磁盘的分区
        kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/ rhgb quiet    内核文件路径以及传递给内核的参数(可以查看/proc/cmdline)
        initrd /initrd-2.6.18-308.el5.img    ramdisk文件路径

grub-md5-crypt可以生成一个密码

破坏grub:
dd if=/dev/zero of=/dev/sda count=1 bs=400
sync
安装grub stage1
#grub
grub>root (hd0,0)
grub>setup (hd0)   #安装
grub>quit

安装grub第二种方式
#grub-install --root-directory=/boot的父目录 硬盘

系统/boot/grub/grub.conf文件丢失
grub>find (hd#    TAB键   

    >root (hd#,N)

    >kernel /vm... ro root=/dev/sda#

    >initrd /init...

    >boot

kernel初始化的过称
1、设备探测
2、驱动初始化(从initrd文件中装载驱动模块)
3、以只读挂载根文件系统
4、装载第一个进程init(PID:1)

/sbin/init    (/etc/inittab)
    upstart: ubuntu开发

    systemd:


cat /etc/inittab

    id:3:initdefault:
id:runleves:action:process
id:标识符
runlevels:在哪个级别运行此行
action:在什么情况下执行此行
process:要运行的程序

action的种类
initdefault:设定默认运行级别
sysinit:系统初始化
wait:等待级别切换至此级别时执行
ctrlaltdel:重启
powerfail:断电
powerokwait:断电之后又来电
respawn:一旦程序终止会重新启动

/etc/rc.d/rc.sysinit完成的任务
1、激活udev和selinux
2、根据/etc/sysctl.conf文件来设定内核参数
3、设定系统时钟
4、装载键盘映射
5、启用交换分区
6、设置主机名
7、根文件系统检测,并以读写方式重新挂载

8、激活RAID和LVM设备
9、启用磁盘配额
10、根据/etc/fstab,检查并挂载其他文件系统
11、清理过期的锁和PID文件

[iyunv@localhost init.d]# less abrtd
#!/bin/bash
# chkconfig: 35 82 16
# description: Saves segfault data, kernel oopses, fatal exceptions

chconfig:runlevels SS KK
    当chkconfig命令来为此脚本在rc#.d目录创建链接时,runlevels:-表示,没有级别默认为S*开头的链接,runlevels表示默认创建为S*开头的链接,除此之外的级别默认设置为K*开头的链接;S后面的启动优先级为SS所表示的数字;K后面关闭优先次序为KK所表示的数字。
description:用于说明此脚本的简单功能:\,续行

chkconfig --list 查看所有独立守护服务的启动设定
chkconfig --add  SERVER_NAME 添加服务
chkconfig --del SERVER_NAME 删除服务
chkconfig --level RUNLEVELS SERVER_NAME {on|off}


创建独立守护进程(
vim myserver.sh
#!/bin/bash
#chkconfig:2345 77 22
#description:test server

lockfile=/var/lock/subsys/mychkconfig

status() {
if [ -e $lockfile ]; then
    echo "Running.."
else
    echo "Stopped."
fi
}

usage() {
echo "`basename $0` (start|stop|restart|status)"
}
case $1 in
start)
    echo "starting..."
    touch $lockfile
;;
stop)
    echo "stoping..."
    rm -f $lockfile &> /dev/null
;;
status)
    status
;;
restart)
    echo "restarting..."
;;
*)
    usage
esac

mv myserver.sh /etc/rc.d/init.d/myserver
chckconfig --add myserver


/etc/rc.d/rc.local:系统最后启动执行的一个脚本

/etc/inittab的任务:
1、设定默认运行级别
2、运行系统初始化脚本
3、运行指定运行级别对应的目录下的脚本
4、设定Ctrl+Alt+Del组合键的操作
5、定义UPS电源在电源故障/恢复时执行的操作
6、启动虚拟终端(2345级别)
7、启动图形终端(5级别)

守护进程的类型
    独立守护进程

    xinetd:超级守护进程

        瞬时守护进程:不需要关联至运行级别

yum install xinetd -y    安装超级守护进程

chroot:切换根
ldd:显示二进制文件所依赖的库

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-24855-1-1.html 上篇帖子: Linux -- 配置Samba加入Windows活动目录,实现Windows中DFS功能 下篇帖子: Linux -- Samba之SWAT(Web服务器和CGI脚本应用程序) linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表