Linux故障修复

软件包故障
一、库文件丢失
破坏:rm –rf /lib64/libacl.so.1
故障状态:依赖这个库的命令不可用;系统不可启动

修复:
如果丢失的是软链接文件;
方法:
1、进入救援模式
2、创建软件链接
cd /mnt/sysimage
ln –s libc.2-17.so.6 libc.so.6
如果删除的是文件,只能从其它主机拷贝一份到本机
二、rpm故障
1、rpm文件损坏
破坏:rm –f /bin/rpm
故障状态:rpm命令不可使用

修复:
方法一:从版本相同的其它主机上拷贝到本机
远程复制:使用scp命令;或用U盘拷贝
方法二:从光盘中使用cpio解压丢失文件
1、挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、cpio恢复
rpm2cpio /mnt/cdrom/Packages/rpm-VERSION-RELEASE.rpm |cpio –idv ./bin/rpm
cp bin/rpm /bin/
2、rpm程序损坏
破坏:rpm –e rpm –nodeps
故障状态:rpm不可用

修复:
1、进入救援模式;挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、用救援模式的rpm来安装rpm
rpm –ivh /mnt/cdrom/Package/rpm-VERSION-RELEASE.rpm -–root=/mnt/sysimage –force
三、yum故障
1、检查配置文件
2、清除缓存
磁盘管理及文件系统
分区故障
一、破坏分区表并恢复之(备份分区表)
分区表备份:
dd if=/dev/sda of=/data/mbr_bak bs=1 count=512
scp /data/mbr_bak 192.168.30.69:/data 复制到远程主机
破坏:dd if=/dev/zero of=/dev/sda bs=1 count=512
故障状态:

修复:
如果机器没重启,直接通过备份恢复即可
dd if=/data/mbr_bak of=/dev/sda
如果机器重启了,发现分区表损坏:
1、进入救援模式
2、通过网络从远程主机上拷贝备份的分区表恢复之
scp 192.168.30.69:mbr_bak .
dd if=mbr_bak of=/dev/sda
如果有大小一样,分区策略一样,也可拿相同的分区表进行恢复
二、克隆分区表
前提:第二块硬盘比第一块硬盘大
dd if=/dev/sda of=/dev/sdb
三、删除分区
破坏:可通过清除mbr的最后2个字节的标识位来删除分区
dd if=/dev/zero of=/dev/sda bs=1 count=2 skip=510 seek=510
四、格式化分区
dd if=/dev/zero of=/dev/sdc
五、分区中存在夹缝导致无法分区
模拟故障:

分区时有可能会跳过某些空间导致分区中存在夹缝,默认创建新分区时从夹缝的空间开始,如果你分的分区空间大于夹缝空间,就会导致分不出来
修复:
分区时跳过夹缝空间

挂载
一、/etc/fstab文件故障
(1)要挂载的设备故障
破坏:fstab文件里要挂载的设备信息错误且开启自检

故障状态:

修复:
1、进入救援模式
2、错误信息修改正确
或关闭开启开机自检,让系统启动;启动后修改错误信息
(2)挂载点故障

系统启动时会挂载设备失败,但不影响系统启动
注意:Centos 6进入救援模式时可以设置是否启用网络功能;Centos 7没有设置,需要临时添加IP地址
网络管理
Centos 6网络故障:禁用NetworkManager
计划任务
一、Centos6 /etc/crontab文件故障
破坏:

故障状态:机器无限重启
修复:
1、进入单用户模式或救援模式
2、修复/etc/crontab文件(删除错误行)
二、Centos7 /etc/crontab文件故障
破坏:

故障状态:机器无限重启
修复:
1、临时修改内核参数
选中要编辑的内核:按e键
在linux16行尾添加rc.break
ctrl+x
2、重新挂载/(以读写方式)
mount –o remount,rw /sysroot
3、修复crontab文件(删除错误行)
vi /sysroot/etc/crontab
启动和内核管理
进入单用户模式
1、编辑grub菜单(选定要编辑的title,按e键)
2、在选定的kernel后附加
1,s,S,single都可以
3、在kernel所在行,键入“b”命令
Centos 6
一、initramfs-2.6.32-696.el6.x86_64.img 损坏恢复
破坏:rm –f /boot/initramfs-2.6.32-696.el6.x86_64.img
故障状态:光标在闪烁

