Linux e2fsck命令详解:如何检查和修复ext文件系统(附实例教程和注意事项)

您所在的位置:网站首页 如何检查iso文件的完整性和权限 Linux e2fsck命令详解:如何检查和修复ext文件系统(附实例教程和注意事项)

Linux e2fsck命令详解:如何检查和修复ext文件系统(附实例教程和注意事项)

2024-07-09 23:33| 来源: 网络整理| 查看: 265

Linux e2fsck命令介绍

Linux e2fsck命令是用于检查和修复ext2,ext3和ext4文件系统的错误的工具。它是流行的fsck前端工具调用的后端工具,用于执行与ext文件系统相关的一系列任务。e2fsck的全称是ext2 file system consistency check,意思是ext2文件系统一致性检查。e2fsck可以检查文件系统的完整性,修复任何发现的问题,并尽可能地恢复任何丢失或删除的文件。

Linux e2fsck命令适用的Linux版本

Linux e2fsck命令适用于所有使用ext2,ext3和ext4文件系统的Linux发行版,如Ubuntu,Debian,Fedora,CentOS,Red Hat等。如果要检查或修复其他类型的文件系统,如xfs,btrfs,ntfs等,需要使用相应的工具,如xfs_repair,btrfs check,ntfsfix等。要查看一个分区的文件系统类型,可以使用以下命令:

[[email protected] ~]$ sudo blkid /dev/sda1 /dev/sda1: UUID="c6a3a5d6-55c3-4da7-bc1a-6d9f8da06e77" TYPE="ext4" PARTUUID="e2a0a51d-01" Linux e2fsck命令的基本语法

Linux e2fsck命令的基本语法格式如下:

e2fsck [options] device

其中,device是要检查或修复的分区的设备名,如/dev/sda1,/dev/sdb2等。options是可选的参数,用于指定e2fsck的行为和功能。常用的选项有:

选项说明-a自动修复文件系统,相当于-p选项-b superblock使用指定的备用超级块来检查文件系统-B blocksize指定文件系统的块大小,而不是让e2fsck自动检测-c使用badblocks程序扫描分区上的坏块,并将其添加到坏块列表中-C fd将检查的进度信息写入指定的文件描述符-d打印调试输出-D优化所有目录,通过重新索引或排序和压缩-E extended_options设置e2fsck的扩展选项,这些选项通常比较高级,详见e2fsck的手册页-f强制检查文件系统,即使它看起来是干净的-F在开始检查前,刷新文件系统设备的缓冲区,这通常只用于基准测试-j external-journal指定文件系统的外部日志的路径-k与-c选项一起使用,保留现有的坏块,并添加新发现的坏块到坏块列表中-l bad_blocks_file从指定的文件中读取坏块列表-L bad_blocks_file将坏块列表写入指定的文件,如果文件不存在则创建-n以只读模式打开文件系统-p自动修复文件系统,如果有问题无法自动解决,则退出-v详细模式,显示更多信息-V显示e2fsck的版本信息-y对所有问题都回答“是” Linux e2fsck命令的实例

下面是一些Linux e2fsck命令的实例,展示了如何使用该命令来检查和修复文件系统的错误。

检查并修复/dev/sda1分区上的文件系统 [[email protected] ~]$ sudo e2fsck -p /dev/sda1 /dev/sda1: clean, 123456/234567 files, 345678/456789 blocks

这个命令使用-p选项来自动修复/dev/sda1分区上的文件系统,如果没有发现任何错误,就会显示clean,否则会显示修复的信息。

强制检查/dev/sdb2分区上的文件系统 [[email protected] ~]$ sudo e2fsck -f /dev/sdb2 e2fsck 1.45.6 (20-Mar-2020) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdb2: 654321/765432 files (12.3% non-contiguous), 876543/987654 blocks

这个命令使用-f选项来强制检查/dev/sdb2分区上的文件系统,即使它看起来是干净的,也会进行五个检查步骤。

使用备用超级块检查/dev/sdc3分区上的文件系统 [[email protected] ~]$ sudo e2fsck -b 32768 /dev/sdc3 e2fsck 1.45.6 (20-Mar-2020) /dev/sdc3 was not cleanly unmounted, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdc3: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sdc3: 54321/654321 files (23.4% non-contiguous), 765432/876543 blocks

