ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

系统故障排除

2020-11-10 12:33:31  阅读:206  来源: 互联网

标签:grub boot svr5 dev 排除 etc 系统故障 root


 

 

 

linux破解密码

 

案例一:破解Linux系统密码

 

1.启动Linux
2.在grub菜单选择上下键
3.按e   选择kernel这行,在选择e 
4.在最后空格加上1,回车
5.按b键启动
6.sh-3.2# passwd  修改密码
7.sh-3.2# init 5

 

启动Linux-->在grub菜单选择上下键按e-->选择kernel这行,在选择e -->在最后空格加上1,回车-->按b键启动。

进入单用户模式,修改密码。

 

步骤

 

步骤一:启动Linux在grub菜单选择上下键

 

如图-1所示,在此处按上下键停止在此界面(如果虚拟机总是很卡跳过此界面,可选择“开机到BIOS”再按F10保存退出即可看见),按e进入编辑。

 

 

 

 如图-2所示,选择kernel这行,在选择e。

 

 

 如图-3所示,在最后空格加上1,回车。

 

 

如图-4所示,按b键启动。

 

 

 如图-5所示,执行passwd修改密码即可。切换运行级别5。

 

 

 

 

案例二:为grub加密

 

1.在终端执行grub-md5-crypt会生成md5,加密字符串。
[root@svr5 /]# grub-md5-crypt 
Password: 
Retype password: 
$1$MWW7E$0iF8E8dCkAmJq0M27Aw5k.
[root@svr5 /]# 
2.将其加密字符串写到,grub.conf配置文件。
[root@svr5 /]# vim /boot/grub/grub.conf 
......
password --md5 $1$MWW7E$0iF8E8dCkAmJq0M27Aw5k.  ##注意写到title字段的上边  
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
......
3.重启再次进入在grub菜单选择上下键,需先按“p”输入密码。敲回车!
4.按e   选择kernel这行,在选择e 
5.在最后空格加上1,回车
6.按b键启动
7.sh-3.2# passwd  修改密码
8.sh-3.2# init 5

 

修复MBR扇区故障

 

1.为虚拟机添加一块80GB的新磁盘 
2.采用MBR模式分区,划分一个1GB的新分区 
3.将此分区格式化、挂载到 /mnt 下 
4.MBR备份及破坏 
5.备份磁盘/dev/sda的第1个扇区 
6.备份文件保存到/mnt/sda.mbr.bak 
7.清除/dev/sda前512个字节,关机重启 
8.进入光盘急救模式,进行恢复 

 

方案

 

本实验的整体操作是利用dd命令备份,再进行还原。需注意备份文件要放在另一硬盘。

修复时因MBR损坏,无法引导开机,是通过光盘引导进入修复模式进行还原。

在修复模式下,系统当中的目录是不允许挂载的。需要自己建立一个目录挂载。

 

 

步骤

 

实现此案例需要按照如下步骤进行。

 

步骤一:为虚拟机添加一块80GB的新磁盘

 

采用MBR模式分区,划分一个1GB的新分区,命令操作如下所示:

 

[root@svr5 ~]# ls /dev/sdb   //是否识别新的硬盘sdb
/dev/sdb
[root@svr5 ~]# parted /dev/sdb mktable msdos
信息: You may need to update /etc/fstab.                                  