修复:
1、进入救援模式
2、切换根
chroot /mnt/sysimage
3、重新生成initramfs文件
mkinitrd /boot/initramfs-`uname –r` `uname –r`
sync; sync;sync
二、误删除/boot/vmlinuz-2.6.32-696.el6.x86_64 恢复
破坏:rm –f /boot/vmlinuz
故障状态:
修复:
1、进入救援模式;挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、从光盘复制丢失文件到/boot/下并改名
cp /mnt/cdrom/isolinux/vmlinuz-VERSION-release /mnt/sysimage/boot/vmlinuz-`uname –r`
注意:不切换根写救援模式挂载的路径
三、/boot/目录下所有文件丢失(不包括目录)修复
破坏:rm –f /boot/file
故障状态:

修复:
方法一:
1、进入救援模式
2、切换根
chroot /mnt/sysimage
3、挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
4、修复initramfs文件
mkinitramfs /boot/initramfs-`uname –r`.img `uname –r`
5、修复vmlinuz文件
cp /mnt/cdrom/isolinux/vmlinuz /boot/vmlinuz-`uname –r`
方法二:
1、进入救援模式;挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、直接安装kernel
rpm –ivh /mnt/cdrom/Packages/kernel-VERSION-RELEASE.rpm –-root=/mnt/sysimage –force
三、破解root用户密码
Centos 5和6
1、进入单用户模式
2、修改密码
四、服务故障导致系统无法启动
破坏:在我们添加的测试服务脚本里模拟个故障

故障状态:

修复:
1、重启主机
2、进入单用户模式(切换到开机不启动的模式)
3、修改服务模式(服务开机不自动启动)
chkconfig –list testsrv
chkconfig testsrv off
4、重启
5、启动后解决服务问题
五、破坏grub stage 1恢复之
破坏:dd if=/dev/zero of=/dev/sda bs=1 count=446
故障状态:

修复:
方法一:有分区表备份,用分区表恢复
1、进入救援模式(启用网络功能)
2、切换根
chroot /mnt/sysimage
3、从远程主机拷贝分区表备份到本机恢复之
scp 192.168.30.7:mbr_bak .
dd if=./mbr_bak of=/dev/sda
方法二:没有分区表备份,重新安装grub
1、进入救援模式
2、切换根
chroot /mnt/sysimage
3、安装grub
grub-install /dev/sda
5、破坏grub stage 1.5恢复之
破坏:dd if=/dev/zero of=/dev/sda bs=1 count=10000 skip=512 seek=512
故障状态:光标闪烁

修复:
方法一:grub交互式命令安装
1、进入救援模式
2、安装grub
grub
root (hd0,0)
setup (hd0)
quit
方法二:grub-install安装
1、进入救援模式
2、切换根
chroot /mnt/sysimage
3、安装grub
grub-install /dev/sda
sync;sync;sync

7、/boot/grub/grub.conf文件故障
(1)破坏:把kernel和initrd行位置互换

故障状态:

修复:
1、系统启动时按上下方向键让Grub菜单选项露出来
2、按e键,可以看到kernel和initrd顺序反了
3、按d键把kernel选项删除
4、按o键,新建一项
5、按e键编辑这项
重新添加initrd,这里可用tab键补全

6、编辑完后按回车,再按b键,系统即可启动
(2)/boot/grub/grub.conf文件丢失
破坏:rm –f /boot/grub/grub.conf
故障状态:

