当前位置:首页>Linux>Linux存储-文件系统卸载及基础修复方法

Linux存储-文件系统卸载及基础修复方法

  • 2026-09-10 08:15:45
Linux存储-文件系统卸载及基础修复方法

   先简单汇总下前几篇文章关于linux系统环境存储的内容:

文章名称

核心内容

《Linux存储-内核存储框架概念》

讲述linux内核文件系统逻辑架构

《Linux存储-硬盘的类型和命名规则》

讲述linux环境磁盘的类型识别和命名

《Linux存储--硬盘数据读取方式》

讲述linux环境磁盘的数据读取方式

《Linux存储-分区表及分区规则》

讲述磁盘分区方法

《Linux存储—常用磁盘分区工具的使用方法》

讲述如何使用工具进行磁盘分区

《Linux存储-挂载磁盘分区和文件系统格式化方法》

讲述磁盘分区和文件系统格式化

    以上文章内容主要对linux环境基础的存储架构和磁盘的认识、如何使用工具进行分区和文件系统格式化,而linux环境正常使用磁盘也主要经过以上步骤。

  接下来本文介绍磁盘分区正常挂载目录使用后,后期运行使用或者维护中为了确保磁盘数据的完整性,可能需要涉及的卸载目录以及基础的文件系统检查和修复方法。

   主要内容:

1.文件系统检查工具fsck的简单介绍

2.卸载目录

3.使用检查工具fsck进行文件系统检查和基础的修复方法

4.重新挂载分区到目录

一、fsck是什么

   fsck(file system consistency check)是linux系统中用于检查和修复文件系统错误的工具,类似于windows系统中的chkdsk工具。它的主要作用主要为:

1.检查文件系统完整性:扫描inode,块位图,目录结构等元数据。

2.修复损坏的文件系统:通过自动或者交互式修复检测到的错误。

3.恢复丢失的数据:尝试恢复损坏的inode或者文件碎片。

4.预防数据丢失:协助在文件系统损坏前发现问题。

fsck的使用场景:系统异常关机、磁盘错误、文件系统损坏(比如mount时提示需要fsck)等。

命令格式:fsck.文件系统类型 【选项】 磁盘名称(比如fsck.ext4 -y /dev/sda1)

常用选项:-A  检查/etc/fstab中所有文件系统-C  显示进度条(仅部分文件系统支持)-N  只显示检查步骤,不实际行动-T  不显示标题-V  详细输出-y  自动修复所有错误,非交互式-n  只检查不修复-f  强制检查

二、卸载目录方法

 还是以上篇文章内容的操作环境,以/dev/vdb1分区为操作对象。

操作命令:

umount /mnt/ext4/ #卸载目录
df -h #查看挂载目录信息

三、使用fsck工具进行文件系统检查和修复

  本示例以ext4文件系统为例。以/dev/vdb1分区为操作对象,这个分区在上篇文章的操作是将其格式化文件系统为:ext4。

1.备份分区

    在进行分区文件系统检查和修复前建议先做好备份(要做好数据备份的习惯)。

命令:

dd if=/dev/vdb1 of=/d2/vdb1.img bs=1M将vdb1分区备份到另外分区目录/d2下

2.模拟文件系统故障环境

    刚才已经把/dev/vbd1分区挂载的目录/mnt/ext4进行了卸载,目前此分区处于未改在目录的状态。

    我们来模拟一下/dev/vbd1分区的ext4文件系统的主超级块损坏,然后再看看重新挂载分区是否成功。

    首先使用dd命令像/dev/vbd1分区的开头写入2kB的0字节流,相当于清空分区的头2kB空间的内容。

命令:

dd if=/dev/zero of=/dev/vdb1 bs=1KB count=2 conv=noerror(注意!此命令不要在生产环境使用,这里只是为了模拟文件系统损坏的环境)

命令解析:if=/dev/zero #从文件/dev/zero生成连续的0字节流of=/dev/vdb1 #将连续0字节流输出到目标/dev/vdb1bs=1k. #每次读写块大小为1KBcount=2 #共读写2个块conv=noerror. #遇到读写错误是继续执行3.

重新挂载分区

挂载命令:mount -t ext4 /dev/vdb1 /mnt/ext4/

 这个时候会提示如下错误:

mount: /mnt/ext4: wrong fs type, bad option, bad superblock on /dev/vdb1, missing codepage or helper program, or other error.

  大致意思是/dev/vdb1分区的超级块已经损坏无法进行挂载分区到目录。

核心扩展点:为什么出现挂载失败的提示?就是因为刚才通过dd命令使用连续的0字节流对/dev/vdb1分区的前2KB空间清空了数据,而ext4文件系统的主超级块处于分区的头1KB处,2kB的连续0字节刚好把主超级块数据抹掉了。而使用mount命令挂载分区的时候会首先读取的主超级块这个关键元数据。

4.使用fsck工具对文件系统进行检查和修复

最后提示“/dev/vdb1: ***** FILE SYSTEM WAS MODIFIED *****”表示修复完成。

5.再次挂载分区成功

四、核心要点

1.本章节主要是讲述linux环境如何卸载分区,并模拟了ext4文件系统超级块损坏的情况下,使用fsck命令进行检查恢复的基础操作。

2. fsck命令主要针对ext系列文件系统(ext2、ext3、ext4)有效,如果是xfs、btrfs等其他的文件系统会有对应的工具。

最后简单汇总下不同文件系统的检测方法:

文件系统

检查工具

示例命令

Ext2/ext3/ext4

e2fsck

Fsck.ext4 -f /dev/sda

xfs

xfs_repair

Xfs_repair /dev/sda

btrfs

Btrfs check

Btrfs check --repair /dev/sda

Fat/ntfs

dosfsck

Fsck.fat -a /dev/sda

请注意!不同文件系统的数据存储方式不一样,因此检测工具和工具的使用方法都不一样。

最新文章

随机文章