Linux 常见的trouble shooting故障排错
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故障排错的更多相关文章
- Linux之内核管理及故障排错
一.Centos6启动流程: 加电自检PSOT 引导加载器BootLoader MBR(GRUB第一阶段)||(GRUB第1.5阶段)(GRUB第2阶段) 加载内核(vmlinuz.initramfs ...
- (转)linux常见故障一:linux 文件系统变只读
linux常见故障一:linux 文件系统变只读 原文:https://www.cnblogs.com/ginvip/p/6375672.html 1. 重启系统看是否可以自动修复. 2. 使用fsc ...
- Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例
Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...
- Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例
Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...
- Linux操作系统启动故障排错之/boot目录被删除恢复案例
Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...
- Apache 安装后Error 403的故障排错方法(linux)
Apache 安装后Error 403的故障排错方法 2018年01月07日 14:25:41 个人分类: Linux 一.问题描述 在apache2的httpd配置中,很多情况都会出现403. 刚安 ...
- Linux常见疑难问答
Linux常见疑难问答 (1)按a~z顺序排列启动服务进程. #exportLC_ALL=C #英文环境变量设置,主要用于解决乱码问题 #chkconfig –list | gre ...
- Linux常见系统故障
Linux常见系统故障 1.修复MBR扇区故障 2.修复GRUB引导故障 3./etc/inittab文件丢失 4.遗忘root用户密码 5.修复文件系统 6.磁盘资源耗尽故障 一.修复MBR扇区故障 ...
- neutron trouble shooting - ip can not ping
neutron创建了一个router后,显示列表如下: [root@controller01 keystone]# neutron router-port-list router +--------- ...
随机推荐
- cookie的保存时间
使用 .setMaxAge()设置(单位是秒) second>0 保存在硬盘上的时间 second<0 默认保存在浏览器的内存中 second=0 立即删除
- linux for java programer
http://www.kancloud.cn/digest/javaxviii/126781 .查找文件 find / -name filename.txt根据名称查找/目录下的filename.tx ...
- mybatis(二)执行CRUD操作的两种方式配置和注解
一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...
- springmvc下上传文件
使用ajax+表单+jQuery: function sendFile() { var action = "c/goFile.do"; $("#form").a ...
- linux强制umount设备的方法
假如挂载时使用了:mount /dev/sda1 /mnt/sda1 #查找占用设备的pid fuser -m /mnt/sda1 #假如此时得到的pid为12345 kill -9 12345 um ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON RegionToBin1
zw版[转发·台湾nvp系列Delphi例程]HALCON RegionToBin1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Var ...
- 【pyQuery】抓取startup news首页
#! /usr/bin/python # coding: utf-8 from pyquery import PyQuery c=PyQuery('http://news.dbanotes.net/' ...
- SqlServer 在创建数据库时候指定的初始数据库大小是不能被收缩的
当你在SqlServer创建数据库的时候可以指定数据库文件的初始大小,比如下图中我们将新创建的数据库MyDB的大小设置成了1024MB 那么你建好的数据库的确也就会占用1024MB左右的磁盘空间 不过 ...
- UIActivityViewController(转)
在iOS 6之后提供了一个分享列表视图,它通过UIActivityViewController管理.苹果设计它主要的目的是替换分享动作选单(ActionSheet),分享动作选单是出于分享目的的动作选 ...
- JAVA 集合List,数组,Set,Map,直接的相互转换
Java集合转换[List<-->数组.List<-->Set.数组<-->Set.Map-->Set.Map-->List] //List--> ...