侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux mke2fs命令教程:如何创建ext2/ext3/ext4文件系统(附实例教程和注意事项)

Linux mke2fs命令是用来在一个块设备上创建ext2/ext3/ext4文件系统的工具。它可以指定文件系统的各种参数,如块大小、inode数量、卷标等。mke2fs命令是e2fsprogs软件包的一部分,它提供了一系列用于管理ext2/ext3/ext4文件系统的实用程序。本文将介绍mke2fs命令的基本用法和常见选项,并给出一些实例和注意事项。

Linux mke2fs命令介绍

mke2fs命令的全称是make ext2/ext3/ext4 filesystem,意思是创建ext2/ext3/ext4文件系统。ext2/ext3/ext4是Linux系统中最常用的文件系统类型,它们的主要区别是ext3和ext4支持日志功能,可以提高文件系统的恢复能力和性能。mke2fs命令可以在一个块设备上创建一个新的文件系统,或者覆盖一个已有的文件系统。创建文件系统时,mke2fs命令会在设备上写入一些重要的数据结构,如超级块、inode表、块位图、目录等。这些数据结构是文件系统正常工作的基础,它们记录了文件系统的元信息和文件的位置。

Linux mke2fs命令适用的Linux版本

mke2fs命令适用于大多数Linux发行版,如Ubuntu、Debian、Fedora、CentOS等。不过,不同的Linux版本可能使用不同的软件包管理器来安装和更新mke2fs命令。例如,Ubuntu和Debian使用apt,Fedora使用dnf,CentOS 7使用yum,CentOS 8使用dnf。如果你的系统没有安装mke2fs命令,你可以根据你的系统类型选择以下命令之一来安装:

  • Ubuntu/Debian: sudo apt install e2fsprogs
  • Fedora/CentOS 8: sudo dnf install e2fsprogs
  • CentOS 7: sudo yum install e2fsprogs

安装完成后,你可以使用mke2fs -V命令来查看mke2fs的版本信息。例如:

[linux@bashcommandnotfound.cn ~]$ mke2fs -V
mke2fs 1.45.6 (20-Mar-2020)
	Using EXT2FS Library version 1.45.6, 20-Mar-2020

Linux mke2fs命令的基本语法

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

mke2fs [选项] 设备 [块数]

其中,设备是要创建文件系统的块设备的名称,如/dev/sda1。块数是可选的,它指定了要创建文件系统的块的数量。如果省略,mke2fs命令会自动计算设备的大小并使用全部空间。选项是用来指定文件系统的各种参数和功能的,mke2fs命令支持很多选项,这里只介绍一些常用的。你可以使用man mke2fs命令来查看完整的选项列表和说明。

Linux mke2fs命令的常用选项说明

下表列出了一些常用的mke2fs命令的选项和说明:

选项说明
-t 文件系统指定要创建的文件系统类型,可以是ext2、ext3或ext4。如果省略,mke2fs命令会根据系统的默认设置来选择文件系统类型。
-b 字节数指定文件系统的块大小,单位是字节。可以是1024、2048或4096。如果省略,mke2fs命令会根据设备的大小来选择合适的块大小。一般来说,较大的块大小可以提高文件系统的性能,但也会浪费一些空间。
-i 字节数指定每个inode的字节数,也就是每个inode可以管理的字节数。inode是文件系统中用来存储文件元数据的数据结构,每个文件都有一个对应的inode。如果省略,mke2fs命令会根据设备的大小来选择合适的inode比例。一般来说,较小的inode比例可以提高文件系统的灵活性,但也会占用更多的空间。
-j创建带有日志功能的文件系统,也就是ext3或ext4文件系统。日志功能可以记录文件系统的变化,从而提高文件系统的恢复能力和性能。如果使用-t选项指定了文件系统类型为ext3或ext4,那么这个选项是隐含的,不需要再指定。
-J 日志选项指定日志功能的一些选项,如日志的大小、位置、设备等。如果省略,mke2fs命令会根据设备的大小来选择合适的日志选项。
-L 卷标给文件系统设置一个卷标,也就是文件系统的名称。卷标可以方便地识别和管理文件系统,而不需要记住设备的名称。卷标最多可以有16个字符。
-O 功能指定文件系统的一些额外的功能,如目录索引、大文件支持、压缩等。可以指定多个功能,用逗号分隔。如果省略,mke2fs命令会根据文件系统的类型来选择合适的功能。
-q安静模式,不显示创建文件系统的过程和信息。
-v详细模式,显示创建文件系统的过程和信息。
-F强制模式,即使设备上已经有文件系统或者设备正在使用,也强制创建文件系统。这个选项非常危险,可能会导致数据丢失或者系统崩溃,不建议使用。
-n模拟模式,只显示创建文件系统的过程和信息,但不实际创建文件系统。这个选项可以用来测试或者调试文件系统的参数和功能。

Linux mke2fs命令的实例

下面给出一些使用mke2fs命令的实例,以及相应的解释和输出。

实例1:创建一个ext4文件系统

[linux@bashcommandnotfound.cn ~]$ sudo mke2fs -t ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 8e9a9a0f-9c5b-4c0d-9f0c-9a7a0f9f0a0f
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

