linux 启动管理

1、Linux系统启动流程:POST 加电自检 — BIOS(Boot Sequence)–>MBR(bootloader,446)(加载前512字节后的驱动程序,进入/boot目录,加载内核)–>Kernel–>initrd–>(系统根路径 /)(ROOTFS)/sbin/init(/etc/inittab)
2、init程序的类型:

SysV: init, CentOS 5 配置文件:/etc/inittab

Upstart: init,CentOS6 配置文件:/etc/inittab, /etc/init/*.conf

Systemd:systemd, CentOS 7 配置文件:/usr/lib/systemd/system;/etc/systemd/system

init读取其初始化文件:/etc/inittab

初始运行级别(RUN LEVEL)

0:halt 关机

1: single user mode, 直接以管理员身份切入 修改root密码

2:multi user mode, no NFS

3: multi user mode, text mode

4:reserved 保留

5: multi user mode, graphic mode

6: reboot

系统初始化脚本:/etc/rc.d/rc.sysinit

激活udev和selinux;

根据/etc/sysctl.conf文件,来设定内核参数;

设定时钟时钟;

装载键盘映射;

启用交换分区;

设置主机名;

根文件系统检测,并以读写方式重新挂载;

激活RAID和LVM设备;

启用磁盘配额;

根据/etc/fstab,检查并挂载其它文件系统;

清理过期的锁和PID文件;

对应运行级别的脚本目录

捕获某个关键字顺序

定义UPS电源终端/恢复脚本

在虚拟控制台生成getty

在运行级别5初始化X11

    切换runlevel:init #

    查看运行级别:runlevel: who -r

总结:/sbin/init–> (/etc/inittab) –> 设置默认运行级别–> 运行系统初始脚本、完成系统初始化–> (关闭对应下需要关闭的服务)启动需要启动服务–> 设置登录终端
在CentOS 6 init程序为: upstart, 其配置文件:/etc/inittab, /etc/init/*.conf,配置文件的语法遵循upstart配置文件语法格式
3、系统引导grub.conf

default=0  # 设定默认启动的title的编号,从0开始

timeout=5  # 等待用户选择的超时时长,单位是秒

splashimage= # grub的背景图片

hiddenmenu # 隐藏菜单

password xxxxxx / password –md5 编辑加密

title      # 内核标题,或操作系统名称,字符串,可自由修改

root (hd0,0)  # 内核文件所在的设备;对grub而言,所有类型硬盘一律hd,格式为(hd#,N);hd#,

         #表示第几个磁盘;最后的N表示对应磁盘的分区;

kernel        # 内核文件路径,及传递给内核的参数

initrd      # ramdisk文件路径

4、安装grub :(可修复破坏磁盘前446字节的情况)

# grub

grub> root (hd0,0)

grub> set (hd0)

安装grub第二种方式:(修复1.5阶段)

# grub-install –root-directory=/path/to/boot’s_parent_dir  /PATH/TO/DEVICE

5、Kernel初始化的过程:

设备探测

驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)

以只读挂载根文件系统;

装载第一个进程init(PID:1)

/sbin/init:(读取/etc/inittab)upstart:  systemd:  

id:runlevels:action:process

id: 标识符

runlevels: 在哪个级别运行此行;

action: 在什么情况下执行此行;

process: 要运行程序; 

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

ACTION:

initdefault: 设定默认运行级别

sysinit: 系统初始化

wait: 等待级别切换至此级别时执行

respawn: 一旦程序终止,会重新启动

/etc/rc.d/rc.sysinit:

##: 关闭或启动的优先次序,数据越小越优先被选定

先关闭以K开头的服务,后启动以S开头的服务;

6、chkconfig 

# chkconfig: runlevels SS KK  当chkconfig命令来为此脚本在rc#.d目录创建链接时,runlevels表示默认创建为S*开头的链接,-表示没有级别默认为S*开头的链接;除此之外的级别默认创建为K*开头的链接;

S后面的启动优先级为SS所表示的数字;K后面关闭优先次序为KK所表示的数字;

# description: 用于说明此脚本的简单功能; \, 续行

chkconfig –list: 查看所有独立守护服务的启动设定;独立守护进程!

chkconfig –list SERVICE_NAME

chkconfig –add SERVICE_NAME

chkconfig –del SERVICE_NAME

chkconfig [–level RUNLEVELS] SERVICE_NAME {on|off}

如果省略级别指定,默认为2345级别

原创文章,作者:cui,如若转载,请注明出处:http://www.178linux.com/86151

(0)
cuicui
上一篇 2017-09-03
下一篇 2017-09-03

相关推荐

  • Linux用户和组的主要配置文件及其相关命令

    Linux用户和组的主要配置文件: /etc/passwd:用户及其属性信息 /etc/shadow用户密码及其相关属性 /etc/group组及其属性信息 etc/gshadow组密码及其相关属性 /etc/passwd 1.用户名: 2.密码位:x pwconv (默认) 将密码映射到了/etc/shadow pwunconv 将密码保存到/etc/pa…

    2017-07-22
  • find命令详解

    find命令详解 实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找; 一、工作特性: 查找速度略慢; 精确查找,只查找文件路径的基名而非整个路径; 实时查找; 可能只搜索用户具备读取和执行权限的目录 二、 用法: find [查找起始路径] [OPTIONS] [查找条件] [处理动作] 查找起始路径:指定具体搜索目标起始路径;默认为当前目录…

    Linux干货 2017-03-19
  • Mysql cmake 编译安装、

    基于cmake的mysql安装 1.1 前言 从mysql5.5起,mysql源码安装的编译工具configure开始向cmake过渡。安装方式和之前的略有不同。在这里简单介绍总结下。 安装之前,检查下GNU make, GCC, Perl, libncurses5-dev,cmake-2.8.4是否都已经安装,如果没有安装,用yum install 安装补…

    Linux干货 2017-08-29
  • 马哥教育网络班第22期+第14周作业

    week14: 系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒; web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; 2、在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给172.16.0.0网络中的主机访问; 数据…

    Linux干货 2016-12-12
  • linux基础操作-week6

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp #vim /tmp/rc.sysinit 末行模式: :%s@^[[:space:]]\{1,\}@#&@g 匹配分析:  &nbs…

    Linux干货 2016-11-28
  • Linux基于PXE实现系统全自动无人值守安装

    前言 在生产环境中,我们时常会需要在多台客户端主机或服务器安装操作系统,如果每一台都去手动安装,费时费力,显然是不现实的。那么,如何高效的完成此类工作呢?文将讲解如何实现Linux系统的全自动无人值守安装。 提供PXE服务所需安装包 dhcp:动态主机配置协议,给客户端提供ip地址 tftp-server:tftp服务器端,提供系统安装所需文件 xinetd…

    Linux干货 2015-04-01