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不一样 多任务系统中, 内核负责管理各个任务, 或者说 ...
随机推荐
- 调用线程必须为 STA,因为许多 UI 组件都需要
WPF中,代码中准备控制控件内容时,有时会报错: 调用线程必须为 STA,因为许多 UI 组件都需要 我知道,在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一些 ...
- 【Aladdin Unity3D Shader编程】之四 贴图纹理
关于纹理贴图介绍 纹理坐标也叫UV坐标,UV坐标都是0~1,并不是我们所理解的像素坐标,相当于是一个百分比. 编写shader映射纹理 将纹理的颜色取代漫反射的颜色 Shader "Alad ...
- RDA 字库制作
制作韩语字库为例: 1.韩语UNICODE 范围 TV_IDF_uni_korean.txt [01fa,] [02c6,02c7] [02c9,02ca] [02cd,02cd] [02d8,02d ...
- bzoj3663
几何+lis 很巧妙.直接做很困难,那么我们转化一下,把每个点能看见的圆弧画出来.只有这些圆弧相交时才满足条件. 那么也就是找出圆上尽量多两两相交的区间. 所以我们先按左端点极角排序,然后固定一个必须 ...
- 37. ext 中sm什么意思
转自:https://zhidao.baidu.com/question/112450217.htmlsm是SelectionModel的缩写默认为RowSelectionModel其他模式还有Che ...
- phpexecl 的基本操作
基本使用方法分三部分:一.引入接口 // PHPExcel_IOFactory require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory. ...
- python抢票开发——设备预约助手实现
女朋友是药学院的,做实验时需要在特定的网站上进行设备预约,由于预约人数过多,从而导致从浏览器登录不进去或者登录进去预约失败等情况,所以我用python帮她写了一个抢位助手,让程序自动去进行位置预定,实 ...
- 329 Longest Increasing Path in a Matrix 矩阵中的最长递增路径
Given an integer matrix, find the length of the longest increasing path.From each cell, you can eith ...
- [转]linux之cut命令的用法
转自:http://www.jb51.net/article/41872.htm cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整 ...
- CSS布局——三栏布局
说到三栏布局,很多都会提到圣杯布局和双飞翼布局这两个经典的三栏布局方式.于是,我在网上搜了一些相关资料,阅读并跟着代码敲了一遍,发现在处理三栏布局上,他们采用的都是两边栏固定,中间栏自适应的策略.在处 ...