Linux-CentOS6.9启动流程排错
1 . CentOS6.9启动流程
- POST 加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。
- Boot Sequence(BIOS) 加载BIOS的硬件信息,获取第一个启动设备
- Boot Loader MBR ,引导加载器,引导程序
- Kernel(ramdisk) 加载核心操作系统的核心,加载硬件驱动
- rootfs 只读
- switchroot 主根(init | systemd)
- /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别
- 系统初始化脚本 rc.sysinit,完成系统初始化 --> 关闭或启动对应级别的服务
- 启动终端
2 . /boot/中ramdisk文件恢复
rm -rf initramfs-2.6.32-696.el6.x86_64.img
意外删除ramdisk文件机器未重启时,恢复ramdisk文件方法:
mkinitrd /boot/initramfs- $(uname -r).img $(uname -r)
为当前正在使用的内核重新制作ramdisk文件,基于内核的,所以参数要给定当前内核版本号。容纳后语句会自动生成文件 [initramfs-2.6.32-696.el6.x86_64.img]dracut /boot/initramfs-$(uname -r).img $(uname -r)
效果同 mkinitrd 一样
意外丢失ramdisk文件后,重启机器,恢复方法:
- 使用光盘引导,进入救援模式。
最后使用 shell start shell 进入光盘系统。- df 查看 系统根目录为:/dev/sda2 /mnt/sysimage
- chroot /mnt/sysimage/ 将根从光盘系统的根切换到主机系统的根,从而去修复主机系统。
使用的方法是,没重启前的恢复方法。
* -->#--> mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)*
* -->#--> dracut /boot/initramfs-$(uname -r).img $(uname -r)*
完成后重新启动即可【SElinux启用状态时,开机时,给主机全部文件打上标签,最好重启前关闭SElinux】
3 . 核心文件/boot/vmlinuz- VERSION -release,意外丢失后恢复方法。
重启后的状态:
修复方法:
- 进入救援模式,如果不需要网络功能可以先不配,一直跳过即可
- 创建一个空文件 /mnt/cdrom,并且将光盘/dev/sr0挂载到空文件上
- 使用
rpm -ivh /mnt/cdrom/Packages/kernel-VERSION.rpm --force【强制重新安装】--root=/mnt/sysimage【指明主机根目录】- 安装完成后,等待内存写入磁盘,sync 同步数据,重启即可。
4 . 在启动第一阶段错误,MBR引导的第一个扇区中446字节,丢失或损坏时。
重启后状态直接进入光盘引导页面,因为主机硬盘没有MBR启动引导,机器BIOS会自动寻找有启动引导的东西来启动。
修复方法1:
- 进入bash shell后,切到主机的根`chroot /mnt/sysimage/`
- 运行 grub-install /dev/sda 命令【给主机硬盘修复grub所有启动操作】
修复方法2:
- 使用交互式命令 grub
- 交互输入 root(hd#,#)【描述boot所在的硬盘编号,和硬盘里第几个扇区】
- setup(hd#) 安装即可
【grub 交互式命令来修复,依赖/boot/grub/stage1文件】
5 . 破环grub启动中 1.5阶段 mbr之后的27个扇区,让1阶段中bootloader能识别2阶段所在的分区上的文件系统
重启后提示【没有了文件系统驱动,无法识别2阶段,所以凉了】

修复方法:
- 进入光盘引导,救援模式
- 切到主机的根 chroot /mnt/sysimage/
- 使用grub-install /dev/sda 命令修复即可
- 命令执行完后,建议sync同步数据,将数据从内存写入硬盘后,重启即可
【grub-install命令可以一键修复1阶段,1.5阶段,2阶段,非常强大。但是grub.conf文件无法修复,只能手写grub.conf配置文件】
6 . 启动第二阶段,grub.conf文件丢失或这损坏,第二阶段就无法启动。
grub.conf文件的格式
#boot=/dev/sda
default=0 #默认启动那一个系统
timeout=5 #倒计时5秒后,使用默认系统启动
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-696.el6.x86_64) #开启内核列表
root (hd0,0) #系统默认的根,就是/boot 目录,定义根的位置 在哪个磁盘,哪个扇区
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=93131fa4-d1bc-4442-b42f-215a7bb7a273
【rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet】【这些内容不写,也可以正常启动,只是一些属性配置设置】
initrd /initramfs-2.6.32-696.el6.x86_64.img
修复方法:
- 进入光盘挂载救援模式
- 切根 chroot /mnt/sysimage
- 进入/boot/grub里创建 grub.conf文件
default=0
timeout=5
title centos6
kernel /vmlinuz-VERSION.img ro【只读的意思,为了安全要加,加不加都可以】root=UUID=..【主机根目录】....
initrd /initramfs-VERSION.img
7 . 当/boot 整个文件夹被清空,恢复系统操作
重启后错误提示:
修复方法:
- 光盘引导,进入救援模式
- 切根chroot /mnt/sysimage 切入主机根
- 主机上挂载光盘 mount /dev/cdrom /mnt
- 重新强制安装内核 rpm -ivh /mnt/Packages/kernel-VERSION.rpm --force 【sync命令,同步数据】
- grub-install /dev/sda 修复 第1 第1.5 第2 阶段
- /boot/grub/目录下缺少 grub.conf文件,手动写入
- UUID地址可以用 vim指令读入 blkid /dev/sda2命令显示内容,或者直接写root=/dev/sda2 也可以
开机,BIOS自检,检查各个硬件是否正常 2)读取硬盘MBR信息,引导系统启动 3)加载g ...
- Linux系统文件与启动流程
Linux系统文件与启动流程 /etc初始化系统重要文件 /etc/sysconfig/network-scripts/ifcfg-eth0:网卡配置文件 /etc/resolv.conf:Linux ...
- Linux系统的启动流程
Linux系统的启动流程: 1.通电(通常按下电源键,开始通电) 2.加载BIOS (通常看到显示器提示按F2进入主板) 3.读取MBR (MBR硬盘的入口地址,用来装载引导) 4.进入引导 (通常有 ...
- Linux的开机启动流程
Linux的开机启动流程 1.开机BIOS自检 --> 检查CPU,硬盘等硬件信息 2.MBR[Major ...
- 2021年3月-第01阶段-Linux基础-Linux系统的启动流程
Linux系统的启动流程 理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题. 上图为Linux操作系统启动流程 1.加载BIOS 计算机 ...
- Linux系统的启动流程以及做个小小的Linux
内核的作用 进程管理:进程间切换 内存管理:内存空间分割为内核空间和用户空间 IO管理:对底层硬件的使用必须由内来实现,不能由用户空间进程来实现 文件系统管理 ...
- centos6/7启动故障排错
centos6启动流程修复: 实验一:删除initramfs-2.6.32-754.el6.x86_64.img进行恢复 该文件很重要initramfs-2.6.32-754.el6.x86_64.i ...
- [转] 浅谈Linux系统的启动流程
原文:http://blog.csdn.net/justdb/article/details/9621271 版权声明:本文为博主原创文章. Linux系统的启动时通过读取不同的配置文件,执行相应的S ...
随机推荐
- safari不支持new Date函数
最近在做移动Web的时候,在PC上用Chrome调试都成功了,但是在iPhone上真机一测就出现了奇怪的问题.经过一系列调试发现是日期相关的地方出现了问题.起初怀疑是生产环境的问题,但用Mac版的sa ...
- C#代码规范整理
命名规范制定意义 1. 方便代码的交流和维护,便于日后自己的再次阅读. 2. 不影响编码的效率,不与大众习惯冲突. 3. 使代码更美观.阅读更方便. 4. 使代码的逻辑更清晰.更易于理解. 名词解释 ...
- CentOS yum源的配置
yum操作 1.用YUM安装软件包命令:yum install 2.用YUM删除软件包命令:yum remove 3.使用YUM查找软件包命令:yum search4.列出所有可安装的软件包命令:yu ...
- codeforces840E In a Trap
好巧妙啊,感觉从来没有用过按位dp的trick,也没有用过树上链分块的trick 挂个链,全程看他的思路写的,当然lych帮我理解了最难懂的一部分 首先这里有个玄学的分块 每个点统计它上面256(其实 ...
- jquery自定义组件开发
jquery的组件已经有很多,但是有可能找不到符合我们需求的组件,所以我们可以动手自己封装一个jquery组件. 第一步要知道封装jquery组件的基本语法 (function ($) { $.fn. ...
- SpringCloud 分布式配置中心
SpringCloud 分布式配置中心 服务端 创建工程并完善结构 国际惯例,把maven工程创建完善 pom.xml <?xml version="1.0" encodin ...
- .net memcache
非常感谢csdn及冷月宫主让我很快学会了.net操作 memcache 文章转自:http://download.csdn.net/detail/e_wsq/4358982 C#存取Memcache的 ...
- sql 2008 中不能创建数据库关系图
执行以下命令: ALTER AUTHORIZATION ON DATABASE::[databasename] TO sa [databasename] 为数据库名: 此方法借鉴于<老高> ...
- intelliJ idea 激活和配置
1. 双击打开 Intellij IDEA 桌面快捷方式图标,如下图: 2. 点击 ok 按钮,进入激活页面: 3. 他提供的三种方式激活:账号激活,激活码激活,服务器地址激活,我们选择激活码激活,去 ...
- Android笔记--View绘制流程源码分析(二)
Android笔记--View绘制流程源码分析二 通过上一篇View绘制流程源码分析一可以知晓整个绘制流程之前,在activity启动过程中: Window的建立(activit.attach生成), ...




