Linux之内核管理及故障排错
一、Centos6启动流程:
- 加电自检PSOT
- 引导加载器BootLoader
- MBR(GRUB第一阶段)||(GRUB第1.5阶段)(GRUB第2阶段)
- 加载内核(vmlinuz、initramfs)
- mount /,启动第一个程序/etc/inittab
- etc/rc.d/rc.sysinit---->>/etc/rcX.d/K*/S*
- /etc/rc.local
- mingetty login,windows
1、POST
Power-On-Self-Test:加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统等硬件情况的检测。
BIOS:Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等。
2、BootLoader
引导加载器,Windows使用的bootLoader是ntloader,只可以引导Windows系统;Linux使用的bootloader早期有LILO(LInux LOader),现在6系列用的GRUB0.97版,7系列使用的是GRUB2。
3、GRUB
grub总共分为三个阶段:
第1阶段:存放在MBR前446个字节
第1.5阶段:1.5阶段存放在1-27扇区;由于grub1阶段需要去读取grub2阶段的程序和配置文件,但是grub2阶段的程序存放在磁盘的/boot分区中,想要读取分区中的文件就必须要有驱动文件系统的驱动模块,1.5阶段就是来做这件事的。
第2阶段:存放在磁盘的/boot分区上(/boot/grub/),启动时选择内核版本界面,还有配置文件都是由第2阶段负责。
4、加载内核
在grub2阶段只能识别到boot分区,内核初始化后;
vmlinuz内核文件借助文件驱动来挂载真正的根系统,initramfs识别文件驱动系统
5、挂载根,/etc/inittab
init程序启动系统的第一个进程init,它负责创建系统启动后的所有服务进程
init程序的类型:CentOS5.x:SysV;CentOS6.x:Upstart;CentOS7.x:Systemd
初始化的相关文件:
/etc/inittab:定义系统默认的启动级别 id:3:initdefault:
6、/etc/rc.d/rc.sysinit
系统初始化脚本,包括主机名、欢迎信息、挂载的文件系统、lvm和raid等
7、/etc/rcX.d/K*/S*
根据系统的启动级别来执行相关开机启动和禁止服务
K*:运行次序;数字越小,越先运行;数字越小的服务,通常为依赖到别的服务
S*:运行次序;数字越小,越先运行;数字越小的服务,通常为被依赖到的服务
8、/etc/rc.local
系统启动最后一个进程,在所有启动脚本执行完成后执行此脚本,可以把开机时自动运行的命令放入该脚本来执行。
管理工具:
chkconfig
--list 查看
--level ##:指定级别,默认为2 3 4 5
--add 将脚本加入对应的级别(需要将脚本放到/etc/rc.d/init.d/目录下,并且在脚本开头加上chkconfig: 启动级别 关闭优先级 开启优先级),一般“关闭优先级 + 开启优先级 = 100”
--del 删除对应级别脚本
+servername on/off 开启或关闭服务
service 服务名 { start | stop | restart }
--status-all 查看所有服务的状态
ntsysv:字符界面工具,用来设置开启自启的服务
xinetd
超级守护进程;配合chkconfig来使用
二、Centos7启动流程
- post
- mbr
- grub2
- systemd init
- initrd.target所有单元,包括挂载/etc/fstab
- 从initramfs根文件系统切换到磁盘根目录
- systemd执行/etc/systemd/system目录下的配置
- systemd 执行默认target 配置,配置文件/etc/systemd/system/default.target
- systemd 执行sysinit.target 初始化系统及basic.target 准备操作系统
- systemd 启动multi-user.target 下的本机与服务器服务
- systemd 执行multi-user.target 下的/etc/rc.d/rc.local
- systemd 执行multi-user.target 下的getty.target及登录服务
- systemd 执行graphical 需要的服务
由于Centos7启动流程较为复杂,不再做深究
systemd
系统启动和服务器守护进程管理器,负责在系统启动或运行时,激
活系统资源,服务器进程和其它进程
Unit
表示不同类型的systemd对象;
/usr/lib/systemd/system:每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/
/run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行
/etc/systemd/system:管理员建立的执行脚本,类似于/etc/rc.d/rcN.d/Sxx类的功能,比上面目录优先运行
其中unit类型中.service(用于定义系统服务)和.target(用于模拟实现运行级别)很重要;
管理工具:
systemctl:
命令:systemctl COMMAND name.service
启动:service name start ==> systemctl start name.service
停止:service name stop ==> systemctl stop name.service
重启:service name restart ==> systemctl restart name.service
状态:service name status ==> systemctl status name.service
chkconfig:
chkconfig命令的对应关系:
设定某服务开机自启:
chkconfig name on ==> systemctl enable name.service
设定某服务开机禁止启动:
chkconfig name off ==> systemctl disable name.service
切换至紧急救援模式:
systemctl rescue
切换至emergency模式:
systemctl emergency
暂时更新自认为常用的,后期碰见再修改。
centos6常见故障:
实验:破解root口令
开机进菜单项按a,输入1/s/S/signal临时进入命令行模式执行passwd命令即可。
实验: /etc/inittab 默认模式改为6,恢复
开机进菜单项按a,输入5临时进入图形模式再修改/etc/inittab文件即可。
实验:删除vmlinuz 文件,恢复之(启动页面出现error错误)
1)cp /mnt/isolinux/vmlinuz /mnt/sysimage/boot/vmlinuz-`uname -r`
2)chroot /mnt/sysimage; mount /dev/sr0 /mnt ; rpm -ivh /Packages-kernel-3.....
实验:grub.conf配置文件删除,恢复之
grub> kernel /vmlinuz-2...... root=/dev/sda
initrd /initramfs-2......
boot
实验:删除grub1 1.5 2阶段恢复
有无备份,有备份直接拷贝446字节主分区表(scp)
无备份,grub-install /dev/sda(boot分区位置)安装或ssh上传相同文件
实验:centos6逻辑卷上删除/etc/fstab 和/boot 分区,恢复
1)激活逻辑卷组 vgchange -ay
2)安装vmlinuz和initramfs文件;
3)安装grub文件和配置grub.conf文件
实验:centos6 rm -rf /sbin/init
scp上传相同文件即可。
实验:centos6 自制linux
1)准备一块新的硬盘,分区(/和boot),格式化
2)把需要的文件拷到新硬盘里
添加boot下的内核和驱动文件以及grub.conf和grub
3)添加/root下各种配置
4)/bin下添加命令脚本
centos7常见故障:
实验:破解grub2口令
启动时任意键暂停启动;按e键进入编辑模式;将光标移动linux16开始的行,改为rw init=/sysroot/bin/sh
;按ctrl-x启动;chroot /sysroot;passwd root;touch /.autorelabel;exit;reboot
实验:grub.cfg配置文件删除,恢复之
grub2-mkconfig > /boot/grub2/grub.cfg
实验:删除grub1 1.5 2阶段恢复
grub2-install /dev/sda(boot分区位置)
实验:centos7 删除/boot,恢复
grub2-install /dev/sda(boot分区位置);grub-mkconfig > /boot/grub2/grub.cfg
Linux之内核管理及故障排错的更多相关文章
- Linux 常见的trouble shooting故障排错
Linux 常见的trouble shooting故障排错 备份开机所必须运行的程序对一个运维人员来说是非常有必要的.在实际生产环境中,系统和数据基本都是安装在不同的硬盘上面,因为企业最关心的还是数据 ...
- centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课
centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ...
- linux系统日常管理
笔者在前面介绍的内容都为linux系统基础类的,如果你现在把前面的内容全部很好的掌握了,那最好了.不过笔者要说的是,即使你完全掌握了,你现在还是不能作为一名合格的linux系统管理员的,毕竟系统管理员 ...
- lesson - 12 Linux系统日常管理1
监控系统状态 – w, vmstat命令w, uptimesystem load averages 单位时间段内活动的进程数 查看cpu的个数和核数vmstat 1vmstat 1 10vmstat各 ...
- Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例
Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...
- Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例
Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...
- Linux操作系统启动故障排错之/boot目录被删除恢复案例
Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...
- Linux 0.12 内核管理存储器
Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出 ...
- Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
1 非抢占式和可抢占式内核 为了简化问题,我使用嵌入式实时系统uC/OS作为例子 首先要指出的是,uC/OS只有内核态,没有用户态,这和Linux不一样 多任务系统中, 内核负责管理各个任务, 或者说 ...
随机推荐
- 约瑟夫环问题(猴子选大王)PHP版
约瑟夫斯问题问题有时候也被描述成猴子选大王问题,题目如下.(最后会贴上约瑟夫问题的来历) 一群猴子排成一圈,按1,2,…,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再 ...
- tomcat的localhost_access_log日志文件
一.服务器打印日志要关闭hibernate的日志,首先要把hibernate.show_sql设置为false;然后设置log4j.properties. # Control logging for ...
- svn 运行clear up 失败的解决的方法
SVN 的clear up命令失败的解决方法 1. 下载 sqlite3.exe 文件,放到d盘根文件夹. (能够到这里下载 http://download.csdn.net/detail ...
- distpicker三级联动,动态改变省市信息
一.引入3个js文件 <script type="text/javascript" src="js/distpicker.data.js">< ...
- 24Pointgame-----24点游戏
题意简单 第一行是 测试数据有几组 然后分别有 几行 第一个数字是 有几个数字 第二个是 需要配出来的数字 下面附上我的代码 --- 我感觉 我这个代码 和其他人的都不一 ...
- Eclipse 添加 YAML插件
官网:https://github.com/oyse/yedit 离线版本:(链接: https://pan.baidu.com/s/1PJzkS1tI-VigZvfbYXUh9A 密码: gfep) ...
- ACM_小Z的A+B
小Z的A+B Time Limit: 2000/1000ms (Java/Others) Problem Description: 小Z最喜欢A+B了,没事就研究研究,比如什么大整数A+B(就是100 ...
- android UI 操作 不要在子线程中操作UI
不管是android ,还是 ios ,请不要在子线程中操作UI,有时有些崩溃,从报错上看不出什么原因,就有可能是子线程操作了UI:切记,切记! 请放在主线程例: activity.runOnUiTh ...
- day02_12/12/2016_bean的实例化之构造器方式
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区, ...