Linux常见系统故障

1.修复MBR扇区故障

2.修复GRUB引导故障

3./etc/inittab文件丢失

4.遗忘root用户密码

5.修复文件系统

6.磁盘资源耗尽故障

一、修复MBR扇区故障

1.关机添加一块硬盘,开机查看硬盘设备分区列表,是否存在/dev/sdb设备信息

  

2.对新硬盘分区

2.1新建一个主分区

  

2.2新建一个扩展分区

  

2.3新建两个逻辑分区,然后保存

  

3.查看sdb中分区列表信息

fdisk -l /dev/sdb

  

4.格式化文件系统,这里暂时只格式化/dev/sdb1

mkfs -t ext4 /dev/sdb1

 

5.创建一个挂载点,挂载sdb1分区

mkdir /sdb1

mount /dev/sdb1 /sdb1

 

6.备份MBR扇区数据

dd if=/dev/sda of=/sdb1/sda.mbr.bak bs=512 count=1

  

7.模拟MBR被破坏的故障

dd if=/dev/zero of=/dev/sda bs=512 count=1

  

8.然后重启系统,发现系统无法重启

 

9.从备份文件中恢复MBR扇区

添加虚拟机与光盘的连接,重启系统,自动进入如下界面,现在第三个(救援模式)

  

10.系统加载后,一直下一步,直到出现如下图,选择第一个

  

11.执行fdisk -l 能看到sdb1分区,看不到sda设备,因为sda设备的MBR被破坏(linux 系统的分区记录存放在mbr中)

  

12.在急救模式下的虚拟磁盘中建立sdb1分区的挂载点目录

mkdir  /sdb1

mount /dev/sdb1  /sdb1

dd if=/sdb1/sda.mbr.bak  of=/dev/sda bs=512 count=1

  

13.重启系统,然后系统就能正常工作了

二、修复GRUB引导故障

1.备份grub.conf文件(建议备份到第2块磁盘中)

mkdir  /backup

mount  /dev/sdb1  /backup

cp  /boot/grub/grub.conf  /backup/grub.conf.bak

  

2.模拟破环grub.conf文件

rm  -rf  /boot/grub/grub.conf

  

3.重启系统,发现系统无法正常加载

  

4.进入救援模式,此时只能进入bios设置boot启动顺序,把光盘引导调整到前面,然后保存,此时系统会加载光盘

  

5.查看硬盘分区情况,此时可以看到两个硬盘,因为grup配置文件损坏,但还是会成功加载分区记录

  

6.在急救模式下的虚拟磁盘中建立sdb1分区的挂载点目录,此时需要创建两个挂载点,以及挂载sda1(grup文件所在分区)和sdb1(备份grup配置文件所在分区)

mkdir /backup(在急救模式下的虚拟磁盘中建立sdb1分区的挂载点目录)

mkdir  /sda1(创建sda1分区的挂载点目录)

mount  /dev/sdb1  /backup

mount  /dev/sda1  /sda1

cp  /backup/grub.conf.bak  /sda1/grub/grub.conf

  

7..重启系统,然后系统就能正常工作了

三、/etc/inittab文件丢失

1.备份/etc/inittab文件

cp  /etc/inittab  /root/inittab.bak

  

2.模拟inittab文件丢失

rm  -rf  /etc/inittab

  

3.重启系统进入文本命令模式,恢复inittab文件  #重新系统后,系统进入文本命令模式,因为运行级别配置文件(inittab)丢失

cp  /root/inittab.bak  /etc/inittab

  

4.重启系统,然后系统就能正常进入图形界面了

  

四、遗忘root用户密码

解决方法:引导进入单用户模式,然后重设密码

1.重启系统,在引导界面按e键

  

2.在按e,进入然后选第二项

  

3.再按e进入,敲空格,输入1,然后回车   #1代表单用户模式

  

4.上一步,回车后又返回以前,按b,重新引导,然后就进入单用户模式了,然后修改root用户密码

  

5.重启系统,用修改过的密码登录

五、修复文件系统

