33.Linux开机过程及启动故障修复

一、Linux系统启动

Linux系统启动过程如下:

33.Linux开机过程及启动故障修复_第1张图片

initramfs镜像用来启动系统,解压后是一个临时的根目录。

33.Linux开机过程及启动故障修复_第2张图片
33.Linux开机过程及启动故障修复_第3张图片

用file查看initramfs-2.6.32-696.el6.i686.img的文件类型为gzip压缩文件,将它改为gz格式,解压缩。

33.Linux开机过程及启动故障修复_第4张图片

解压后得到一个initramfs-2.6.32-696.el6.i686.img,查看文件类型为ASCII,继续解压。

33.Linux开机过程及启动故障修复_第5张图片

开机由/etc/rc.d/rc.sysinit初始化,此文件主要功能设置有

1.获得网络环境

2.挂载设备

3.开机启动画面Plymouth

4.判断是否启动SELinux

5.显示于开机过程中的欢迎画面

6.初始化硬件

7.用户自定义模块的加载

8.配置内核的参数

9.设置主机名

10.同步存储器

11.设备映射器及相关的初始化

12.初始化软件磁盘阵列(RAID)

13.初始化LVM的文件系统功能

14.检验磁盘文件系统

15.设置磁盘配额(quota)

16.重新以可读写模式挂载系统磁盘

17.更新quota(非必要)

18.启动系统虚拟随机数生成器

19.配置机器(非必要)

20.清除开机过程当中的临时文件

21.创建ICE目录

22.启动交换分区(swap)

23.将开机信息写入/var/log/dmesg文件中

运行级别参数传入/etc/rc.d/rc这个脚本之后,由这个脚本文件按照不同的运行级别启动/etc/rc[0-6].d目录中的相应的程序

/etc/rc3.d/k??开头的文件,会按照数字顺序依次关闭

/etc/rc3.d/S??开头的文件,会按照数字顺序依次启动

33.Linux开机过程及启动故障修复_第6张图片

二、grub工具及配置文件

grub允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。grub中分区含义如表所示

33.Linux开机过程及启动故障修复_第7张图片
33.Linux开机过程及启动故障修复_第8张图片

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

33.Linux开机过程及启动故障修复_第9张图片
33.Linux开机过程及启动故障修复_第10张图片

参数含义

default=0   //默认启动第一个系统

timeout=5  //等待时间,默认是5秒

splashimage=(hd0,0)/grub/splash.xpm.gz  //指定grub启动时的背景图像文件的保存位置

hiddenmenu  //隐藏菜单

title CentOS 6 (2.6.32-696.el6.i686)   //标题

root (hd0,0)  //指启动程序的保存分区

kernel /vmlinuz-2.6.32-696.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet   //定义加载时的选项

initrd /initramfs-2.6.32-696.el6.i686.img  //指定initramfs内存文件系统镜像文件的所在位置



三、grub进入单用户模式

单用户模式主要功能

1.忘记root密码

2.修改系统默认运行级别

33.Linux开机过程及启动故障修复_第11张图片

按e进入命令编辑模式

33.Linux开机过程及启动故障修复_第12张图片

光标移到kernel行,按e进入grub界面

33.Linux开机过程及启动故障修复_第13张图片

在quiet后加1,进入单用户模式

33.Linux开机过程及启动故障修复_第14张图片
33.Linux开机过程及启动故障修复_第15张图片

按b启动,进入单用户模式(可修改root密码)

33.Linux开机过程及启动故障修复_第16张图片

eg:假设启动文件/etc/inittab文件被修改,如何修复?

我将inittab文件修改,将默认启动级别改为6,这样系统启动时会一直重启

33.Linux开机过程及启动故障修复_第17张图片
33.Linux开机过程及启动故障修复_第18张图片

在单用户模式下修改/etc/inittab文件。

33.Linux开机过程及启动故障修复_第19张图片

重启后成功。

ps:后来我用的debian虚拟机忘记了密码,尝试后发现它进入单用户的模式有点不一样,记录一下

33.Linux开机过程及启动故障修复_第20张图片

按e进入编辑模式

在这一行quiet之后添加“init=/bin/bash”,可进入单用户模式

33.Linux开机过程及启动故障修复_第21张图片

进入后发现修改密码出错,将根目录重新挂载后成功修改密码

33.Linux开机过程及启动故障修复_第22张图片

四、grub加密

为防止外人进入单用户模式修改root密码,可将grub进行加密

加密过程如下

grub-md5-crypt  //生成一个md5加密的密码,将其复制

vi /boot/grub/grub.conf  //将密码粘贴置文件中,保存后,重启生效

33.Linux开机过程及启动故障修复_第23张图片

此时,需要按下grub的密码才可以进入编辑模式

33.Linux开机过程及启动故障修复_第24张图片

如果密码输错,将不能进行编辑

33.Linux开机过程及启动故障修复_第25张图片

正确输入密码,可以看到跟加密前一样的编辑页面。

33.Linux开机过程及启动故障修复_第26张图片

五、grub启动页面分辨率调整

首先查询内核是否支持分辨率修改

33.Linux开机过程及启动故障修复_第27张图片

分辨率参数如下

33.Linux开机过程及启动故障修复_第28张图片

如果想将分辨率设为1024*768,则写入/boot/grub/grub.conf内,vga=791。

33.Linux开机过程及启动故障修复_第29张图片

重启后生效


六、光盘救援模式修复启动故障

1.如何进入光盘救援模式

插入光盘,启动时快速按F2键(或者右键点击虚拟机-电源-启动时进入bios)。

进入bios后,将光盘启动移到第一项(+)。

33.Linux开机过程及启动故障修复_第30张图片

进入光盘修复模式,将光标移动到第三行

33.Linux开机过程及启动故障修复_第31张图片
33.Linux开机过程及启动故障修复_第32张图片

一路默认,网络可不设置

33.Linux开机过程及启动故障修复_第33张图片

2.光盘救援模式下可做什么

a、忘记grub加密的密码,可在救援模式下清除grub密码

b、重要系统文件丢失,可在救援模式下找回

a、清除grub密码步骤

chroot /mnt/sysimage   //改变主目录

locate grub.conf  //查出grub配置文件的位置,这里看到在disk1下

vi /disk1/grub/grub.conf  //删除密码行,重启系统

33.Linux开机过程及启动故障修复_第34张图片

b、重要文件找回步骤

eg:将/etc/inittab文件删除,如何恢复?

<1>.进入光盘救援模式,后,将刚刚拷贝在/tmp下的inittab文件复制粘贴到/etc下

33.Linux开机过程及启动故障修复_第35张图片

<2>.先查询出inittab文件的安装包版本,进入光盘救援模式后,将光盘挂载,从光盘的Packeges目录里安装inittab。

33.Linux开机过程及启动故障修复_第36张图片

你可能感兴趣的:(33.Linux开机过程及启动故障修复)