修复:
1、进入救援模式
2、切根
chroot /mnt/sysimage
3、添加grub.conf配置文件,写关键的几行
vim /mnt/sysimage/boot/grub/grub.conf
default=0
timeout=5
title linux
kernel /vmlinuz-VERSION-RELEASE root=/dev/sda2 rhgb quiet
initrd /initramfs-VERSION-RELEASE.img
7、boot/目录下所有文件丢失修复
破坏:rm –rf /boot/*
故障状态:

恢复
方法一:
1、进入救援模式
2、切根
chroot /mnt/sysimage
3、恢复boot/目录下vmlinuz和initramfs
检查光盘是否挂载,没挂载将光盘挂载
df 或mount
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
cp /mnt/cdrom/isolinux/vmlinuz /boot/vmlinuz-`uname –r`.img
mkinitrd initramfs.img `uname –r`
4、恢复grub
grub-install /dev/sda
5、恢复grub配置文件
cat > /boot/grub.conf
default=0
timeout=5
title linux
kernel /vmlinuz-VERSION-release.img root=/dev/sda2 rhqb quiet
initrd /initramfs.img
sync;sync;sync
方法二:
1、进入救援模式;挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、安装kernel,修复boot
rpm –ivh /mnt/cdrom/Packages/kernel-VERSION -–root=/mnt/sysimage –force
3、切根
chroot /mnt/sysimage
4、安装grub,恢复grub
grub-install /dev/sda
5、恢复grub配置文件
cat > /boot/grub/grub.conf
default=0
timeout=5
title linux
kernel /vmlinuz-VERSON root=/dev/sda2 rhgb quiet selinux=0
initrd /initramfs-VERSION.img
注意:如果boot不是独立的分区,需要加路径(/boot/vmlinuz);grub的/表示的是boot目录所在的分区
8、/etc/fstab和/boot/所有文件丢失修复
破坏:rm –f /etc/fstab /boot/*
故障状态:

恢复:
1、进入救援模式
2、修复/etc/fstab文件
查看分区信息和文件系统
找根分区;方法:挂载上看
把和启动相关的分区挂载上在fstab文件里(两个必要分区:/分区,boot分区)
fdisk –l;blkid
mkdir /mnt/rootfs
mount /dev/sda2 /mnt/rootfs
cat > /mnt/rootfs/etc/fstab
/dev/sda2 / ext4 defaults 0 0
/dev/sda1 /boot ext4 defaults 0 0
/dev/sda5 swap swap ext4 defaults 0 0
3、重新启动系统进救援模式(让系统自动识别根并自动挂载)
exit;exit;重启
4、修复boot/目录
挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
修复vmliuz和initrd文件
rpm –ivh /mnt/cdrom/Packages/kernel-VERSION -–root=/mnt/sysimage –force
切换根
chroot /mnt/sysimage
修复grub和grub配置文件
grub-install /dev/sda
vim /boot/grub/grub.conf
default=0
timeout=5
title linux xxx
kernel /vmlinuz-VERSION root=/dev/sda2
initrd /initrd-VERSION.img
9、lvm环境下,/etc/fstab和boot/目录下所有文件丢失修复
破坏:rm –f /etc/fstab /boot/*
故障状态:

修复:
1、进入救援模式
2、激活卷组(救援模式没法直接挂载逻辑卷)
3、修复/etc/fstab文件
查看分区信息及逻辑卷信息,找出根分区及/boot分区;方法:挂载上查看
4、重启系统重新进入救援模式(让系统重新识别根并进行自动挂载)
5、修复vmlinuz和initrd文件
6、切根
7、修复grub
命令:
vgchange –ay
mkdir /mnt/rootfs
mount /dev/vgname/lvname /mnt/rootfs
lvscan
vi /mnt/rootfs/etc/fstab
/dev/vgname/lvname / ext4 defaults 0 0
/dev/sda1 /boot / ext4 defaults 0 0
exit;重启
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
rpm –ivh /mnt/cdrom/Packages/kernel-VERSION –root=/mnt/sysimage –force
chroot /mnt/sysimage
grub-install /dev/sda1
vi /boot/grub/grub.conf
default=0
timeout=5
title linux xxx
kernel /vmlinuz-VERSION root=/dev/vgname/lvname
initrd /initramfs-VERSION.img
10、Centos 6上丢失/sbin/init文件修复
破坏:rm –f /sbin/init
故障状态:

修复:
方法一:网络中如果有系统版本相同的主机,直接复制这个文件到此主机上即可
1、进入救援模式(开启网络功能)
2、切换根
chroot /mnt/sysimage
3、远程复制/sbin/init文件到本机
scp 192.168.30.106:/sbin/init /sbin/
方法二:用cpio命令把丢失文件解压出来
1、进入救援模式;挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、切换根
chroot /mnt/sysimage
3、解压文件
rpm2cpio /mnt/cdrom/Packages/upstart-VERSION-release | cpio –idv ./sbin/init
方法三:重新安装upstart
1、进入救援模式;挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
2、切根
chroot /mnt/sysimage
3、安装upstart
rpm –ivh /mnt/cdrom/Packages/upstart-VERSION.rpm –force
Centos 7
一、破解root口令
方法一:
启动时任意键暂停启动,让grub菜单露出来
按e键进入编辑模式
将光标移动到linux16开始的行,添加内核参数rd.break
按ctrl-x启动
mount –o remount,rw /sysroot
chroot /sysroot
passwd root
如果SELinux启动,必须新建个文件:
touch /.autorelabel
exit
reboot
方法二:
启动时任意键暂停启动
按e键进入编辑模式
将光标移动linux16开始的行,行尾添加rw init=/sysroot/bin/sh
按ctrl+x启动
chroot /sysroot
passwd root
touch ./autorelabel
exit
reboot
二、/boot/grub2/所有文件丢失修复
破坏:rm –rf /boot/grub2/*
故障状态:光标在闪烁

修复:
1、进入救援模式
2、切根
chroot /mnt/sysimage
3、安装grub2
grub2-install /dev/sda
4、生成grub配置文件
grub2-mkconfig –o /boot/grub2/grub.cfg
三、/boot/所有文件丢失
破坏:rm –rf /boot/*
故障状态:

修复:
1、进入救援模式
2、切根;挂载光盘
chroot /mnt/sysimage
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
3、恢复boot目录下文件
rpm –ivh /mnt/cdrom/Package/kernel-VERSION-RELEASE.rpm –force
4、恢复grub2
grub2-install /dev/sda
grub2-mkconfig –o /boot/grub2/grub.cfg
四、/boot/grub2/grub.cfg文件丢失
破坏:rm –f /boot/grub2/grub.cfg
故障状态:

修复:
方法一:
直接在grub命令行里输入:
insmod xfs
set root=(hd0,1)
linux16 /vmlinuz-VERSION-RELEASE root=/dev/sda2 selinux=0
initrd16 /initramfs-VERSION-RELEASE
boot
grub2-mkconfig –o /boot/grub2/grub.cfg
方法二:
1、进入救援模式
2、切根
chroot /mnt/sysimage
3、生成grub配置文件
grub2-mkconfig –o /mnt/sysimage/boot/grub2/grub.cfgQQ截图20180517161714

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98721

(0)
你的命字你的命字
上一篇 2018-05-17
下一篇 2018-05-17

相关推荐

  • Centos7默认网卡名如何修改成eth*

    Centos7 新添加网卡默认的识别名ens*,用起来很不习惯,为了方便系统的统一化管理,如何将默认命名规则改成eth*?

    2018-04-29
  • 用户、组和权限及相关命令

    本文主要介绍Linux用户管理的一些基础概念和一些基础命令的用法。内容分为三个部分:1、用户和组相关介绍;2、用户管理命令;3、组管理命令

    2018-04-08
  • 实现创建私有CA

    CA的构成:PKI: Public Key Infrastructure签证机构:CA(Certificate Authority)注册机构:RA证书吊销列表:CRL证书存取库:X.509:定义了证书的结构以及认证协议标准版本号序列号签名算法颁发者有效期限主体名称主体公钥CRL分发点扩展信息发行者签名证书类型:证书授权机构的证书服务器用户证书获取证书两种方法…

    Linux笔记 2018-05-22
  • sed

    文本处理工具sed

    2018-05-02
  • 网络通信安全基础、openssl、openssh

    数据安全分为: 保密性:数据保密性、隐私性 完整性:数据完整性、系统完整性 可用性:数据有效性   安全攻击分为: 被动攻击:窃听 主动攻击:伪装、重放、消息篡改、拒绝服务   安全机制: 加密、数字签名、访问控制、数据完整性、认证交换机制、流量填充、路由控制、公证   安全服务: 认证: 访问控制: 数据保密性:连接、无连接、…

    Linux笔记 2017-12-06