故障原因:

非正常关机、突然断电、设备读写失误等

文件系统的超级块(super-block)信息被破坏

故障现象

无法向分区中读取或写入数据

启动后提示“Give root password for maintenance” (启动硬盘super-block被破坏)

解决办法:

根据提示输入root口令,进入修复状态

使用fsck命令进行修复

1. 模拟对/dev/sdb1分区的破坏操作

dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

   

2. 检查是否能挂载该分区

  

3.上图提示报错,没有指定文件类型,那我们就添加文件类型,但是添加文件类型还是报错,从下图的报错信息中可以看出,真正的原因是因为superblock(超级块出现问题)

  

4. 对/dev/sdb1分区进行修复

fsck –y -t ext4 /dev/sdb1

  

5.再次挂载该分区 无错误提示,修复成功

  

六、磁盘资源耗尽故障

故障原因:

磁盘空间已被大量的数据占满,空间耗尽

虽然还有可用空间,但文件数i节点耗尽

故障现象:

无法写入新的文件,提示“… : 设备上没有空间”

部分程序无法运行,甚至系统无法启动

解决思路:

清理磁盘空间,删除无用、冗余的文件

转移或删除占用大量i节点的琐碎文件

进入单用户模式、急救模式进行修复

为用户设置磁盘配额

1.这里只测试文件节点耗尽

2.写一个while 死循环,一直创建空文件,这里以/boot/test为例

i=1

while [ 1 ]

do

cd /boot/test

touch "$i".txt

let "i++"

done

3.没有运行脚本之前的/boot/test目录下的节点数

  

4.运行完脚本之后/boot/test目录下的节点数已经用完,但是磁盘还有剩余空间

  

5.此时在向/boot/test写入数据,会提示失败,虽然还有空间剩余,这是因为Linux的安全存储机制,只要节点数或者空间任何一个使用完,都不能再进行写入数据

  

6.解决办法,删除占用大量i节点的琐碎文件

这里删除/boot/test目录下的所有文件,然后在写入数据测试

