• 系统故障排除


    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键启动。

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

     

    步骤

    步骤一:启动Linuxgrub菜单选择上下键

    如图-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/fstabboot目录的UUID

     

    八、退出两次,选重启

    Exit
    
    Exit
    
    reboot
  • 相关阅读:
    C++函数四( 具有默认参数值的函数)
    C++函数三(内联函数和函数重载)
    C++函数二(函数的嵌套调用和递归调用)
    C++关于函数声明定义的位置
    C++函数一(标准库函数,自定义函数)
    C++扑克牌发牌游戏程序(包括C++随机数的解释)
    C++数组二(字符数组)
    C++数组一
    C++程序流程结构
    C++运算符与表达式
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/13953165.html
Copyright © 2020-2023  润新知