linux基本功之fsck命令详解

news2024/11/29 0:56:52

在这里插入图片描述

💓 大家好,我是沐风晓月,双一流院校英语+计算机双专业在读;
💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 只要地球不爆炸,我们永远不放假,只要宇宙不重启,我们永远不休息,,风里雨里节日里我们都在机房等着你
💓 知识最重要的是记忆,反复练习才能有所成就
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺

文章目录

  • 前言
  • 一. fsck命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
  • 四. 拓展知识
    • 4.1 fsck的运行过程
    • 4. 2 文件系统有哪些?
    • 4.3 在 Linux 启动时启用 XFS 磁盘分区扫描
  • 总结

前言

一. fsck命令介绍

大家好,又见面了,我是沐风晓月, 每天月上树梢的时候时候开始学习。

计算机难免会因为某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。

如果真出现了文件系统损坏的情况,有办法修复吗?当然可以了,对于一些小问题,我们使用 fsck 命令就可以很好地解决。

fsck 命令用于检查文件系统并尝试修复出现的错误。

二. 语法格式及常用选项

依据惯例,我们还是先查看帮助,使用 man help查看
语法格式:

fsck [ -sACVRTNP ] [ -t fstype ] [filesys ... ] [--] [ fs-specific-options ]

这里的filesys 可以是多种形式,比如可以是:

  • 一个设备名(例如: /dev/hdc1, /dev/sdb2)
  • 一个挂载点(例如: /, /usr, /home),
  • 一个ext2文件系统的磁盘标签
  • 也可以是UUID指定符(例如:UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd 或 LABEL=root)

fsck 执行完成后,会有默认的返回值,返回值的数字不同,代表的结果不一样,如下表:

返回数字描述
0- 没有错误
1文件系统有错但已修复
2系统应当重启
4文件系统错误没有修复
8运行错误
16用法或语法错误
32户撤销了fsck 操作
128共享库出错

常用参数:

参数描述
-s顺序执行fsck的操作
-t检查要指定的文件类型
-A搜索 /etc/fstab 文件,一次检查所有在文件中有定义的文件系统
-R当使用 -A 标志来检查所有文件系统时,跳过root文件系统 (它可能已经被挂载为可读写)
-a自动修复文件系统,没有任何提示信息。
-r采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。
-y自动修复,和 -a 作用一致,不过有些文件系统只支持 -y
-C显示检查分区的进度条。

注意: 此命令通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。

使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!

三. 参考案例

案例一: 采用互动的方式 修复/dev/sdb1

这里主要是对分区进行修复,我们可以使用-r 参数,这个参数表示自动修复

root@mufenggrow ~]# fsck -r /dev/sdb1
fsck,来自 util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
fsck.ext2: 没有那个文件或目录 当尝试打开 /dev/sdb1 时
Possibly non-existent device?
/dev/sdb1: status 8, rss 1348, real 0.009302, user 0.000000, sys 0.004639

当然我这里并没有 /dev/sd1 ,所以会提示没有那个文件。

案例二: 检查和修复磁盘分区/dev/sda5的文件系统,在执行修复时进行询问,让用户决定处理方式,显示详细修复过程

#fsck -rV -t ext4 /dev/sda5

案例三: 检查磁盘分区/dev/sdb1的文件系统,并显示完整的检查进度
-C参数是显示进度条
-t 是指定要检查的系统文件

 fsck -C -t ext4 /dev/sdb1

案例四: 使用fsck.ext4命令检查/dev/sdb1磁盘分区的文件系统

# fsck.ext4 /dev/sda5

XFS文件系统中,不再使用此命令,二十使用xfs_repair 来检查和修复文件系统,修 复时该文件系统不能被挂载。

案例五: 强制检查文件系统的损坏情况:

[root@mufenggrow ~]# fsck -f /dev/sda2

如果要是使用fsck对XFS系统进行检查,需要在检查之前,先卸载要检查的磁盘分区。
然后用xfs_repair命令的-n参数进行检查和修复磁盘错误。

如果只是检查,并不进行磁盘修复,可以不用-n参数

[root@localhost ~]# xfs_repair /dev/sda1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
       - zero log...
       - scan filesystem freespace and inode maps...
       - found root inode chunk