rm -fr   /boot/test/*

  

7.磁盘配额

7.1. 磁盘限额需要安装quota软件包 yum install -y quota

7.2. 启用文件系统的配额支持(添加usrquota、grpquota挂载参数)

mkdir /sdb1

chmod 777 /sdb1(为/sdb1授权)

  

  

注:第一个字段为被挂载的分区,第二个字段为挂载的目录,第三个字段是被挂载的分区的文件系统类型,后面的几个字段是支持quota的参数。各字段用空格分隔

reboot重启系统(或mount -a读取/etc/fstab文件,使重新挂载生效),重启进入文本编辑界面按回车

7.3

mount  | tail -1(查看是否挂载成功)mount(查看是否挂载成功)

mount | grep /dev/sdb1

/dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota)

ls  /sdb1

lost+found

  

7.4检测磁盘配额并创建配额文件 

quotacheck  -ugcv  /dev/sdb1

ls -l /sdb1/aquota.*(查看是否生成配额文件)

  

7.5编辑用户和组帐号的配额设置(edquota命令)

edquota -u 用户名(编辑用户配额)

edquota -g 组名(编辑组配额)

例如:新建用户和组

  

edquota -u zhangsan  编辑用户配额

edquota -g students   编辑组配额

  

  

启用、关闭文件系统的配额功能(quotaon、quotaoff命令)

quotaon  -ugv /sdb1

  

普通用户对设置配额的分区(挂载目录)具有写入权限

chmod  777  /sdb1

切换到启用配额的用户身份su  -  zhangsan

切换到设置配额的分区(挂载目录)cd  /sdb1

创建指定数量的文件:使用touch命令,或cp命令

  

创建指定容量的文件:使用dd命令,或cp命令

rm  -rf  *.txt

  

关闭文件系统配额功能

  

Linux常见系统故障的更多相关文章

  1. 2 . Linux常见命令

    Linux常见命令格式: 命令名称 选项 参数 ls -alh 文件/目录 --all #ls 显示当前目录内容 #ls -l 显示文件详细信息 #ls -hl h已常见单位显示文件大小 k M G# ...

  2. Linux常见疑难问答

    Linux常见疑难问答 (1)按a~z顺序排列启动服务进程. #exportLC_ALL=C           #英文环境变量设置,主要用于解决乱码问题 #chkconfig –list | gre ...

  3. Linux 常见的trouble shooting故障排错

    Linux 常见的trouble shooting故障排错 备份开机所必须运行的程序对一个运维人员来说是非常有必要的.在实际生产环境中,系统和数据基本都是安装在不同的硬盘上面,因为企业最关心的还是数据 ...

  4. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

  5. 一个linux常见命令的列表

    这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命 ...

  6. Linux常见操作

    前面的话 本文将详细介绍Linux常见操作 基本概念 Linux严格区分大小写,所有内容以文件形式保存,包括硬件 Linux没有扩展名的概念,不靠扩展名来区分文件类型.但有一些约定俗成的扩展名 压缩包 ...

  7. Linux常见英文报错中文翻译(菜鸟必知)

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  8. Linux常见系统命令与文件操作

    一.Linux常见文件操作 (1)cd /: 在Linux 系统中斜杠“/”表示的是根目录. cd / ,即进入根目录. (2)cd ~命令是,进入用户在该系统的home目录,例如xz用户,则进入/r ...

  9. (转)linux常见故障一:linux 文件系统变只读

    linux常见故障一:linux 文件系统变只读 原文:https://www.cnblogs.com/ginvip/p/6375672.html 1. 重启系统看是否可以自动修复. 2. 使用fsc ...

随机推荐

  1. Python的数据库操作(pymysql)

    使用原生SQL语句进行对数据库操作,可完成数据库表的建立和删除,及数据表内容的增删改查操作等.其可操作性很强,如可以直接使用“show databases”.“show tables”等语句进行表格之 ...

  2. Linux 虚拟网络设备详解之 Bridge 网桥

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面几篇文章介 ...

  3. 侯哥的Python分享

    侯哥语录 我曾经是一个职业教育者,现在是一个自由开发者.我希望我的分享可以和更多人一起进步.分享一段我喜欢的话给大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么.当你还没 ...

  4. java程序员的NodeJS初识篇

    摘要 作为一个一直用java来写后端的程序员用NodeJS来写后台,实在不是很爽.这里记下这两个月的NodeJS学习所遇之坑,与java转NodeJS的同仁共勉.学习时间不长,若有理解错误,望指正. ...

  5. 【视频】使用ASP.NET Core开发GraphQL服务

    GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL来自Facebook,它于2012年开始开发,2015年开源. GraphQL与编程语言无关,可以使用很 ...

  6. Python数据分析(一): ipython 技巧!

    不一定非得使用Jupyter Notebook,试试ipython命令行 安装 ipython 我只试过Windows 10环境下的. 1.安装python安装包之后,应该就有ipython了. 2. ...

  7. directshow、 Emgucv入门

    本示例主要测试了directshow.Emgucv的视频流采集功能,其中Emgucv还实现了人脸的识别.示例源码下载 一.directshow的介绍 实现原理:directshow可以将摄像头的数据流 ...

  8. 进程,线程,协程,异步IO知识点

    进程: qq 要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理,网络接口的调用等...对各种资源管理的集合 就可以成为  进程 线程: 是操作系统最小的调度单位, 是一串指令 ...

  9. 使用ML.NET实现NBA得分预测

    使用ML.NET实现NBA得分预测 导读:ML.NET系列文章 ML.NET已经发布了v0.2版本,新增了聚类训练器,执行性能进一步增强.本文将介绍一种特殊的回归--泊松回归,并以NBA比赛得分预测的 ...

  10. CSDN新版Markdown编辑器(Alpha 2.0版)使用示例(文首附源码.md文件)

    CSDN新版Markdown编辑器(Alpha 2.0版) 使用示例 附 本文的Markdown源码: https://github.com/yanglr/AlgoSolutions/blob/mas ...