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盘进去查错并修改。

时间: 2024-08-27 00:41:37

Linux的启动过程与常见故障排除的相关文章

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

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

【转载】简述Linux的启动过程

原文:简述Linux的启动过程 本文将简单介绍一下Linux的启动过程,希望对那些安装Linux的过程中遇到了问题的朋友有些帮助 声明:本人没用过UEFI模式和GPT分区格式,所有关于这两部分的内容都是网络上找的资料,仅供参考. 典型启动顺序 计算机通电后,CPU开始从一个固定的地址加载代码并开始执行,这个地址就是BIOS的驱动程序所在的位置,于是BIOS的驱动开始执行. BIOS驱动首先进行一些自检工作,然后根据配置的启动顺序,依次尝试加载启动程序.比如配置的启动顺序是CD->网卡01->U

linux内核启动过程学习总结

下面是学习linux内核启动过程的记录 平台是:powerpc mpc8548 + linux2.6.23 内核 通用寄存器的作用r0 :在函数开始时使用r1 :存放堆栈指针,相当于ia32架构中的esp寄存器r2 :存放当前进程的描述符的地址r3 :存放第一个参数和返回地址r4-r10 :存放函数的参数r11 :用在指针的调用和当前一些语言的环境指针r12 :用于存放异常处理r13 :保留做为系统线程IDr14-r31 :作为本地变量,具有非易失性 Linux启动过程描述 第一步:使用Boot

Linux系统--Linux的启动过程

Linux系统--Linux启动过程 CentOS 启动流程: POST --> Boot Sequence(BIOS) --> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --

linux服务器启动过程

随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一 定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络.在服务器端大多使用Linux和Unix的,目前Linux的擅 长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器.Web服务器.目录服务器.防火墙.文件和打印服务器.Intranet代理服务器 .启动 Linux 系统的过程包括很多阶段.不管您是引导一个标

回眸总结linux的启动过程

学弟问我linux的启动过程,突然被雷到了,竟然忘的那么透彻,脑袋飘来6个字--"岁月是把杀猪刀",于是恶补 ,写成日志,起码原理上的东西不能丢,发展才是硬道理,最近做一个高并发(70万)的服务测试中也深深感受到对linux系统的理解还需要更加的深刻,废话不多说,总结如下:       1.系统加电后,bios读取硬件信息,读取启动设备,读取0磁头0柱面的1扇区的主引导记录mbr,并将启动控制权移交给mbr; 2.mbr有512字节三部分组成,其中前446字节是bootloader主引

linux开机启动过程、PATH、过滤一级目录、cd的参数、ls -lrt、命令切割日志

      第二波命令正向我方来袭 :开机启动过程.PATH.过滤一级目录.cd的参数.ls -lrt.命令切割日志 1.1 linux开机启动过程 1.1.1  开机自检(BIOS)-- MBR引导 -- GRUB菜单 -- 加载内核(kernel)-- 运行INIT进程 -- 读取/etc/inittab配置文件 -- 执行/etc/rc.sysinit脚本(初始化脚本,如设置ip,hostname) -- 执行/etc/rc.d/rc(根据运行级别开机自启的软件)脚本 -- 启动/sbin

Linux -- 常见故障排除

目前Linux的擅长应用领域是:单一应用的基础服务器应用,譬如DNS.Web服务器.NFS服务器.防火墙.文件服务器.代理服务器.中小型数据库.Linux网络故障大多与服务器配置有关.下面我们介绍一下故障排除步骤. 一. Linux网络故障之网卡故障 Linux的网络实现是模仿FreeBSD的,它支持FreeBSD的带有扩展的Sockets(套接字)和TCP/IP协议.它支持两个主机间的网络连接和Sockets通讯模型,实现了两种类型的Sockets:BSD Sockets和INET Socke

轻松识破linux内核启动过程中的“”套路“”

内核启动流程相关的内容让很多热爱linux的小伙伴既爱又恨,因为这是了解linux系统基本构造的良好过程同时由于其本身复杂且底层,脑子中的脉络不是很清晰,本文就总结了一些优秀博文,以自己的理解来解构一下. 本文的环境是CentOS 6.8, 基本过程: 庖丁解牛: 1.POST BIOS的功能由两部分组成, 步骤1:上电自检POST(Power-on self test),主要负责检测系统外围关键设备(如:CPU.内                 存.显卡.I/O.键盘鼠标等)是否正常.例如,