09 引导过程与故障修复

对着背影说爱祢 提交于 2019-11-26 08:58:16

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!