Linux 常见的trouble shooting故障排错

备份开机所必须运行的程序对一个运维人员来说是非常有必要的。在实际生产环境中,系统和数据基本都是安装在不同的硬盘上面,因为企业最关心的还是数据,系统崩溃了,最坏的方法就是重新安装系统,但是数据丢失了,那会直接给企业带来损失,如果系统和数据都放在同一个硬盘上面,那系统都进不去了,何谈数据。解决常见的trouble shooting,不要在系统出现故障的时候,想到的第一个就是重装系统。为解决常见的trouble shooting,首先必须先了解系统的启动流程。

常见的trouble shooting:

1.关于grub的故障

a)grub.conf的配置文件的丢失

故障系统信息

系统开机时,直接出现grub提示符,表示你的grub的配置文件损坏或者已经丢失。

思路:这种情况下,直接在grub提示符下,重新grub配置文件即可。

怎样获知系统根的挂载点,一般用于RHEL6.x版本上面,5.x版本不需要指定根的路径。

插入光盘选择第三个 Rescue,急救模式,或者连续按Esc键两次,在boot:提示符下面输入 linux rescue然后按Enter键。

选择本地光盘

选择Continue,继续。

进入急救模式之后,系统会把你的真正的根系统挂载到/mnt/sysimage目录下面,如果你想进入真正的根choot /mnt/sysimage切换你真正的根目录

2)boot分区损坏

当系统的boot分区损坏时,系统也无法正常进入

思路1:用一块新硬盘去接入到能进入系统的主机,且主机的内核版本信息,必须和坏掉系统boot分区的一样,为这块新的硬盘安装grub,且复制vmlinuz内核文件,initramfs内核镜像文件,然后建立grub的配置文件,在把这个新的硬盘接入到损坏boot分区的主机上面,用这个新硬盘的boot来引导系统启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@Redhat6 boot]# fdisk  /dev/sdb  #为新添加的磁盘分区
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1314):
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):+50M
Command (m for help): w
[root@Redhat6 ~]# partprobe
[root@Redhat6 ~]#mkfs -t ext4 /dev/sdb1  #格式化分区
[root@Redhat6 ~]# mkdir /mnt/boot  #为新添加磁盘的分区建立一个挂载点
[root@Redhat6 ~]# mount /dev/sdb1 /mnt/boot/
[root@Redhat6 ~]# cd /mnt/boot/
[root@Redhat6 boot]# ls
lost+found
[root@Redhat6 boot]# grub-install --root-directory=/mnt /dev/sdb #为新添加的硬盘安装grub
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /mnt/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0)   /dev/fd0
(hd0)   /dev/sda
(hd1)   /dev/sdb
[root@Redhat6 boot]# ls
grub  lost+found
[root@Redhat6 boot]# cp /boot/vmlinuz-2.6.32-358.el6.x86_64 /mnt/boot/  #复制系统盘的内核文件到新添加的盘
[root@Redhat6 boot]# cp /boot/initramfs-2.6.32-358.el6.x86_64.img  /mnt/boot/ #复制系统盘的内核镜像文件到新添加的盘
[root@Redhat6 boot]# ls
grub                                 lost+found
initramfs-2.6.32-358.el6.x86_64.img  vmlinuz-2.6.32-358.el6.x86_64

把新的硬盘安装好grub分区后,接入到无法启动的主机上,作boot引导。

思路2:进入急救模式,为系统安装grub,然后挂载光盘,把光盘里面的vmlinuz内核文件和initrd.img内核的镜像文件拷贝到boot目录下面,然后手动编辑grub配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#设置为光盘启动,进行Rescue模式
bash-4.1#chroot /mnt/sysimage
sh-4.1#mount /dev/cdrom /media
sh-4.1#cd boot
sh-4.1#grub-install --root-directory=/ /dev/sda  #为硬盘安装grub
sh-4.1#cp /media/isolinux/vmlinuz /boot/vmlinuz-2.6.32-358.el6.x86_64 #复制光盘的内核文件,并改名
sh-4.1#cp /media/isolinux/initrd.img /boot/initramfs-2.6.32-358.el6.x86_64.img #复制光盘的内核镜像文件,并改名
sh-4.1#cat >> /boot/grub/grub.conf << EOF    #手动建立grub配置文件
> default=0
> timeout=5
> title CentOS (2.6.32-358.el6.x86_64)
> root (hd0,0)
> kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg0-root
> initrd /initramfs-2.6.32-358.el6.x86_64.img
> EOF
sh-4.1#exit
bash-4.1#reboot
#然后更改启动项,设置为本地硬盘启动

