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不一样 多任务系统中, 内核负责管理各个任务, 或者说 ...
随机推荐
- 第一章、Tiny4412 U-BOOT移植一 说明【转】
本文转载自:http://blog.csdn.net/eshing/article/details/37520291 一.移植前说明: 1. 特别声明:此文档是我的学习文档,里面肯定有错误地方,仅供 ...
- go语言笔记——go是有虚拟机runtime的,不然谁来做GC呢,总不会让用户自己来new和delete进行内存管理吧,还有反射!Go 的 runtime 嵌入到了每一个可执行文件当中
2.7 Go 运行时(runtime) 尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime 包中找到)当中.这个 runtime ...
- 【POJ 3263】 Tallest Cow
[题目链接] http://poj.org/problem?id=3263 [算法] 若A和B两头牛可以互相看见,那么说明中间的牛的高度都至少比它们少1,因此,我们可以引入一个差分数组c 对于每组关系 ...
- luoguP2939 [USACO09FEB]改造路Revamping Trails
约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 速公路. ...
- Python三次登陆
题目:Python实现三次登陆 不要急于马上把三次登陆写出来,一定要将复杂的程序简单化,必须一步一步地去扩展,这样才保证不会出错. 步骤一:实现简单的一次登陆 # 事先定义 user = 'dark_ ...
- hibernate基础简单入门1---helloword
1:目录结果 2:实体类(student.java) package com.www.entity; public class Student { private int id; private St ...
- C. Searching for Graph(cf)
C. Searching for Graph time limit per test 1 second memory limit per test 256 megabytes input standa ...
- thinkphp调试手段
使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身 ...
- 4.28 QBXT模拟赛
NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 迷妹 膜拜 换数游戏 英文题目与子目录名 fans mod game 可执行文件名 fans mod game 输入文件名 ...
- Lua相关回调总结【转】
原文 http://www.zaojiahua.com/lua-callback-functions.html 最近做一个小项目,是用Lua写的,中间用到了很多的回调,基本Cocos中的那几种常用回调 ...