linux的CentOS系统启动故障与修复

    以CentOS 6为例,系统的启动流程为:

1.开机post加电自检

2.MBR引导

3.通过grub加载内核

4.加载根

5.加载系统中的第一个进程

6.进行初始化

7.出现登录界面

    其中主要的启动环节是grub引导计算机,分为三个阶段:一阶段发生在mbr的446字节中;一点五阶段在mbr后续的扇区中;二阶段在/boot/grub/目录下。

当三个阶段中任意一个阶段被破坏后,计算机就会无法启动,所以要针对不同的破坏实施不同的修复措施。

一、一阶段的破坏及修复方法:

1.破坏一阶段:dd if=/dev/zero  of=/dev/sda  bs=1 count=446 (清空mbr中446字节的内容)

2.修复:

a.利用光盘启动进入救援模式

b.chroot /mnt/sysimage (切根)

c.grub-install  /dev/sda (此命令的作用是重新安装grub,不仅可以修复一阶段,还可以修复一点五与二阶段的破坏)

d.sync (同步操作)

e. hexdump -C -n 512 /dev/sda  (查看是否修复数据)

f.重新启动

    进行以上步骤,就可以正常启动计算机了。如图所示:

linux的CentOS系统启动故障与修复

linux的CentOS系统启动故障与修复

linux的CentOS系统启动故障与修复

二、一点五阶段的破坏与修复:

1.破坏一点五阶段: dd if=/dev/zero  of=/dev/sda  bs=1  count=10240 skip=512 seek=512

2.修复:

a. 进入救援模式

b. 切根:chroot  /mnt/sysimage

c. 可用grub-install 修复,也可以输入grub,出现提示符——输入root(hd0,0),表示root是第一个硬盘的第一个分区——输入setup (hd0)

d.退出重启

linux的CentOS系统启动故障与修复

linux的CentOS系统启动故障与修复

三、二阶段的破坏与修复:

1.破环:删除/boot/grub下的文件,只留下grub.conf文件

  修复:使用grub-install  /dev/sda 命令,重新安装grub


linux的CentOS系统启动故障与修复


linux的CentOS系统启动故障与修复


2.破坏:删除grub.conf文件

   修复:grub.conf文件负责提供启动时的菜单选项,删除这个文件,需要手动输入文件的主要内容:

   a.启动时停滞在grub界面,手动输入root (hd0,0),回车

   b.输入kernel  /VMlinuz版本(支持Tab键补全) root=/dev/sda2,回车

   c.输入 initrd  /initramfs版本

   b.启动后可恢复grub.conf文件


linux的CentOS系统启动故障与修复


linux的CentOS系统启动故障与修复


3.破坏:删除 /boot/grub/目录

   修复:进入救援模式,切根

   a. grub-install  /dev/sda (重装grub)

   b.sync (同步)

   c.手动创建grub.conf文件:vim /boot/grub/grub.conf

                                        default=0

                                        timeout=3

                                        title linux

                                        kernel  /vmlinuz版本   root=/dev/sda (boot所在分区)

                                        initrd   /initranfs版本

d.重启

linux的CentOS系统启动故障与修复

linux的CentOS系统启动故障与修复 

linux的CentOS系统启动故障与修复

 

linux的CentOS系统启动故障与修复

     总结:通过修复启动各种阶段的故障,可以进一步的了解系统启动的过程,对linux系统也加深了认识。

原创文章,作者:xiamu,如若转载,请注明出处:http://www.178linux.com/86002

(1)
xiamuxiamu
上一篇 2017-09-03 22:24
下一篇 2017-09-03 22:47

相关推荐

  • Linux下使用screen协同作业

    1)screen应用场景(拷贝自网络): 来自产品工程的高级维护用户 David 打电话说:“为什么我不能在您部署的这些新机器上编译 supercode.c”。 您会问他:“您运行的是什么机器?” David 答道:“ Posh”。(这个虚够的公司将它的 5 台生产服务器以纪念 Spice Girls 的方式命名)。这下您可以大显身手了,另一台机器由 Dav…

    系统运维 2016-08-15
  • Python之入门篇

    一、环境准备 环境准备 –> pyenv (安装python解释器,管理Python版本,管理python虚拟环境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干货 2017-02-05
  • nginx相关配置及解释

    全局配置: user  nginx nginx; #运行程序的用户和用户组pid      /var/run/nginx.pid; #主控进程load_module /usr/lib64/nginx/modules/ngx_http_geoip_module.so;#加载模块 work进程的数量:通常为当前主…

    Linux干货 2017-05-07
  • find命令的基本用法

     linux 中find 常用示例解析 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]    其实[-H] [-L] [-P] [-D debugopts] [-Olevel]这几个选项并不常用(至少在我的日常工作中,没 &…

    Linux干货 2016-05-05
  • 如何恢复误删除的rpm包命令

    如何恢复误删除的rpm包命令 在linux学习过程中,我们会遇到各种各样的问题,当然,如果能够将遇到的问题一一解决也是非常开心的,因为在解决问题的过程中我们的专业技能也得到了很大的提升。最近的测试中遇到了一个平时很少接触的问题:如何恢复误删除的rpm包命令。所以觉得有必要写下来,以防止下次出现类似的问题而不会解决。 首先模拟卸载rpm rpm -e &#82…

    2017-08-26
  • 0808文本处理作业

                           1 、删除/etc/grub2.conf 文件中所有以空白开头的行行首的空白字符。 答:sed  ‘@^[[:space]]\+@@’  /etc/grub2/cf…

    Linux干货 2016-08-11