2、/etc/inittab文件丢失

思路:查看inittab文件是由那个rpm包安装的,然后进入急救模式,挂载光盘重新安装rpm

1
2
[root@Redhat5 ~]# rpm -qf /etc/inittab #查看RHEL5.x版本的inittab文件是由那个软件包安装的
initscripts-8.45.42-1.el5

插入光盘进入急救模式

1
2
3
4
5
6
bash-4.1#chroot /mnt/sysimage
sh-4.1#mount /dev/cdrom /media
sh-4.1#cd /media/Packages/
sh-4.1#rpm -ivh --replacepkgs initscripts-8.45.42-1.el5.rpm
sh-4.1#exit
bash-4.1#reboot

3、bash损坏无法进入登录界面

思路:查看bash命令是由那个rpm包安装的,然后进入急救模式,挂载光盘重新安装rpm

1
2
3
4
5
6
bash-4.1#chroot /mnt/sysimage
sh-4.1#mount /dev/cdrom /media
sh-4.1#cd /media/Packages/
sh-4.1#rpm -ivh --replacepkgs bash-4.1.2-14.el6.x86_64.rpm
sh-4.1#exit
bash-4.1#reboot

 

4、遗忘root密码

1)、grub没有加密,修改root密码

进入单用户模式设置密码即可

2)、把密码添加到grub的配置文件启用内核镜像保护,修改root的密码

3)、启用grub编辑保护,修改root的密码

 

5、MBR扇区故障

  系统启动盘的MBR扇区损坏

1
2
3
[root@Redhat6 ~]# mkdir /mnt/backup
[root@Redhat6 ~]# mount /dev/sdb1  /mnt/backup/
[root@Redhat6 ~]# dd if=/dev/sda of=/mnt/backup/sda.mbr.bak bs=512 count=1 #备份系统盘的MBR扇区,一定是备份到另外的一块盘上面

思路:进入急救模式,把之前备份的系统盘的MBR扇区恢复过来

1
2
3
4
5
6
bash-4.1#chroot /mnt/sysimage
sh-4.1#mkdir /dir #为备份有系统盘的MBR新建一个目录用于挂载
sh-4.1#mount /dev/sdb1 /dir  #挂载带有备份文件的分区
sh-4.1#dd if=/dir/sda.mbr.bak of=/dev/sda bs=512 count=1 #恢复备份数据
sh-4.1#exit
bash-4.1#reboot

6、修复文件系统,修复inode节点的异常

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Redhat6  /]# touch /mnt/backup/myfile
touch: cannot touch "/mnt/backup/myfile" :device does not have space  #创建文件显示没有可用空间
[root@Redhat6 /]# df -lh /dev/sdb1  #查看磁盘显示还有空间
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             9.9G  780M  8.9G   9% /mnt/backup
[root@Redhat6  /]# df -i /dev/sdb1 #查看inode节点,发现以没有可用inode节点
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1             655776   655776    0    100% /mnt/backup
[root@Redhat6  /]#  find /mnt/backup/ -empty -a -type f -exec rm -rf {} \; #删除该分区为空的文件
[root@Redhat6 /]# df -lh /dev/sdb1
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             9.9G  780M  8.9G   9% /mnt/backup
[root@Redhat6  /]# touch /mnt/backup/myfile  #现在可以创建

  作为一个合格的运维人员,系统的关键文件要提前先做好备份操作,以免发生“亡羊补牢,为时已晚”的情况发生。

 

