RHEL6启动原理和故障排除

1.1-Linux启动过程详解

1.2-常见的启动故障排除

                 1.2-1 实战-防止黑客破解root密码

                 1.2-2 实战-服务器挂机,转移数据

                 1.2-3 实战-修复磁盘I节点耗尽

                 1.2-4 实战-磁盘坏道检测

一 .Linux启动过程详解

其实就是转交系统控制权的过程

Linux操作系统的引导过程中一般包括一下几个步骤

开机自检àMBR引导àGRUB菜单à加载Linux内核àinit进程初始化à登录系统

BIOS -> MBR -> GRUB -> kernel -> initprocess -> login

1,服务器主机开始的时候,根据主板上的BIOS中对CPU 内存 显卡 键盘等设备进行初步检测,检测成功后根据CMOS预设的启动顺序移交系统控制权.

2,根据第一扇区的MBR主引导记录的设置,将系统的控制权交给包含操作系统的引导分区,或根据MBR记录中的引导信息调用启动菜单grub (MBR)

3,系统将控制权交给GRUB以后,将会显示启动菜单提供给用户选择,并根据所选项加载Linux内核文件,然后将系统的控制权交给内核.(GRUB)

4,内核获得系统的控制权以后,负责资源分配与调度,将完全掌握整个Linux操作系统的运行过程. (kernel)

5,由内核先将系统中的 /sbin/init 程序加载到内存中运行,完成初始化过程(init)

6.等待用户登录(login)

第一步--加载BIOS

因为BIOS中包含了CPU的相关 信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等等

第二步--读取MBR

硬 盘上第0磁道第一个扇区被称为MBR,也就是MasterBoot Record,即主引导记录,它的大小是512字节,可里面却存放了

预启动信息、分区表信息

可分为两部分:

第一部分为引导(PRE-BOOT)区,占了 446个字节;

第二部分为分区表(PARTITION PABLE),共有66个字节,记录硬盘的分区信息。


引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。

系统找到BIOS所指定的硬盘的MBR后,就会将其复制到地址所在的物理内存中。

其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是grub了。


第三步--Boot Loader

小程序 初始化硬件,建立内存空间

Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader,这里以Grub为例来讲解吧

系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。

第四步--加载内核

系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了


第五步init依据inittab文件来设定运行等级

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有X-Window支持的多用户模式

6:重新引导系统,即重启

切换运行级别:  init 运行级别  

查看运行级别: runlevel

第六步--init进程执行rc.sysinit

在设定了运行等级后,Linux系统执行的第一个文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、 设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

第七步--执行不同运行级别的脚本程序

根据运行级别的不同,系统会运行/etc/rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

运行级别 5  /etc/rc5.d

查看文件的内容  发现都是  以 K 或者是 S开头的信息

S 开机要启动的服务   K 开机不启动的服务  中间的是服务的名称   优先级


案例1:

查看服务的脚本

/etc/init.d/httpd

chkconfig: 2345  服务运行级别  10 启动优先级  90 关闭优先级    -所有级别

第八步--执行/etc/rc.d/rc.local

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

第九步--执行/bin/login程序,进入登录状态

此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了


常见的启动故障排除

每个人都可以,进入单用户模式,破解root密码。不安全

如何防止破解root密码?

grub加密

生成密文密码


grub配置文件 /boot/grub/grub.conf

注意加密后的密码的标点符号也得复制

加密方式有两种

grub-md5-crypt   #使用MD5加密方式#

grub-crypt            #使用sha-256方式加密,这种加密模式安全性更好一些#

根据位置不同

title前:密码是对GRUB加密

title后:密码是对开机加密

重启测试:

加密后原先按e建编辑失效,必须按p 输入对应的密码

这样就是防止随便有人破解ROOT密码

当我的服务器坏掉 进入一个基本的shell系统将数据全部cp,便于恢复

进入救援模式:

开机BIOS cdrom 优先

救援模式

语言

键盘类型

是否启动网络  NO 不需要网络

挂载的目录

你的基本的系统是挂载到了/mnt/sysimage 目录下,你可以去尽情的修改.

如果你要改变

挂载成功

启动一个shell环境

chroot  /mnt/sysimage   # 切换文件系统根

插入U盘  最好是FAT格式

我的U盘是空的

fdisk

加载模块  modprobe vfat 这是u盘的类型

验证我的U盘

文件打不开的需要转换格式

磁盘的I节点耗尽

当一个文件系统的磁盘I节点耗尽,将无法继续在该分区中创建新的文件数据,导致故障出现;

添加磁盘分区  32M  格式化

创建挂载点 /data  挂载

编写脚本模拟i节点耗尽

  1 #!/bin/bash
  2 i=1
  3 while [ $i -le 10040]
  4 do
  5 touch /data/file$i
  6 let i++
  7 done

注释

i=1  赋值  i=1

while     [条件 ] 条件循环语句  当i小于10040

do  执行的操作

创建file文件

let i++  整数运算

手动创建文件

[[email protected] ~]#touch /data/a.log
 touch: 无法创建"/data/a.log": 设备上没有空间

有容量的

[[email protected] ~]#df -hT /data
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda5      ext4   23G   45M   22G   1% /data

修复

找出该分区占用I节点大的细小文件 ,进行转移或删除 (建议为用户设置磁盘配额)

[[email protected] ~]#rm -rf /data/file*
[[email protected] ~]#df -i /data
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda5      1517760    42 1517718    1% /data

