zoukankan      html  css  js  c++  java
  • Linux_系统破坏性修复实验

    目录

    修改系统用户密码

    随便介绍一个修改Linux系统用户密码的方法。
    步骤
    开机读秒时按任意键
    进入grub列表项配置按e
    选择系统kernel版本按e
    在最后添加空格1,回车后按b启动,进入单用户模式
    setenforce 0 关闭SELinux
    passwd root
    init 5 切换到桌面模式

    grub修复

    vim /boot/grub/grub.conf
    rm -f /boot/grub/grub.conf
    reboot
    grub>root (hd0,0) (如果系统不止一块硬盘,需执行grub>setup (hd0))
    grub>kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=/dev/sda2 (lv系统改为root=/dev/mapper/vgqin1-lvroot或者root=LABEL=/)
    grub>initrd /initramfs-2.6.32-71.e16.x86_64.img
    grub>boot

    系统修复

    下面是一个修复的实验:
    备份重要资料:
    mkdir /backup
    dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
    cp /etc/fstab /backup/fstab.bak
    cp /etc/inittab /backup/inittab.bak
    cp /etc/rc.d/rc.sysinit /backup/rc.sysinit.bak
    cp /etc/rc.d/rc.local /backup/rc.local.bak

    破坏性操作:
    rm -rf /boot/*
    rm -f /etc/fstab
    rm -f /etc/inittab
    rm -f /etc/rc.d/rc.sysinit
    rm -f /etc/rc.d/rc.local
    dd if=/dev/zero of=/dev/sda bs=446 count=1
    reboot

    选择修复模式
    光盘启动选择Rescue installed system (若需网络引导,选择URL模式,本地光盘选择Local cdrom)
    continue
    shell start shell

    修复fstab
    fdisk -l
    mkdir /jmilk
    mount /dev/sda2 /jmilk (lv下需要执行lvm vgscan和lvm vgchange -ay激活vg才能挂载)
    cp /bachup/fstab.bak /jmilk/etc/fstab
    reboot

    再次进入修复模式
    若看到chroot /mnt/sysimage,说明/etc/fstab恢复成功

    恢复内核
    mkdir /jmilk
    mount /dev/cdrom /jmilk
    rpm -ivh /jmilk/Package/kernel-2.6.32-71.e16.x86_64.rpm –root=/mnt/sysimage/ –force

    恢复引导程序
    chroot /mnt/sysimage/
    grub-install /dev/sda
    ls /boot/grub
    vi /boot/grub/grub.conf
    default=0
    timeout=5
    title linux for jmilk
    root (hd0,0)
    kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=/dev/sda2
    #lv系统改为root=/dev/mapper/vgqin1-lvroot或者root=LABEL=/
    #:r! ls /boot/vmlinuz-2.6.32-71.el6.x86_64
    initrd /initramfs-2.6.32-71.e16.x86_64.img
    #:r! ls /boot/initramfs-2.6.32-71.e16.x86_64.img
    #可尝试写错,调试grub

    恢复init
    rpm -qf /etc/inittab
    rpm -qf /etc/rc.d/rc.sysinit
    rpm -qf /etc/rc.d/rc.local
    mount /dev/cdrom /mnt/cdrom
    rpm -ivh /mnt/cdrom/Packagers/initscripts-9.03.17-1.el6.x86_64.rpm –force
    两次exit退出到图形界面选择reboot Reboot
    重启后系统自动执行selinux relabel,几分钟后自动重启,至此,系统修复完成。

    最后

    本次额实验主要是通过这种方式累对系统启动流程有一个更加深入额理解。

    JMilk

  • 相关阅读:
    Mac下ssh连接远程服务器时自动断开问题
    解决php中json_decode的异常JSON_ERROR_CTRL_CHAR (json_last_error = 3)
    如何写.gitignore只包含指定的文件扩展名
    python操作mysql数据库
    php数组函数
    Python中字符串切片操作
    Python实现字符串反转的几种方法
    每个Android开发者都应该了解的资源列表
    Android Studio 入门指南
    一个优秀的Android应用从建项目开始
  • 原文地址:https://www.cnblogs.com/jmilkfan-fanguiju/p/11825240.html
Copyright © 2011-2022 走看看