Phase 3 - for each AG...
       - scan and clear agi unlinked lists...
       - process known inodes and perform inode discovery...
       - agno = 0
       - agno = 1
       - agno = 2
       - agno = 3
       - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
       - setting up duplicate extent list...
       - check for inodes claiming duplicate blocks...
       - agno = 0
       - agno = 1
       - agno = 2
       - agno = 3
Phase 5 - rebuild AG headers and trees...
       - reset superblock...
Phase 6 - check inode connectivity...
       - resetting contents of realtime bitmap and summary inodes
       - traversing filesystem ...
       - traversal finished ...
       - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

四. 拓展知识

4.1 fsck的运行过程

运行fsck后,该命令会分6个阶段对文件系统进行检查,分别是:

  1. 检查块和块的大小: 移除一些没有相关文件的目录入口
  2. 检查路径名: 重新连接一个已经分配但无不能访问的文件
  3. 检查连接性 : 调整连接数
  4. 检查参考计数: 检查未分配的块数和超级块中的所给出的自由块表的一致程度
  5. 检查自由快列表
  6. 补救自由块列表

4. 2 文件系统有哪些?

常见的文件系统有,XFS, FAT、NTFS、ExtFAT、ext2、ext3、ext4 ,reiserFS、VFAT、APFS。

目前的centos6系统,默认是ext4
centos7系统,默认是XFS
windows: NTFS

4.3 在 Linux 启动时启用 XFS 磁盘分区扫描

如果 Linux 操作系统正在使用磁盘分区,则无法卸载磁盘分区。而XFS文件系统需要卸载才检查,这时候唯一的办法就等下次系统启动的时候进行磁盘扫描

要使 xfs_repair 命令能够在 Linux 启动时运行,可以在 GRUB 菜单内核命令的末尾添加“fsck.mode=force fsck.repair=yes”。

查看系统日志以验证磁盘修复命令的执行情况

[root@localhost ~]# journalctl |grep systemd-fsck

要向在系统启动时永久启用磁盘检查,就必须在 GRUB 配置文件中添加“fsck.mode=force fsck.repair=yes”。

参考下面的grub配置文件,找到 GRUB_CMDLINE_LINUX 参数并在行尾附加fsck.mode=force fsck.repair=yes。