Linux 常见的trouble shooting故障排错的更多相关文章

  1. Linux之内核管理及故障排错

    一.Centos6启动流程: 加电自检PSOT 引导加载器BootLoader MBR(GRUB第一阶段)||(GRUB第1.5阶段)(GRUB第2阶段) 加载内核(vmlinuz.initramfs ...

  2. (转)linux常见故障一:linux 文件系统变只读

    linux常见故障一:linux 文件系统变只读 原文:https://www.cnblogs.com/ginvip/p/6375672.html 1. 重启系统看是否可以自动修复. 2. 使用fsc ...

  3. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例

    Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...

  4. Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例

    Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...

  5. Linux操作系统启动故障排错之/boot目录被删除恢复案例

    Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...

  6. Apache 安装后Error 403的故障排错方法(linux)

    Apache 安装后Error 403的故障排错方法 2018年01月07日 14:25:41 个人分类: Linux 一.问题描述 在apache2的httpd配置中,很多情况都会出现403. 刚安 ...

  7. Linux常见疑难问答

    Linux常见疑难问答 (1)按a~z顺序排列启动服务进程. #exportLC_ALL=C           #英文环境变量设置,主要用于解决乱码问题 #chkconfig –list | gre ...

  8. Linux常见系统故障

    Linux常见系统故障 1.修复MBR扇区故障 2.修复GRUB引导故障 3./etc/inittab文件丢失 4.遗忘root用户密码 5.修复文件系统 6.磁盘资源耗尽故障 一.修复MBR扇区故障 ...

  9. neutron trouble shooting - ip can not ping

    neutron创建了一个router后,显示列表如下: [root@controller01 keystone]# neutron router-port-list router +--------- ...

随机推荐

  1. C++之路进阶——边表

    边表:利用边的关系来表示一个图. 用到数组: head//head[i]表示从i点出发的第一条边的编号; next[i]//与第i条边起点相同的下一条边的编号; a[i]//第i条边的终点; val[ ...

  2. list和map的区别

    list和map的区别 list-->list是对象集合,允许对象重复 map-->map是键值对的集合,不允许key重复

  3. HDU 4833 Best Financing(DP)(2014年百度之星程序设计大赛 - 初赛(第二轮))

    Problem Description 小A想通过合理投资银行理财产品达到收益最大化.已知小A在未来一段时间中的收入情况,描述为两个长度为n的整数数组dates和earnings,表示在第dates[ ...

  4. 16---Net基础加强

    更新中,敬请期待............ Xml介绍 xml读写练习 xml练习1 xml练习2

  5. 夺命雷公狗---node.js---3commonJs 与 nodeJs的简介

    JavaScript是一个强大面向对象语言,它有很多快速高效的解释器.官方JavaScript标准定义的API是为了构建基于浏览器的应用程序.然而,并没有定于一个用于更广泛的应用程序的标准库. Com ...

  6. 为什么在我眼里你是一只傻逼——傻逼“常所用”句型之(2)——“当当网的就有XXX人评论,YYY%的推荐”

    A:这东西里面尽是大粪. B:这东西当当网的就有325人评论,98.8%的推荐.京东的整体评论是五星,37人评价,31人给好评,1人差评,5人中评:亚马逊有6条好评,1条中评. http://news ...

  7. js数组基础知识链接

    http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930499.html 小案例:   <script language=&quo ...

  8. QTP常用功能

    1.QTP录制过程的截图 查看录制脚本过程中QTP的截图可以在QTP中查找,在关键字视图中点击每一步都对应一个截图   2.在关键字视图中为测试步骤添加注释 在关键字视图中表格列头中单击鼠标右键,选择 ...

  9. Fragement

    package com.exmple.frage; import java.util.ArrayList; import java.util.Calendar; import java.util.Ha ...

  10. printf,sprintf,vsprintf 区别【转】

    转自:http://blog.csdn.net/anye3000/article/details/6593551 有C语言写作历史的程序员往往特别喜欢printf 函数.即使可以使用更简单的命令(例如 ...