码迷,mamicode.com
首页 > 系统相关 > 详细

Linux的启动过程与常见故障排除

时间:2015-07-23 00:57:42      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:用户登录   linux   操作系统   

 linux的基础启动流程

    1. 加载BIOS的硬件信息,并获取第一个启动设备的代号。
    2. 读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk等)的启动信息。
    3. 加载操作系统的核心信息,核心开始解压,并尝试驱动所有的硬件设备。
    4. 核心执行init程序并获得运行信息。
    5. init执行/etc/rc.d/rc.sysinit文件。
    6. 启动核心的外挂模块(/etc/modprobe.conf)。
    7. init执行运行的各个批处理文件(Script)
    8. init执行/etc/rc.d/rc.local文件。
    9. 执行/bin/login程序,等待用户登录。
    10. 登录之后开始以shell控制主机。

      1.post

      2.cmos ---》硬盘引导----》MBR

      3.grub 第一阶段

      4.grub 第二阶段  /etc/grub.conf (/boot/grub/grub.conf)

      5.加载内核以及驱动镜像

      6.开启第一个进程 init  /etc/inittab

      7.执行初始化文件  /etc/rc.d/rc.sysinit

      8. 进入/etc/rc.d/rcn.d 目录    执行 Kxx  Sxx

      9./etc/rc.d/rc.local

      10.mingetty  产生终端




/boot/grub引导菜单介绍

default=0                                  ***默认启动的系统,0 表示第一个title 的系统
timeout=5                                  ***菜单停留的时间
splashimage=(hd0,0)/grub/splash.xpm.gz     ***启动时的背景
hiddenmenu                                 ***菜单是隐藏的
title CentOS (2.6.32-431.el6.i686)          ***每个系统的标示
        root (hd0,0)                         ***hd0 表示第一个盘,0表示第一个分区
        kernel /vmlinuz-2.6.32-431.el6.i686   ***加载根分区的内核,,此时的根是/boot
        ro                                   ***以只读方式来进行引导
        root=UUID=4a3e9e54-2ed5-4796-9702-774aac0e74a4   ***加载完内核后真正的根分区
         rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM 
         rhgb                                 ***以图形方式来进行引导
         quiet                                ***静默模式,启动时信息不再凌乱
        initrd /initramfs-2.6.32-431.el6.i686.img   ***额外的驱动,放置的镜像


故障1:root 口令丢失

  解决原理:进入1级别,单用户级别,因为这个级别是不用输入root密码的,在这里面可以设置新的root密码,然后重启进入其他级别,输入即可

详细操作:技术分享

重启客户机,在boot引导时5秒内按下回车键,进入引导菜单

技术分享

此时按下e键 ,进入编辑模式,

技术分享

选择第二项,按e键,在最后添加“1”然后回车

技术分享

然后按b键,进入系统

技术分享

已经进入系统

技术分享

可以修改root密码,重启即可,或者把密码删除

passwd  -d  root        密码删除远程是登陆不上的

技术分享

故障2:grub.conf

grub 菜单丢失

为了模拟实验先把grub菜单删除

技术分享

此时看到已经断开连接

技术分享

重启技术分享

已经启动不了了

解决方案:

help可以查看帮助

技术分享

先指定引导程序的硬盘和分区,(如果不清楚,可以用tab键帮助)

技术分享

指定内核和根分区

技术分享

指定驱动

技术分享

做完之后,boot引导启动

技术分享

可以看到已经进去了

技术分享

但是为了下一次能够正常启动,不再指定grub菜单,所以要写出grub.conf

技术分享

不知道可以用!!的形式列出需要的文件

技术分享

引导顺序不要写反了

技术分享

保存重启,已经可以正常启动了

故障三:故障3:stage1 丢失 446字节的引导程序坏掉

故障模拟,向sda 写入446 字节,然后重启

技术分享

技术分享

插入光盘,重启

技术分享

选中求援模式

技术分享

选中shell

技术分享

分区表和引导菜单都有

技术分享

技术分享

重新写入引导,exit退出,重启即可

技术分享

故障4:MBR(446字节和分区表没有了)丢失

一定要先讲mbr备份

技术分享

我的已经拷贝到物理机上

擦除mbr,重启

技术分享

启动不了;技术分享

插入live cd盘  CentOS-6.5-i386-LiveDVD

进入cd盘后,打开终端,切换root用户

技术分享

关闭防火墙,讲保存的mbr文件导入

技术分享

将mbr重新写入

技术分享

已经可以查看分区表了

技术分享

重启

故障5:stage2 丢失 (grub目录)

删除技术分享

重启测试

技术分享

技术分享

技术分享

技术分享

进入系统,没有grub文件

技术分享

在根目录下执行

技术分享

进入grub目录,发现没有grub.conf 重新编辑grub.conf文件

技术分享

重启测试OK

故障6: /etc/fstab  (编错或误删除)

技术分享

重启,启动失败,输入密码

技术分享

发现看不到有用的信息,技术分享


再重启进入引导菜单,

技术分享

删除图形引导,和静默模式,再重启

技术分享

此时发现,UUID 值写错了

技术分享

解决方案:采用live cd 启动,然后将错误改回来

重启时,发现从硬盘引导了,先关机,选择虚拟机,电源,从BIOS 启动

技术分享

f10保存启动

看到sda2 没有挂载,挂载sda2

技术分享

查看UUID复制写入/etc/fstab

技术分享

保存退出

技术分享

重启正常!

总结:当系统出错进不去时,先关闭,静默模式和图形引导,查看详细信息,如果可以进入shell,在shell中写入引导盘,内核文件,根分区和驱动镜像,进入系统再修改错误,如果进入不到shell,可以到求援模式,如还不行,就挂载live盘进去查错并修改。

本文出自 “监督局” 博客,请务必保留此出处http://shuoshuo234.blog.51cto.com/10531943/1677171

Linux的启动过程与常见故障排除

标签:用户登录   linux   操作系统   

原文地址:http://shuoshuo234.blog.51cto.com/10531943/1677171

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!