沐风晓月出品
[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap fsck.mode=force fsck.repair=yes"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

根据新参数重新生成 GRUB 菜单配置

#grub2-mkconfig

最后重启系统:

init 6

总结

以上就是fsck的全部内容 ,fsck命令在日常工作中,一般不常用,要用就一定是磁盘出问题了,慎重呀!

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

理解Keil编译器中编译程序时出现的Code、RO-data、RW-data和ZI-data的含义

** 1:Code、RO-data、RW-data和ZI-data ** STM32单片机在keil开发环境下编译完成后,会显示: Program Size: Codexxxx RO-dataxxxx RW-dataxxxx ZI-dataxxxx 编译后的显示窗口如图所示: 其中Code、RO-data、RW-data和ZI-data是什么意思呢&…

基于OpenCV 的车牌识别

基于OpenCV 的车牌识别 车牌识别是一种图像处理技术,用于识别不同车辆。这项技术被广泛用于各种安全检测中。现在让我一起基于 OpenCV 编写 Python 代码来完成这一任务。 车牌识别的相关步骤 1. 车牌检测:第一步是从汽车上检测车牌所在位置。我们将使用…

基于matlab模拟雷达海杂波PPI

一、前言此示例演示如何在海洋环境中模拟旋转天线阵列的计划位置指示器 (PPI) 雷达图像。您将配置雷达方案和光谱海面模型,使用点散射体集合模拟扩展目标,生成返回信号,并绘制结果的 PPI 图像。二、配置雷达方案设置 R…

Word操作与应用

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.Office中Word简介 二.word工作环境 1.WPS简介 2.启动Word …

通过环境变量来绕过Windows Defender和隐藏混淆行为

什么是环境变量 关于什么是环境变量,我这篇文章介绍的很清楚 https://blog.csdn.net/qq_45894840/article/details/128622314?spm1001.2014.3001.5502这里在扩展一点 env env是英文单词environment的缩写,其功能是用于显示和定义环境变量&#xff0…

Mybatis源码(一) Mybatis是如何与spring框架整合的

Mybatis是现在最流行的数据库中间件之一,用mybatis的好处在于让开发者更专注在SQL本身,能与多种数据库兼容,而spring框架又是java最强大的框架,对于java来讲,万物是基于spring 的,因此我们有必要去理解myba…

若依框架---PageHelper分页(十三)

我们介绍了PageHelper中的cache包以及简单介绍了包中各个类的属性与方法;还介绍了Java中一种加载类的方式:Class.forName,并且通过查看com.mysql.jdbc.Driver代码,我们知道,可以通过这种方式可以执行类中的静态代码段。…

python进阶——自动驾驶寻找车道

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

设计模式-策略模式详解

1. 背景在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某…

Java数据结构中栈和队列深度解析

栈和队列使用的范围很广,本篇用来深度解析Java数据结构中的栈和队列的深度解析,栈和队列都能用单向或双向链表来实现哦,希望可以帮助各位! 文章目录 目录 一、栈 1.1栈的概念 1.2栈的使用 1.3栈的自定义顺序栈实现 1.4栈的练习题…

本机信息收集

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 : 内网安全 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远…

【JavaEE】Java中复杂的Synchronized关键字

目录 一、synchronized的特性 (1)互斥 (2)刷新内存 (3)可重入 二、synchronized的使用 (1)修饰普通方法 (2)修饰静态方法 (3)修…

计网之初识网络(理解网络传输的基本流程)

文章目录一. 网络发展史二. IP地址和端口号三. 计算机网络分层1. 什么是网络协议2. OSI七层网络模型3. TCP/IP五层网络模型4. 数据在各个层的传输过程5. 网络设备所在分层一. 网络发展史 🍂独立模式(单机模式) 我们最初的计算机是在单机模式下使用的, 此时的计算机…

遇到“独自开”,开发出属于自己一套专属系统的时代还会远吗?

目录 一、前言 二、介绍 三、详细介绍 四、总结 一、前言 哈喽,大家好,我是追,看到标题独自开时,可能此处会有疑问了。独自开?半山居士王安石的“墙角数枝梅,凌寒独自开”?哈哈,…

北京化工大学2/7寒假集训题解(>1800)

目录 A-Fence B-D again​ C-Cut the Sequence D-Parade E-trade A-Fence #include<algorithm> #include<string.h> #include<stdio.h> #include<queue> using namespace std; struct nob {int v,p;bool operator <(const nob &a)const{retu…

网络协议(四):网络分类、ISP、上网方式、公网私网、NAT

网络协议系列文章 网络协议(一)&#xff1a;基本概念、计算机之间的连接方式 网络协议(二)&#xff1a;MAC地址、IP地址、子网掩码、子网和超网 网络协议(三)&#xff1a;路由器原理及数据包传输过程 网络协议(四)&#xff1a;网络分类、ISP、上网方式、公网私网、NAT 目录…

【沁恒WCH CH32V307V-R1开发板两路ADC读取实验】

【沁恒WCH CH32V307V-R1开发板两路ADC读取实验】1. 前言2. 软件配置2.1 安装MounRiver Studio3. ADC项目测试3.1 打开ADC工程3.2 编译项目4. 下载验证4.1 接线4.2 演示效果5. 小结1. 前言 ADC 模块包含 2 个 12 位的逐次逼近型的模拟数字转换器&#xff0c;最高 14MHz 的输入时…

2022年这5款熟悉的软件退出了历史舞台

在过去的一年里&#xff0c;有很多新产品发布&#xff0c;当然也有很多产品与我们就此别过。这些产品曾陪伴我们的生活&#xff0c;给我们带来欢乐&#xff0c;帮助我们成长。所以本文将盘点一下在2022年和我们告别的产品。1.微软IE浏览器IE浏览器1995年8月16日正式上线&#x…

window 安装debian的Linux系统+一些环境初始化

文章目录一、安装&#xff1a;1、安装WSL22、微软商店搜索debian安装&#xff1a;3、也可以官方安装&#xff1a;二、更改镜像源1、查看debian系统版本&#xff1a;2、修改3、升级三、安装zsh1&#xff1a;检查2、安装zsh3、安装oh-my-zsh4、安装插件5、配置文件~/.zshrc:6、配…

软件工程详细知识点(下)

文章目录七、面向对象的分析设计1、面向对象分析&#xff08;OOA&#xff09;2、面向对象设计&#xff08;OOD&#xff09;八、编码1、程序设计语言九、软件测试十、软件维护十一、软件项目管理RUP&#xff08;统一软件开发过程&#xff09;面向对象编程和面向对象设计的五个基…