RHEL6启动原理和故障排除

本节所讲内容:

Linux启动过程详解

影响启动的配置文件

常见的启动故障排除

救援模式的使用

Live CD的使用

 

本节课的所有操作在RHEL6操作系统中完成

Linux启动过程详解

1. 加载 BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB; 如果是硬盘为第一引导。

 

2. 读取硬盘中 MBR boot Loader (亦即是 grub,Lilo 等程序)

 硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。

16*4+446+2=512

 

注:磁盘默认一个扇区大小为:512字节。

在总共512字节的主引导扇区

第一部分是:主引导程序(boot loader)占446个字节主引导程序,它负责从活动分区中装载,并运行系统引导程序。

第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

第三部分是MBR有效标识位占2个字节,固定为55AA如果这个标志位0xAA55,就认为这个是MBR

 

GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。

 

3. 依据 boot loader 的设定,到引导分区加载 Kernel Kernel 会开始侦测硬件并加载驱劢程序;

4. 在硬件驱动成功后,Kernel 会主动执行 init 程序,而 init 会取得 run-level 信息;

5. init 执行 /etc/rc.d/rc.sysinit 文件来准备软件执行的作业环境 (如网络、时区等)

6. init 执行 run-level 下各个服务并启动 (script 方式)

7. init 执行开机后自动运行脚本 /etc/rc.d/rc.local 文件;

8. init 执行虚拟终端机控制程序 mingetty 来启动 login 程序,最后就等待用户登入啦;

如图:

 

 

Linux启动相关的配置文件

在init 3 级别下启动图形界面: startx

init 3 - 》init 5 ,需要重启服务

 

系统启动EL6

  BIOS

bootloader(GRUB或 lilo)

[root@xuegod63 ~]# vim /boot/grub/grub.conf

[root@xuegod63 ~]# ll /etc/grub.conf

lrwxrwxrwx. 1 root root 22 10月 20 03:25 /etc/grub.conf -> ../boot/grub/grub.conf

 

判断启动级别

[root@xuegod63 ~]# vim /etc/inittab

[root@xuegod163 ~]# vim /etc/inittab

# Default runlevel. The runlevels used are:

# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

#

id:3:initdefault:

 

/etc/rc.d/rc.sysinit(系统初始化: 像:主机名 和/etc/fstab selinux都在这里指定了...)

执行rc.sysinit 完成了包括mount分区 激活swap 加载modules等重要的工作.

 

启动对应级别下的服务如: init 3 级别

/etc/rc.d/rc3.d/(这里的程序/服务S开头的全部开机执行;K开头的开机不执行)

rcn.d (n为1到6) 是对应于不同的runlevel下起不同的服务. 这些目录下都 
是一些符号连接, 连接到/etc/rc.d /init.d下的一些文件.以S开头的表示要启动, 以K开头的不启动. 
第一个字母后面的数值是一个优先级.

 

例:

[root@xuegod63 rc3.d]# vim /etc/init.d/network

#! /bin/bash

#

# network Bring up/down networking

#

# chkconfig: 2345 10              90
看有chkconfig的那一行, 2345表示在runlevel2 3 4 5下被启动, 10是此服务的启动顺序, 90为关机顺序

 

[root@xuegod163 rc3.d]# ls *network*

S10network

[root@xuegod163 rc3.d]# chkconfig network off

[root@xuegod163 rc3.d]# chkconfig --list network

network        0:off       1:off       2:off       3:off       4:off       5:off       6:off

[root@xuegod163 rc3.d]# ls *network*

K90network

#说明,如果在此级别下开机启动,就不再显示其关机顺序了

 

所有服务都运行成功后

设置开机自动执行某个命令: /etc/rc.local

 

[root@xuegod163 ~]# vim /etc/rc.local

[root@xuegod163 ~]# chkconfig httpd on

[root@xuegod163 ~]# ll /etc/rc.local

lrwxrwxrwx. 1 root root 13 Apr 8 02:29 /etc/rc.local -> rc.d/rc.local

[root@xuegod163 ~]# ll /etc/rc.d/rc.local

-rwxr-xr-x. 1 root root 240 Jul 23 21:16 /etc/rc.d/rc.local

 

运行mingetty,打开tty1-6

[root@xuegod163 ~]# ps -aux | grep ming

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root 2245 0.0 0.0 4064 580 tty2 Ss+ 20:48 0:00 /sbin/mingetty /dev/tty2

root 2247 0.0 0.0 4064 576 tty3 Ss+ 20:48 0:00 /sbin/mingetty /dev/tty3

root 2249 0.0 0.0 4064 580 tty4 Ss+ 20:48 0:00 /sbin/mingetty /dev/tty4

root 2251 0.0 0.0 4064 576 tty5 Ss+ 20:48 0:00 /sbin/mingetty /dev/tty5

root 2253 0.0 0.0 4064 576 tty6 Ss+ 20:48 0:00 /sbin/mingetty /dev/tty6

root 3004 0.0 0.0 103244 864 pts/0 S+ 21:17 0:00 grep ming

[root@xuegod63 ~]# runlevel

3 5

 

进入单用户模式,破解root密码。如果防止破解root密码?

加密grub,不让别人破解root密码:

生成密文密码

[root@xuegod63 ~]# grub-md5-crypt

Password:

Retype password:

$1$rxheg$TqvO9q9QL4oADdaeI73AS/

[root@xuegod63 ~]# vim /boot/grub/grub.conf

重启测试:

编辑grub时,需要按下p键,然后输入密码:123456

 

进入救援模式:

例:当系统坏了,进不去了。 进入救援模式拷贝数据

以光盘引导:

 

 

 

 

 

 

ramfs : 内存文件系统

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

 

系统故障,忘记root用户的密码

解决方法:重启系统进入单用户模式,然后重设密码

grub界面按任意键,干预启动过程。

e按键,编辑启动时内核接收的选项,增加“1”。

enter和b按键,按照修改过的选项启动操作系统。

把下图中的x去掉,然后reboot 就可以,再次使用root进入密码,就不需要输入密码。

进入系统passwd就可以修改root。

 

例3:磁盘资源耗尽故障

1、:无法写入新的文件,提示“… : 设备上没有空间”

2、:部分程序无法运行,甚至系统无法启动

 

故障原因:

  one :磁盘空间已被大量的数据占满,空间耗尽

  two :虽然还有可用空间,但文件数i节点耗尽

 

解决方案:

  1.清理磁盘空间,删除无用、冗余的文件

  2.转移或删除占用大量i节点的琐碎文件

  3.进入单用户模式、救援模式进行修复或删除文件

 

例4:

双系统启动修复

当我们安装双系统环境,先安装Linux再安装Windows;;或者已经安装好双系统环境的Windows损坏,在重新安装Windows后,保存GRUB的MBR(Master Boot Record,主引导记录)会被Windows系统的自举程序NTLDR所覆盖,造成Linux系统无法引导。

 

1、如果要恢复双系统引导,首先用上述方法进入救援模式,执行chroot命令如下:

sh-4.1# chroot /mnt/sysimage

2、将根目录切换到硬盘系统的根目录中,然后执行grub-install命令重新安装GRUB:

sh-4.1# grub-install /dev/sda

3、然后依次执行exit命令,退出chroot模式及救援模式(执行两次exit命令):

sh-4.1# exit

sh-4.1# reboot

系统重启后,将恢复GRUB引导的双系统启动。

 

live cd 300M左右 iso 。

大白菜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值