这个命令使用-b选项来指定一个备用超级块来检查/dev/sdc3分区上的文件系统,这在原始超级块损坏的情况下很有用。要查找备用超级块的位置,可以使用dumpe2fs命令。

扫描/dev/sdd4分区上的坏块并将其添加到坏块列表中 [[email protected] ~]$ sudo e2fsck -c /dev/sdd4 e2fsck 1.45.6 (20-Mar-2020) Checking for bad blocks (read-only test): done Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdd4: 43210/543210 files (34.5% non-contiguous), 654321/765432 blocks

这个命令使用-c选项来使用badblocks程序扫描/dev/sdd4分区上的坏块,并将其添加到坏块列表中,以防止它们被分配给文件。

以只读模式检查/dev/sde5分区上的文件系统 [[email protected] ~]$ sudo e2fsck -n /dev/sde5 e2fsck 1.45.6 (20-Mar-2020) /dev/sde5 contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Inodes that were part of a corrupted orphan linked list found. Fix? no Inode 12345 was part of the orphaned inode list. IGNORED. Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Block bitmap differences: -(123456--123457) -(123458--123459) Fix? no Free blocks count wrong for group #0 (1234, counted=1235). Fix? no Free blocks count wrong for group #1 (2345, counted=2346). Fix? no Free blocks count wrong (345678, counted=345680). Fix? no /dev/sde5: ********** WARNING: Filesystem still has errors ********** /dev/sde5: 32109/432109 files (45.6% non-contiguous), 543210/654321 blocks

这个命令使用-n选项来以只读模式打开/dev/sde5分区上的文件系统,不会对其进行任何修改,只是显示发现的错误,并询问是否修复,但不管用户如何回答,都会忽略。这个选项可以用于测试文件系统的状态,而不影响其内容。

优化/dev/sdf6分区上的文件系统 [[email protected] ~]$ sudo e2fsck -D /dev/sdf6 e2fsck 1.45.6 (20-Mar-2020) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Pass 6: Optimizing directories /dev/sdf6: 21098/321098 files (56.7% non-contiguous), 432109/543210 blocks

这个命令使用-D选项来优化/dev/sdf6分区上的文件系统,通过重新索引或排序和压缩目录,提高文件系统的性能。这个选项需要文件系统是干净的,否则会失败。

Linux e2fsck命令的注意事项

使用Linux e2fsck命令时,需要注意以下几点:

不要在挂载的文件系统上运行e2fsck,否则可能会造成严重的损坏或数据丢失。如果要检查根文件系统,需要在单用户模式下或使用一个启动盘来运行e2fsck。 如果文件系统被标记为不干净,系统启动时会自动运行e2fsck,除非使用了-A选项来跳过所有文件系统的检查。如果要手动运行e2fsck,可以使用-M选项来跳过已经挂载的文件系统。 如果文件系统被标记为干净,系统启动时不会运行e2fsck,除非使用了-c选项来强制扫描坏块,或者使用了-f选项来强制检查文件系统。如果要定期运行e2fsck,可以使用-tune2fs命令来设置检查的间隔或次数。 如果文件系统有错误,e2fsck会尝试修复它们,但有时候可能会导致一些文件或目录被删除或移动到lost+found目录下。如果要恢复这些文件或目录,可以使用debugfs命令来查看它们的元数据,并尝试重命名或复制它们。 如果文件系统有严重的损坏,e2fsck可能无法修复它们,或者会导致更多的错误。如果要尝试恢复文件系统的数据,可以使用e2image命令来创建一个文件系统的镜像,并在镜像上运行e2fsck,或者使用其他的数据恢复工具,如testdisk,photorec等。

如果在运行e2fsck时遇到bash: e2fsck: command not found的错误,说明e2fsck命令没有安装,可以使用以下命令来安装:

[[email protected] ~]$ sudo apt install e2fsprogs # Ubuntu, Debian [[email protected] ~]$ sudo yum install e2fsprogs # CentOS, Red Hat [[email protected] ~]$ sudo pacman -S e2fsprogs # Arch Linux


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3