zoukankan      html  css  js  c++  java
  • 09 引导过程与故障修复

    09 引导过程与故障修复

    1. 系统引导流程

     

    2.系统引导级别

    runlevels——运行级别

    0:关机状态,使用该级别时会关机

    1:单用户模式,无需密码验证即可登录,用于系统维护

    2:字符界面的多用户模式

    3: 字符界面的完整多用户模式,大多数服务器运行在此级别

    4:未分配使用

    5:图形界面的多用户模式,提供了图形桌面操作环境

    6:重启

    3. 引导级别查看及切换

    init命令 0/1/2/3/4/5/6

    1. MBR修复

    l  MBR备份:

    [root@localhost ~]# mkdir /abc

    [root@localhost ~]# mount /dev/sdb1 /abc

    [root@localhost ~]# dd if=/dev/sda of=/abc/sda-mbr-bak bs=512 count=1

    记录了1+0 的读入

    记录了1+0 的写出

    512字节(512 B)已复制,0.000224936 秒,2.3 MB/秒

    l  MBR破坏

    [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1

    记录了1+0 的读入

    记录了1+0 的写出

    512字节(512 B)已复制,0.000185039 秒,2.8 MB/秒

    l  MBR恢复

    先挂载系统光盘,从光盘进入安全模式

     

    按方向键进入boot

     

    按shift键和“+”键将光盘启动移动到第一位,按F10保存退出,按yes确认

     

    1.选择第三项Troubleshooting

     

    2.选第二项

     

    3.选Continue

     

    4.

     

    5.

     

    1. Grub修复

    l  系统备份:

    [root@localhost ~]# mkdir /abc

    [root@localhost ~]# mount /dev/sdb1 /abc

    [root@localhost ~]# dd if=/dev/sda of=/abc/sda-mbr-bak bs=512 count=1

    记录了1+0 的读入

    记录了1+0 的写出

    512字节(512 B)已复制,0.000224936 秒,2.3 MB/秒

    [root@localhost ~]#cp /boot/grub2/grub.cfg /abc/grub.cfg

    l  Grub修复

    先从光盘进入安全模式,1.2.3.4步同上

    l  文件损坏

     

    l  引导程序损坏

     

    1. /boot目录误删除

    l  /boot恢复

    先从光盘进入安全模式,1.2.3.4步同上

    5.进入硬盘

     

    6.挂载光盘恢复boot

     

    7.安装grub2

     

    8.重建grub2.cfg文件

     

    1. root密码修复

    l  方法一,进入单用户模式

    1.进入开机界面按e

     

    2.

     

    按Ctrl+x执行

    3.进入单用户模式

     

    l  方法二

    1.进入硬盘模式

     

    2.编辑shadow文件

     

    3.删除密文

     

    10. 文件系统修复

    xfs文件系统修复:

    破坏:

    [root@localhost ~]# mkdir /d

    [root@localhost ~]# mount /dev/sdb1 /d

    [root@localhost ~]# touch /d/{a..f}

    [root@localhost ~]# ls /d

    a  b  c  d  e  f  lost+found

    [root@localhost ~]# umount /dev/sdb1

    [root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

    记录了4+0 的读入

    记录了4+0 的写出

    2048字节(2.0 kB)已复制,0.000218494 秒,9.4 MB/秒

    [root@localhost ~]# mount /dev/sdb1 /d

    mount: /dev/sdb1 写保护,将以只读方式挂载

    mount: 未知的文件系统类型“(null)”

    修复:

    [root@localhost ~]# xfs_repair /dev/sdb1

    [root@localhost ~]# mount /dev/sdb1 /d

    [root@localhost ~]#

    ext4文件系统修复:

    破坏:

    [root@localhost ~]# mkdir /d

    [root@localhost ~]# mount /dev/sdb1 /d

    [root@localhost ~]# touch /d/{a..f}

    [root@localhost ~]# ls /d

    a  b  c  d  e  f  lost+found

    [root@localhost ~]# umount /dev/sdb1

    [root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

    记录了4+0 的读入

    记录了4+0 的写出

    2048字节(2.0 kB)已复制,0.000218494 秒,9.4 MB/秒

    [root@localhost ~]# mount /dev/sdb1 /d

    mount: /dev/sdb1 写保护,将以只读方式挂载

    mount: 未知的文件系统类型“(null)”

    修复:

    [root@localhost ~]# fsck -y ext4 /dev/sdb1

    /dev/sdb1: ***** 文件系统已修改 *****

    /dev/sdb1: 25/655360 files (0.0% non-contiguous), 83137/2621440 blocks

    [root@localhost ~]# mount /dev/sdb1 /d

    [root@localhost ~]# ls /d

    a  b  c  d  e  f  g  h  i  j  k  l  lost+found  m  n

    11. 空间耗尽故障

    1.添加一块硬盘,分区格式化,挂载

    [root@localhost ~]# fdisk /dev/sdb

    [root@localhost ~]# mkfs.ext4 /dev/sdb1

    [root@localhost ~]# mkdir /disk

    [root@localhost ~]# mount /dev/sdb1 /disk/

    [root@localhost ~]# df –I

    文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点

    /dev/sdb1                  65536      10    65526       1% /disk

    第二,创建多个文件,耗尽容量

    [root@localhost ~]# cd /disk/

    [root@localhost disk]# touch {1..65526}

    第三,验证文件占用情况

    [root@localhost ~]# df -i                                                                                       

    文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点

    /dev/sdb1                  65536   65536        0     100% /disk

    3>尝试创建文件

    [root@localhost disk]# touch q

    touch: 无法创建"q": 设备上没有空间

    4>查看磁盘剩余空间

    [root@localhost ~]# df -hT /disk/

    文件系统       类型  容量  已用  可用 已用% 挂载点

    /dev/sdb1      ext4  976M  4.3M  905M    1% /disk

    第四,修复磁盘耗尽故障

    [root@localhost ~]# mv 重要数据 /root

    [root@localhost ~]#umount /dev/sdb1

    [root@localhost ~]#mkfs.ext4 /dev/sdb1

    [root@localhost ~]# df -i /dev/sdb1

    文件系统       Inode   已用(I) 可用(I) 已用(I)% 挂载点

    /dev/sdb1      65536      11   65525     1%   /disk

    [root@localhost ~]# mount /dev/sdb1 /disk/

    [root@localhost ~]# mv重要数据 /disk

    12. 磁盘坏道故障

    dmesg

    当有硬盘坏道时,通常在dmesg输出的信息中会有 Buffer I/O Error,所以经常检查dmesg的输出可以及时发现是否存在硬盘问题。

    badblocks

    adblocks 可以用来检查硬盘是否有坏道,也可以修复坏道,但仅限于逻辑坏道,物理坏道只能更换硬盘。

    检查命令:

    [root@localhost ~]# badblocks -s -v -o /root/bb.log /dev/sda

    检查 /home 是否有坏道,则命令如下:

    [root@localhost ~]# badblocks -s -v -o /root/bb-home.log /dev/mapper/centos-home

    逻辑坏道修复方式

    下面是badblocks在/dev/mapper/ centos-home e分区检查出的坏道列表:

    217874591

    217874592

    217874593

    217874594

    217874595

    先备份数据

    [root@localhost ~]# dd if=/dev/mapper/centos-home  skip=217874591 of=/tmp/217874591-217874595.dat count=5

    修复

    [root@localhost ~]# umount /dev/mapper/ centos-home(umount可能出现"Device busy"的错误, 解决方法fuser -m /home //列出使用/home的进程ID  fuser -m -v -i -k /home   //列出PID并kill掉进程)

    修复命令:

    [root@localhost ~]# badblocks -s -w /dev/mapper/ centos-home 217874595 217874591

    修复后检查

    [root@localhost ~]# badblocks -s -v /dev/mapper/ centos-home 217874595 217874591

    恢复数据(可选)

    [root@localhost ~]# dd if=/tmp/217874591-217874595.dat of=/dev/mapper/ centos-home

    重新分区检查

    [root@localhost ~]# badblocks -s -v -o /root/bb-home.log /dev/mapper/ centos-home

    若没有坏道说明修复已完成,若有坏道可以尝试重复以上方法。

    完成后重新mount分区

    [root@localhost ~]# mount /dev/mapper/ centos-home

  • 相关阅读:
    [MongoDB]
    [solr]
    数据结构-二叉树
    vue-学习笔记-Class 与 Style 绑定
    vue-学习笔记-计算属性和侦听器(computed和watch)
    lodash的debounce函数
    vue-学习笔记-模板语法
    vue-学习笔记-Vue 实例
    vue-介绍章节
    工具网站推荐-jsfiddle,一款在线写代码的网站
  • 原文地址:https://www.cnblogs.com/baoqingrui/p/11317196.html
Copyright © 2011-2022 走看看