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 20:29
下一篇 2017-09-03 22:24

相关推荐

  • Memcached命令

    Memcache 的命令行用法: 1、启动Memcache 常用参数    memcached 1.4.3      -p <num>      设置端口号(默认不设置为: 11211)      -U <num> &nbsp…

    Linux干货 2015-05-18
  • Windows 10 VS. Linux

    原文出处: Linux中国 – zpl1025   前阵子 Windows 10 好像占据了绝大部分头条,甚至在一些Linux圈里也是一样。最具代表性的是 betanews.com 的 Brian Fagioli 说 Windows 10 已经为 Linux 桌面系统敲响了丧钟,Microsoft 如今宣布将为忠实的…

    系统运维 2015-03-24
  • 网络管理(三)之路由设置、网络组

    网络管理(三)之路由设置、网络组 一、网卡名称: 1、网络接口的识别命名udev配置文件:#vim /etc/udev/rules.d/70-persistent-net.rules 2、网卡查看:#dmesg | grep -i eth 或者#ethtool -i eth0            …

    Linux干货 2016-09-08
  • 跟着vimtutor走来认识vim

        一、前言        VIM是一款在vi上进行改进的功能性强大的,开源的文本编辑器。     二、vim的设计理念     vim的设计理念是组合;       命令组合:类似于linux的由一个个单一功能的程…

    Linux干货 2016-05-13
  • 一、循环语句:for, while, until 循环执行:将某代码段重复运行多次重复运行多少次:循环次数事先已知循环次数事先未知有进入条件和退出条件 1.for……do……done for 变量 in 列表 ; do    循环体done 执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中…

    Linux干货 2016-08-19
  • Homework Week-12 LAMP部署

    1、请描述一次完整的http请求处理过程;     http全称超文本传输协议,属于应用层协议;常见客户端应用是各种浏览器。     一次服务器端完整http请求处理过程:     (1)建立或处理连接:接收请求或拒绝请求;     (2)接收请求:接收来自于…

    Linux干货 2016-12-05