这个实例使用-t选项指定了文件系统类型为ext4,然后在/dev/sdb1设备上创建了一个新的文件系统。mke2fs命令显示了文件系统的一些信息,如UUID、超级块备份的位置、日志的大小等。

实例2:创建一个带有卷标的ext3文件系统

[linux@bashcommandnotfound.cn ~]$ sudo mke2fs -t ext3 -L DATA /dev/sdb2
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: 9f0a0f9f-9a7a-4c0d-9f0c-9c5b8e9a9a0f
...
blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

这个实例使用-t选项指定了文件系统类型为ext3,使用-L选项给文件系统设置了一个卷标为DATA,然后在/dev/sdb2设备上创建了一个新的文件系统。mke2fs命令显示了文件系统的一些信息,如UUID、超级块备份的位置、日志的大小等。

实例3:创建一个带有目录索引功能的ext2文件系统

[linux@bashcommandnotfound.cn ~]$ sudo mke2fs -t ext2 -O dir_index /dev/sdb3
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 1048576 4k blocks and 262144 inodes
Filesystem UUID: a0f9f0a0-9a7a-4c0d-9f0c-9c5b8e9a9f0f
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

这个实例使用-t选项指定了文件系统类型为ext2,使用-O选项指定了文件系统的额外功能为dir_index,也就是目录索引功能。目录索引功能可以提高文件系统在处理大量文件的目录时的性能,它使用哈希表来存储目录项,而不是线性搜索。mke2fs命令显示了文件系统的一些信息,如UUID、超级块备份的位置等。

实例4:模拟创建一个ext4文件系统

[linux@bashcommandnotfound.cn ~]$ sudo mke2fs -n -t ext4 /dev/sdb4
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb4 contains a ext4 file system
	last mounted on /mnt on Thu Nov 23 10:25:08 2023
Proceed anyway? (y,N) y
Creating filesystem with 2097152 4k blocks and 524288 inodes
Filesystem UUID: b0f0a0f0-9a7a-4c0d-9f0c-9c5b8e9a9f0f
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Would have created filesystem with parameters:
	Number of blocks:         2097152
	Block size:               4096
	Fragments per group:      32768
	Inodes per group:         8192
	Inode size:               256
	Journal blocks:           8192
	Label:                    
	Creator OS:               linux
	Revision level:           1 (dynamic)
	Extent support:           yes
	Journal:                  yes
	Features:                 has_journal,ext_attr,resize_inode,dir_index,filetype,extent,flex_bg,sparse_super,large_file,huge_file,uninit_bg,dir_nlink,extra_isize
	Filesystem created:       Thu Nov 23 10:25:08 2023
Last mounted on:            /mnt
Last mount time:            Thu Nov 23 10:25:08 2023
Last write time:            Thu Nov 23 10:25:08 2023
Mount count:                1
Maximum mount count:        -1
Last checked:               Thu Nov 23 10:25:08 2023
Check interval:             0 (<none>)
Lifetime writes:            0
Reserved blocks uid:        0 (user root)
Reserved blocks gid:        0 (group root)
First inode:                11
Inode size:	          256
Required extra isize:       32
Desired extra isize:        32
Journal inode:              8
Default directory hash:     half_md4
Directory Hash Seed:        9a7a0f9f-9f0c-4c0d-9c5b-8e9a9a0f9f0a
Journal backup:             inode blocks

这个实例使用-n选项模拟了在/dev/sdb4设备上创建一个ext4文件系统的过程,但没有实际创建文件系统。mke2fs命令显示了文件系统的一些信息,如UUID、超级块备份的位置、日志的大小、功能列表等。注意,这个实例中,/dev/sdb4设备上已经有一个ext4文件系统,所以mke2fs命令会提示是否继续,这时可以输入y来继续模拟,或者输入n来取消。如果使用-F选项,那么mke2fs命令会强制覆盖已有的文件系统,这是非常危险的,不建议使用。

Linux mke2fs命令的注意事项

使用mke2fs命令创建文件系统时,需要注意以下几点:

  • 在创建文件系统之前,需要确保设备上没有重要的数据,或者已经做好了数据备份,因为创建文件系统会覆盖设备上的所有数据,导致数据丢失。

  • 在创建文件系统之前,需要确保设备没有被挂载或者正在使用,否则可能会导致系统崩溃或者文件系统损坏。可以使用umount命令来卸载设备,或者使用lsof命令来查看设备是否被占用。

  • 在创建文件系统时,需要根据设备的大小和用途来选择合适的文件系统类型、块大小、inode比例、日志大小、功能等参数,以达到最佳的性能和空间利用率。可以使用-n选项来模拟创建文件系统,查看文件系统的信息,然后根据需要调整参数。

  • 在创建文件系统时,不要使用-F选项,除非你非常清楚你在做什么,因为这个选项会强制覆盖已有的文件系统,即使设备正在使用,这是非常危险的,可能会导致数据丢失或者系统崩溃。

  • 如果你在使用mke2fs命令时遇到了bash: mke2fs: command not found的错误,说明你的系统没有安装mke2fs命令,你可以根据你的系统类型选择以下命令之一来安装:

    • Ubuntu/Debian: sudo apt install e2fsprogs
    • Fedora/CentOS 8: sudo dnf install e2fsprogs
    • CentOS 7: sudo yum install e2fsprogs
0

评论区