[root@svr5 ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  标志

[root@svr5 ~]# parted /dev/sdb mkpart primary ext4 0 1G
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i                                                
信息: You may need to update /etc/fstab.                                  

[root@svr5 ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End     Size    Type     File system  标志
 1      512B   1000MB  1000MB  primary

[root@svr5 ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
[root@svr5 ~]# ls /dev/sdb1
/dev/sdb1
[root@svr5 ~]#

 

 

 

 

 

 

 

将此分区格式化、挂载到 /mnt 下。

 

命令操作如下所示:

 

[root@svr5 ~]# mkfs.ext4 /dev/sdb1
……
[root@svr5 ~]# mount /dev/sdb1 /mnt/
[root@svr5 ~]# mount | grep /mnt/
/dev/sdb1 on /mnt type ext4 (rw)
[root@svr5 ~]#

 

 

 

 

步骤二:MBR备份及破坏

 

 

分析:采用dd命令进行备份与破坏,把磁盘sda的前512个字节读取并写到一个文件里,要注意的是要写到mnt目录里。

 

备份磁盘/dev/sda的第1个扇区,命令操作如下所示:

 

[root@svr5 ~]# dd if=/dev/sda of=/mnt/sda.mbr.bak bs=1 count=512
记录了512+0 的读入
记录了512+0 的写出
512字节(512 B)已复制,0.00107661 秒,476 kB/秒
[root@svr5 ~]# ls -l /mnt/sda.mbr.bak 
-rw-r--r--. 1 root root 512 3月   3 15:51 /mnt/sda.mbr.bak
[root@svr5 ~]#

 

 

 

 

 

破坏磁盘/dev/sda的第1个扇区,命令操作如下所示:

 

 

[root@svr5 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512
记录了512+0 的读入
记录了512+0 的写出
512字节(512 B)已复制,0.00382325 秒,134 kB/秒

 

 

 

 

 

关机,命令操作如下所示:

 

[root@svr5 ~]# init 0

 

步骤三:进入光盘急救模式,进行恢复

如图-6所示,将光盘驱动的启动时连接的勾去掉,单击确认。

 

 

 

 开机查看效果,如图-7所示。

 

 

如图-8所示,关闭虚拟机电源,进入光盘急救模式,进行恢复,将光盘驱动启动时连接的勾打上,确保放入的是RHEL6.5的光盘,进入光盘修复模式。

 

 

 

 如图-9所示,开机选择第三项“Rescue installed system”进入修复模式。

 

 

 

 

如图-10所示,选择语言,此模式只支持英文。默认即可,按回车键。

 

 

如图-11所示,选择键盘,默认即可,按回车键。

 

 

 如图-12所示,是否开启网络,按Tab键选择“No”,按回车键。

 

 

 如图-13所示,简单理解是说会尝试寻找Linux系统分区,找到了会把它挂载/mnt/sysimage,按Tab键选择“Continue”,按回车键。

 

 

 如图-14所示,没有找到任何Linux分区,按回车键。

 

 

如图-15所示,选择start shell打开一个Shell环境,按回车键。

 

 

 

创建目录/bak,并挂载。

 

命令操作如下所示:

 

bash-4.1# mkdir /bak
bash-4.1# mount /dev/sdb1 /bak
bash-4.1# dd if=/bak/sda.mbr.bak of=/dev/sda
bash-4.1# reboot

 

修复GRUB引导故障

问题

 

删除/boot/grub/grub.conf 文件 
关机重启,进行修复 
进入系统后恢复或重写/boot/grub/grub.conf 文件 

 

方案

删除group.conf后,系统需要手动引导内核启动和加载必要的驱动程序。进入系统后需从新创建和书写group.conf配置文件。
手动引导内核的命令依次为:
grub> root (hd0,0) —— 找到/boot分区,此处为第一块磁盘的第一个分区。
grub> kernel /vmlinuz(Tab键) ro root=/dev/sda2 —— 指定内核及以只读方式加载根分区。
grub> initrd /initramfs-(Tab键) —— 指定必要驱动程序。
grub> boot —— 启动。

 

步骤

实现此案例需要按照如下步骤进行。

步骤一:删除/boot/grub/grub.conf 文件

命令操作如下所示:

 

 

[root@svr5 ~]# rm -rf /boot/grub/grub.conf
[root@svr5 /]# df –h                             //查看一下根分区是sda2,恢
复时会用到
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        97G  2.8G   89G   4% /
tmpfs           491M   76K  491M   1% /dev/shm
/dev/sda1       194M   34M  151M  19% /boot
/dev/sda3        97G  188M   92G   1% /data
/dev/sr0        3.6G  3.6G     0 100% /media/RHEL_6.5 x86_64 Disc 1
[root@svr5 ~]# init 6

 

 

 

 

如图所示,系统停在grub>处无法进行启动。

 

 

步骤二:进入系统后恢复或重写/boot/grub/grub.conf 文件

首先进入系统,手动输入命令,此模式下支持Tab键。

命令操作如图所示:

 

 

 

 进入系统后恢复或重写/boot/grub/grub.conf 文件,命令操作如下所示:

 

 

[root@svr5 /]# vim /boot/grub/grub.conf
[root@svr5 /]# cat /boot/grub/grub.conf 
default=0        //时间截止默认进入第一个系统
timeout=20       //时间等待为20秒钟
title TARENA NSD Linux Server    //选择系统时,系统名称
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2  //内核名称复制粘贴
initrd /initramfs-2.6.32-431.el6.x86_64.img                //驱动文件名复制粘贴
[root@svr5 /]# init 6

 

如图所示,查看grub引导界面变化。

 

 

 

或者:用备份恢复系统grub启动

1.做备份

[root@localhost ~]# mkdir  /data
[root@localhost ~]# mount /dev/sdb1 /data/
[root@localhost ~]# cp /boot/grub/grub.conf  /data/
[root@localhost ~]# ls  /data/
grub.conf  lost+found 

 

 

2.进入救援模式,用备份恢复grub引导启动

 

 

 

 3.关机,这个需要设置cdrom为第一启动项,放入系统盘进入救援模式

 

 

 4.用备份恢复grub.conf引导文件

 

 手写恢复grub启动

 

1.对 /boot/grub/grub.conf 进行手动编写,注意:错一点就进不去

进去输入root  (hd0, 按Tab键,出分区列表,找到启动分区

 

 

 2.成功进入系统后进入vim  /boot/grub/grub.conf再次进行编写

注:因为上1编写是临时的,所以在进入系统后要在/boot/grub/目录下创建grub.conf文件 进行手写变异,使其永久生效。

 

 

 

进入系统手写grub格式:

 

default=0       //0代表启动第一个内核   1代表启动第二个    
timeout=5       //选择进入系统时间5秒                     
title Red Hat Enterprise Linux (2.6.18-348.el5)  //系统名随便起     
root =(hd0,0)  //指定 root在救援模式里指定的启动引导区       
      kernel /vmlinuz-2.6.18-348.el5  ro  root=/boot/sda2  //内核
      initrd /initrd-2.6.18-348.el5.img

 

/etc/inittab文件丢失

 

 

 问题

 

 

 

1. 查询/etc/inittab文件是由哪个软件包产生的 
2. 删除/etc/inittab文件,重启系统 
3. 切换到运行级别3,进行修复 

 

方案

 

在RHEL6.5操作系统里,如果删除/etc/inittab文件,会默认进入第3运行级别。

修复的思路是,首先通过命令rpm -qf /etc/inittab,查看该文件是有那个包产生的,在重新将此安装包强制安装一遍。

 

 

步骤

 

 

实现此案例需要按照如下步骤进行。

 

步骤一:查询/etc/inittab文件是由哪个软件包产生的

 

命令操作如下所示:

 

 

 

[root@svr5 ~]# rpm -qf /etc/initta
initscripts-9.03.40-2.el6.x86_64
[root@svr5 ~]#

 

 

 

 

 

步骤二:删除/etc/inittab文件,重启系统

 

命令操作如下所示:

 

 

 

[root@svr5 ~]# rm -rf /etc/inittab
[root@svr5 ~]# init 6

 

 

 

 

 

步骤三:切换到运行级别3,进行修复

分析: 注意安装时要加强制才可以。

命令操作如下所示:

 

 

[root@svr5 ~]# rpm -ivh --force /misc/cd/Packages/initscripts-9.03.40-2.el6.x86_64.rpm 
Preparing...                ########################################### 
[100%]
   1:initscripts            ########################################### 
[100%]
[root@svr5 ~]# ls /etc/inittab 
/etc/inittab
[root@svr5 ~]#

 

 

 

修复/etc/fstab

 

 

问题

 

 

 

修改/etc/fstab中根分区的挂载设置
将根分区的UUID值故意写错 
重启系统,观察错误现象 
修复上述故障 

 

 

 

 方案

 

Linux在开机过程中会有一些提示,大家遇到问题时要多去关注这些信息。

需要注意的一点是,在开机过程中根分区是以只读方式加载的,所以要想修改并保存,要自己手动以读写方式挂载根分区。

 

 

步骤

 

 

实现此案例需要按照如下步骤进行。

步骤一:修改/etc/fstab中根分区的挂载设置

将根分区的UUID值故意写错(错误不要太大,就将第一个字母故意改错,修复时还有手动改回来)

重启系统,观察错误现象。

命令操作如下所示:

 

 

 

[root@svr5 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Jan 14 17:11:20 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=fbc9bd53-e533-44dd-9236-55ab71559d87 /            ext4    defaults      
1 1
[root@svr5 ~]# vim /etc/fstab
[root@svr5 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Jan 14 17:11:20 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=rbc9bd53-e533-44dd-9236-55ab71559d87 /            ext4    defaults      
1 1
[root@svr5 ~]# init 6

 

 

 

 

如图所示,系统开机界面。系统提示请输入root的密码进入修复。

 

 

 

 

步骤二:输入root密码

命令操作如下所示:

 

 

[root@svr5 ~]# mount -o remount,rw /dev/sda2 /
[root@svr5 ~]# vim /etc/fstab
[root@svr5 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Jan 14 17:11:20 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=fbc9bd53-e533-44dd-9236-55ab71559d87 /            ext4    defaults  
1 1
[root@svr5 ~]#init 5

 

 恢复 /boot 目录

 

RHEL6

 

一、模拟/boot目录损坏

 

#  umount  /boot           //假设sda1对应/boot分区
#  mkfs.ext4  /dev/sda1

 

二、以光盘启动,进入救援模式

 

 

 进入救援模式:

 

 选择语言:

选择键盘:

 

救援方法:

 

 

 

 设置网络:

 

Resue:

选择continue即可:

 

 

 

 

  然后进入到shell选择界面。我们选择开启一个shell,以供我们使用,完成系统修复。

 

 进入shell之后,我们就有得到了一个修复我们系统的平台,正式开始修复工作

 

挂载sda1到/boot目录

 

 

 三、挂载光盘到/media目录

 

 

四、强制安装kernel包

 

 

 五、安装完kernel后,内核文件等已经安装成功,但是没有grub,还要继续安装grub

 

 

 

 六、grub安装完毕后,没有生成配置文件,手工创建配置文件

 

 

 

 

 

七、更正/etc/fstab中boot目录的UUID

 

 

 

 

 

八、退出两次,选重启

 

Exit

Exit

reboot

 

标签:grub,boot,svr5,dev,排除,etc,系统故障,root
来源: https://www.cnblogs.com/zhongguiyao/p/13953165.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有