系统故障排除
作者:互联网
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