1.处理Linux系统故障的思路:
(1)重视报错提示信息;
(2) 查阅日志文件(一般为/var/log/messages)
(3)分析定位问题
(4)解决问题
2.忘记root密码:
RHEL6 及以前版本:
(1)重启系统至grub引导界面,按ESC键;
(2)光标定位到内核选项,按e 键进入编辑模式;
(3)找到kernel那行,末尾添加single或1,进入单用户模式;
(4)按Enter和b键,引导进入单用户
(5)修改密码,修改完毕重启即可
RHEL 7 : 采用GRUB2 为启动器时,,将无法通过单用户模式重置root密码,重置密码主要有rd.break和init两种方法。
init 方法:
(1)重启系统,并在GRUB2 启动显屏时,按e键进入编辑模式;
(2)在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh
(3)按Ctrl+x启动到shell。
(4)挂载文件系统为可写模式:mount -o remount,rw /
(5)修改密码
(6)如果之前系统启用了selinux,必须运行以下命令,否则将无法正常启动系统:
touch /.autorelabel
(7)运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启。
rd.break方法:
(1)启动的时候,在启动界面,相应启动项,内核名称上按“e”;
(2)进入后,找到linux16开头的地方,按“end”键到最后,输入rd.break,按ctrl+x进入;
(3)进去后输入命令mount,发现根为/sysroot/,并且不能写,只有ro=readonly权限;
mount -o remount,rw /sysroot/,重新挂载,之后mount,发现有了r,w权限;
(4)chroot /sysroot/ 改变根;
①echo RedHat|passwd --stdin root 修改root密码为redhat,或者输入passwd,交互修改;
②还有就是先cp一份,然后修改/etc/shadow文件
(5)touch /.autorelabel 这句是为了selinux生效
(6)ctrl+d 退出
(7)然后reboot
3.Linux系统无法启动
导致系统无法启动的可能原因有:
1)文件配置不当,比如/etc/inittab、/etc/fstab等文件配置错误或丢失;
文件丢失,插入光盘,救援模式
2)非法关机,导致root文件破坏,即根分区被破坏;
fsck修复文件系统
3)内核崩溃,无法启动;
4)系统引导问题;
5)硬件故障;
4.grub文件损坏或丢失
修复GRUB:
grub配置文件丢失:
开机后会直接进入grub界面,显示为grub>:
grub>insmod xfs
grub>set root=(hd0,1)
grub>linux16 /vmlinuz-xxxxx root=/dev/mapper/centos-root
grub>initrd16 /initramfs-.xxxxx.img
修复完成后即可进入系统
grub>boot
重建配置文件,也可以使用>替代-o
grub2-mkconfig -o /boot/grub2/grub.cfg
5.修改mbr
备份MBR:
#dd if=/dev/sda of=/root/mbr.bak count=1 bs=512
破坏bootloader:
#dd if=/dev/zero of=/dev/sda count=1 bs=200
这里边block size只要小于等于446即可。
修复方式:
1、借助其他系统挂载磁盘修复。
修复方式同光盘修复类似,也是使用grub2-install命令。
2、借助安装光盘修复。
1).装入光盘,在光盘引导界面选择troubleshooting:
2).选择进入救援模式:
3).按回车键继续:
4).进入磁盘挂载选择模式:
磁盘将会被挂载至/mnt/sysimage/下
1- 1. continue 以rw方式挂载分区。
2- 2. read only 以ro方式挂载分区。
3- 3. skip 跳过,将来自己手工挂载磁盘。
5).选择continue,稍等片刻,提示已经挂载完成。
6).此时进入救援模式的命令行:
7).使用grub2-install命令重建bootloader:
#grub2-install --root-directory=/mnt/sysimage /dev/sda
显示无错误,使用sync写入硬盘,reboot重启系统。
8).重启后无错误,grub正常运行:
使用备份还原:
dd if=/root/mbr.bak of=/dev/sda count=512 bs=1