1. 首页 > Linux教程 > 正文

Linux教程FG136-mkfs.ext4命令ext4文件系统格式化

内容大纲

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

1. ext4文件系统概述

ext4是Linux系统中最常用的文件系统之一,它是ext3文件系统的升级版,提供了更好的性能、可靠性和功能。

学习交流加群风哥QQ113257174

ext4文件系统的主要特点包括:

  • 支持更大的文件和分区
  • 更快的文件系统检查
  • 延迟分配机制,提高写入性能
  • 日志功能,提高文件系统可靠性
  • 支持扩展属性和访问控制列表

2. mkfs.ext4命令基本用法

mkfs.ext4命令用于在分区上创建ext4文件系统。

# 基本语法
# mkfs.ext4 [选项] 设备

# 简单格式化
# mkfs.ext4 /dev/vdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 13107200 4k blocks and 3276800 inodes
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables:
# 完成
Writing inode tables:
# 完成
Creating journal (65536 blocks):
# 完成
Writing superblocks and filesystem accounting information:
# 完成

# 查看文件系统信息
# dumpe2fs -h /dev/vdb1
Filesystem volume name:
Last mounted on:
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 3276800
Block count: 13107200
Reserved block count: 655360
Free blocks: 13041664
Free inodes: 3276799
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Mar 31 10:00:00 2026
Last mount time: n/a
Last write time: Thu Mar 31 10:00:00 2026
Mount count: 0
Maximum mount count: -1
Last checked: Thu Mar 31 10:00:00 2026
Check interval: 0 ()
Lifetime writes: 1392 kB
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
First orphan inode: 0
Default directory hash: half_md4
Directory Hash Seed: 12345678-90ab-cdef-1234-567890abcdef
Journal backup: inode blocks
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 32M
Journal length: 8192
Journal sequence: 0x00000001
Journal start: 0

3. 常用选项详解

mkfs.ext4命令支持多种选项,用于定制文件系统的创建过程。

# 常用选项

# -b:指定块大小(1024、2048或4096字节)
# mkfs.ext4 -b 4096 /dev/vdb1

# -L:指定卷标
# mkfs.ext4 -L data1 /dev/vdb1

# -m:指定保留块百分比(默认5%)
# mkfs.ext4 -m 2 /dev/vdb1

# -j:创建日志(默认启用)
# mkfs.ext4 -j /dev/vdb1

# -i:指定每多少字节一个inode
# mkfs.ext4 -i 8192 /dev/vdb1

# -N:指定inode数量
# mkfs.ext4 -N 1000000 /dev/vdb1

# -O:启用或禁用特定功能
# mkfs.ext4 -O ^has_journal /dev/vdb1 # 禁用日志

# 查看所有可用选项
# mkfs.ext4 –help

4. 高级配置选项

对于特殊场景,m

风哥提示:

kfs.ext4命令提供了更多高级配置选项。

# 高级配置

# 创建带有大文件支持的文件系统
# mkfs.ext4 -T largefile /dev/vdb1

# 创建带有超大文件支持的文件系统
# mkfs.ext4 -T largefile4 /dev/vdb1

# 调整日志大小
# mkfs.ext4 -J size=64 /dev/vdb1 # 64MB日志

# 启用元数据校验和
# mkfs.ext4 -O metadata_csum /dev/vdb1

# 启用目录索引
# mkfs.ext4 -O dir_index /dev/vdb1

# 启用extents
# mkfs.ext4 -O extents /dev/vdb1

5. 实战案例

下面通过一个完整的实战案例来演示mkfs.ext4命令的使用。

# 场景:为数据存储创建优化的ext4文件系统

# 1. 查看分区
# lsblk /dev/vdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 252:16 0 100G 0 disk
├─vdb1 252:17 0 50G 0 part
└─vdb2 252:18 0 50G 0 part

# 2. 为vdb1创建ext4文件系统(优化为大文件存储)
# mkfs.ext4 -L data -m 1 -T largefile /dev/vdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 13107200 4k blocks and 3276800 inodes
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables:
# 完成
Writing inode tables:
# 完成
Creating journal (65536 blocks):
# 完成
Writing superblocks and filesystem accounting information:
# 完成

# 3. 为vdb2创建ext4文件系统(优化为小文件存储)
# mkfs.ext4 -L small_data -m 1 -i 4096 /dev/vdb2
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 13107200 4k blocks and 13107200 inodes
Filesystem UUID: 87654321-0987-fedc-ba98-76543210fedc
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables:
# 完成
Writing inode tables:
# 完成
Creating journal (65536 blocks):
# 完成
Writing superblocks and filesystem accounting information:
# 完成

# 4. 挂载文件系统
# mkdir -p /data /small_data
# mount /dev/vdb1 /data
# mount /dev/vdb2 /small_data

# 5. 配置永久挂载
# echo ‘/dev/vdb1 /data ext4 defaults 0 0’ >> /etc/fstab
# echo ‘/dev/vdb2 /small_data ext4 defaults 0 0’ >> /etc/fstab

# 6. 验证挂载
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.0M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 3.5G 42G 8% /
/dev/vda1 1014M 194M 821M 20% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/vdb1 50G 33M 50G 1% /data
/dev/vdb2 50G 33M 50G 1% /small_data

# 7. 查看文件系统详细信息
# tune2fs -l /dev/vdb1
Filesystem volume name: data
Last mounted on: /data
Filesystem UUID: 12345678-90ab-cdef-1234-567890abcdef
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 3276800
Block count: 13107200
Reserved block count: 131072
Free blocks: 13041664
Free inodes: 3276799
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Mar 31 10:00:00 2026
Last mount time: Thu Mar 31 10:00:00 2026
Last write time: Thu Mar 31 10:00:00 2026
Mount count: 1
Maximum mount count: -1
Last checked: Thu Mar 31 10:00:00 2026
Check interval: 0 ()
Lifetime writes: 1392 kB
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
First orphan inode: 0
Default directory hash: half_md4
Directory Hash Seed: 12345678-90ab-cdef-1234-567890abcdef
Journal backup: inode blocks
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 32M
Journal length: 8192
Journal sequence: 0x00000001
Journal start: 0

风哥经验总结

1. 在格式化分区前,确保该分区没有重要数据,因为格式化会清除所有数据。

学习交流加群风哥微信: itpux-com

2. 对于不同的使用场景,选择合适的块大小和inode密度:

  • 大文件存储:使用较大的块大小(4096字节)和较少的inode
  • 小文件存储:使用较小的块大小和较多的inode
from PG视频:www.itpux.com

>

3. 合理设置保留块百分比,对于数据分区,可以将保留块设置为1-2%,以充分利用磁盘

更多学习教程公众号风哥教程itpux_com

空间。

4. 启用日志功能可以提高文件系统的可靠性,但会 slightly 影响性能。

5. 对于大型文件系统,建议使用-T选项指定预定义的配置文件,以获得更好的性能。

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息