一、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目录下的配置
  1. systemd 执行默认target 配置,配置文件/etc/systemd/system/default.target
  2. systemd 执行sysinit.target 初始化系统及basic.target 准备操作系统
  3. systemd 启动multi-user.target 下的本机与服务器服务
  4. systemd 执行multi-user.target 下的/etc/rc.d/rc.local
  5. systemd 执行multi-user.target 下的getty.target及登录服务
  6. 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之内核管理及故障排错的更多相关文章

  1. Linux 常见的trouble shooting故障排错

    Linux 常见的trouble shooting故障排错 备份开机所必须运行的程序对一个运维人员来说是非常有必要的.在实际生产环境中,系统和数据基本都是安装在不同的硬盘上面,因为企业最关心的还是数据 ...

  2. 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 ...

  3. linux系统日常管理

    笔者在前面介绍的内容都为linux系统基础类的,如果你现在把前面的内容全部很好的掌握了,那最好了.不过笔者要说的是,即使你完全掌握了,你现在还是不能作为一名合格的linux系统管理员的,毕竟系统管理员 ...

  4. lesson - 12 Linux系统日常管理1

    监控系统状态 – w, vmstat命令w, uptimesystem load averages 单位时间段内活动的进程数 查看cpu的个数和核数vmstat 1vmstat 1 10vmstat各 ...

  5. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例

    Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...

  6. Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例

    Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...

  7. Linux操作系统启动故障排错之/boot目录被删除恢复案例

    Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...

  8. Linux 0.12 内核管理存储器

    Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出 ...

  9. Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)

    1 非抢占式和可抢占式内核 为了简化问题,我使用嵌入式实时系统uC/OS作为例子 首先要指出的是,uC/OS只有内核态,没有用户态,这和Linux不一样 多任务系统中, 内核负责管理各个任务, 或者说 ...

随机推荐

  1. Scroller的应用--滑屏实现

    1.Scroller源代码分析 以下是对Scroller源代码的分析,并附有源代码.例如以下: package android.widget; import android.content.Conte ...

  2. cojs 1175. [顾研NOIP] 旅游电车

    1175. [顾研NOIP] 旅游电车 ★★☆   输入文件:buss.in   输出文件:buss.out   简单对比时间限制:1 s   内存限制:256 MB [问题描述] Henryy国正致 ...

  3. Timus 1009. K-based Numbers

    1009. K-based Numbers Time limit: 0.5 secondMemory limit: 64 MB Let’s consider K-based numbers, cont ...

  4. XAML实例教程系列 - 依赖属性和附加属性(四)

    XAML实例教程系列 - 依赖属性和附加属性 2012-06-07 13:11 by jv9, 1479 阅读, 5 评论, 收藏, 编辑 微软发布Visual Studio 2012 RC和Wind ...

  5. jQuery Uploadify在ASP.NET MVC3中的使用

    1.Uploadify简介 Uploadify是基于jQuery的一种上传插件,支持多文件.带进度条显示上传,在项目开发中常被使用. Uploadify官方网址:http://www.uploadif ...

  6. POJ 1273 Drainage Ditches 最大流

    这道题用dinic会超时 用E_K就没问题 注意输入数据有重边.POJ1273 dinic的复杂度为O(N*N*M)E_K的复杂度为O(N*M*M)对于这道题,复杂度是相同的. 然而dinic主要依靠 ...

  7. DVB条件接收系统多密技术的设计与实现

    1相关技术比较 1.1DVB同密 DVB同密技术的目的是将两家或两家以上的CA系统应用于同一网络平台中,从电视台角度实现技术的选择和竞争的环境.同密允许在传输的同一套节目流中携带由不同CAS生成的多个 ...

  8. bzoj3663

    几何+lis 很巧妙.直接做很困难,那么我们转化一下,把每个点能看见的圆弧画出来.只有这些圆弧相交时才满足条件. 那么也就是找出圆上尽量多两两相交的区间. 所以我们先按左端点极角排序,然后固定一个必须 ...

  9. ACM_迟到的祝福(四)

    迟到的祝福(四) Time Limit: 2000/1000ms (Java/Others) Problem Description: 据说前几天是雁来师姐的生日,作为一个15级的小鲜肉A,没及时给师 ...

  10. [转]android-学习笔记之按钮事件

    本文转载自: http://zhangkun716717-126-com.iteye.com/blog/761080 前备知识: 1.需要了解怎么得到界面元素. 那么如何得到界面元素呢?在界面配置文件 ...