检测磁盘的坏道

分为两种

逻辑坏道:有软件操作不当造成,可以使用软件修复;

物理坏道:物理性损坏,更改磁盘分区的占用位置进行改善,排除掉坏的块

注意:如果硬盘出现坏道.若不及时修复或更换,坏道会越来越多,造成数据丢失.

情景:

读取磁盘中的数据时,磁盘设备发出异常的声响

访问某个文件时,反复读取却出错,提示文件损坏

新建立的分区无法执行格式化

使用磁盘的时候频繁死机

磁盘坏道检测

badblocks

-s 显示进度信息

-v 显示详情

时间: 2024-10-29 19:06:41

RHEL6启动原理和故障排除的相关文章

1-19-1 RHEL6启动原理和故障排除

大纲: 一.RHEL6系统启动原理 BIOS--->mbr--->bootloader--->内核--->init--->/etc/rc.d/rc.sysinit--->/etc/rc.d/rc[0-6].d--->/etc/rc.d/rc.local--->/bin/login 二.启动故障排除 1.防止恶意破解root密码(grub加密) 2.系统崩溃后,如何备份数据到U盘(救援模式) 3.inode结点满了怎么办 4.双系统,更新grub ======

Linux下的系统启动原理及故障排除

Linux下的系统启动原理及故障排除 一:实验环境 1):虚拟机 2):linux系统环境 二:实验目标 1):理解Linux启动过程详解 2):理解影响启动的配置文件 3):常见的启动故障排除 4):救援模式的使用 三:实验步骤 第一块 Linux启动过程详解 1. 加载 BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB: 如果是硬盘为第一引导. 2. 读取硬盘中 MBR 的 bootLoader (亦即是 grub,Lilo 等程序): 硬盘的0柱面.0磁

SQL Server 2012内部原理及故障排除(专栏)

PROFESSIONAL SQL SERVER? 2012 INTERNALS AND TROUBLESHOOTING一书(可从这里下载),觉得内容很不错.自己也想对SQL Server 2012有个较全面的理解,于是边看边翻译,并将重点内容发表在博客中.下面是相关博客的链接,希望能够给大家带来一点帮助.因个人能力有限,若有翻译不妥之处,欢迎指正和交流! 第一部分  内部原理(INTERNALS) 第一章 SQL Server 架构 数据库事务:          http://blog.csd

Linux系统启动原理及故障排除

Linux启动过程详解影响启动的配置文件常见的启动故障排除救援模式的使用Live CD的使用 Linux启动过程详解:1:加载BIOS的硬件信息,跟据设定取得第一个可开机引导设置2:读取硬盘中MBR的bootloader<grub.....>    MBR详解        名称:主引导扇区,主引导扇区        位置:硬盘的0柱面,0磁头,1扇区        大小:磁盘默认一个扇区大小为512字节,而MBR也是1个扇区,自然是512字节        三部分组成:           

记录一次apache启动失败的故障排除过程

今天在本地配置了新的域名后突然发现Apache启动不了了,一时想不起原因,在百度搜到的方法如下: 废话不多说了,win+R 输入 eventvwr.msc启动系统错误日志,点击右侧的windows日志,再点开下面的应用程序,然后会发现中间的方框会有很多错误记录,双击打开一条,可以看到错误信息为: The Apache service named  reported the following error: >>> Invalid command 'multiple', perhaps m

Atitit.故障排除系列-----apache 不能启动的排除

Atitit.故障排除系列-----apache 不能启动的排除 能直接使用cli启动httpd   ,,详细打印出信息.. C:\Users\ASIMO>"C:\wamp\apache2\bin\httpd.exe" httpd.exe: Syntax error on line 42 of C:/wamp/Apache2/conf/httpd.conf: ServerRoo t must be a valid directory 作者:: 老哇的爪子 Attilax 艾龙, 

1-10-RHEL6.3-linux启动原理及各种故障案例分析(Red Hat Enterprise Linux Server6.3)@树袋飘零

本节内容: 一.Linux启动过程 二.常见的启动故障排除 三.救援模式 1.系统瘫痪了救援模式下拷贝数据 2.grub重新安装 3.系统无法启动--磁盘资源耗尽 4.文件删除空间不释放的问题(拓展) 一:linux启动过程详解 加载BIOS的硬件信息.因为BIOS中包含了硬件的各种信息(硬盘信息.CPU.内存.时钟.设备启动顺序)等等,根据设置的开机启动项 FIRST 引导启动,如果FIRST引导为hardware的话,接着进入下一步 读取硬盘中MBR也就是Master Boot Recode

OpenStack服务启动故障排除经验

今天同事在配置OpenStack的计算节点(在CentOS 7上部署)时遇到一个问题,发现在控制节点上运行nova service-list发现只有4行,没有nova-compute service,让我帮他排查. 提前透露原因:这位同事在/etc/nova/nova.conf配置文件中verbose = True 写成了 verbose =Ture,我也是检查了半天(两眼对了3遍)没看出来,有点汗! 根据我以前掌握的经验,OpenStack的部署过程遇到的问题可归纳总结为配置文件问题.配置步骤

Linux系统之TroubleShooting(启动故障排除)

尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能面面俱到,只能不断的补充,更新. 一.管理员忘记密码 (1).重启计算机,进入单用户模式 1 2 3 4 5 [[email protected] grub]# reboot Broadcast message from root (pts/2) (Wed Dec  2 18:45:32 2015)