38352

192 分钟

#Bash 的 mkfs.ext4 命令

mkfs.ext4 [OPTION]... DEVICE

功能

创建 ext4 文件系统。

类型

可执行文件(/usr/sbin/mkfs.ext4),属于 e2fsprogs

参数

  • OPTION 选项:
    • -b block-size - 设置块大小为 block-size;单位是字节
    • -c - 创建文件系统之前,检查设备是否存在坏块
    • -C cluster-size - 使用 bigalloc 功能为文件系统指定簇大小;单位是字节
    • -d root-directory - 将给定目录的内容复制到文件系统的根目录中
    • -D - 写入磁盘时使用直接 I/O
    • -e error-behavior 检测到错误时,更改内核代码的行为
      • continue - 继续正常执行
      • remount-ro - 以只读方式重新挂载文件系统
      • panic - 导致内核崩溃
    • -E extended-options 设置文件系统的扩展选项
      • encoding=encoding-name - 在超级块中启用折叠功能,并将 encoding-name 设置为要使用的编码
      • encoding_flags=encoding-flags - 定义文件名字符编码操作的参数
      • mmp_update_interval=interval - 将初始 MMP 更新间隔调整为 interval
      • stride=stride-size - 配置 RAID 阵列的文件系统,使用步长为 1 的文件系统块
      • stripe_width=stripe-width - 配置 RAID 阵列的文件系统,每个条带使用条带宽度文件系统块
      • offset=offset - 在设备或文件的起始位置偏移一定距离处创建文件系统
      • resize=max-online-resize - 预留足够的空间,以便块组描述符表能够增长,从而支持具有最大在线调整大小块的文件系统
      • lazy_itable_init[= <0 to disable, 1 to enable>] - 如果启用此选项,且 uninit_bg 功能也已启用,则不会完全初始化 inode 表;这可以显著加快文件系统初始化速度
      • lazy_journal_init[= <0 to disable, 1 to enable>] - 如果启用此选项,则不会完全清零日志 inode;这可以显著加快文件系统初始化速度
      • assume_storage_prezeroed[= <0 to disable, 1 to enable>] - 果启用此选项,则会假定存储设备已预先清零,跳过清零日志表和 inode 表的操作
      • no_copy_xattrs - 不复制目录层次结构中文件的扩展属性
      • num_backup_sb=<0|1|2> - 文件系统中将创建多少个备份超级块;需要启用 sparse_super2 功能
      • packed_meta_blocks[= <0 to disable, 1 to enable>] - 将分配位图和 inode 表放置在磁盘的开头
      • root_owner[=uid:gid] - 指定根目录的数字用户 ID 和组 ID
      • test_fs - 在文件系统超级块中设置一个标志,表明该文件系统可以使用实验性内核代码进行挂载
      • orphan_file_size=size - 设置用于跟踪未链接但仍处于打开状态的 inode 以及正在进行截断操作的 inode 的文件大小
      • discard - 尝试在执行 mkfs 时丢弃数据块
      • nodiscard - 不要在 mkfs 时尝试丢弃数据块
      • quotatype - 指定要在创建的文件系统中启用哪些配额类型;取值为 usrquota, grpquota, prjquota,多个值用冒号分隔
    • -F - 强制创建文件系统;即使指定的设备不​​是块特殊设备上的分区,或者其他参数没有意义
    • -g blocks-per-group - 指定块组中的块数
    • -G number-of-groups - 指定要打包在一起的块组数量
    • -i bytes-per-inode - 指定 bytes/inode 的比率
    • -I inode-size - 指定每个 inode 的大小;单位是字节
    • -j - 创建带有 ext3 日志的文件系统
    • -J journal-options - 创建 ext3 日志的选项,多个值用逗号分隔
      • size=journal-size - 创建一个大小为 journal-size 的内部日志;单位是 MiB
      • fast_commit_size=fast-commit-size - 创建一个大小为 fast-commit-siz 额外的快速提交日志区域;单位是 KiB
      • location=journal-location - 指定日志的位置
      • device=external-journal - 将文件系统附加到位于 external-journal 上的日志块设备
    • -l filename - 从 filename 读取坏块列表
    • -L new-volume-label - 将文件系统的卷标设置为 new-volume-label;最多 16 字节
    • -m reserved-blocks-percentage - 指定为超级用户保留的文件系统块百分比
    • -M last-mounted-directory - 设置文件系统的最后挂载目录
    • -n - 不实际创建文件系统,而是显示将要执行的操作
    • -N number-of-inodes - 覆盖文件系统应保留的 inode 数量
    • -o creator-os - 覆盖文件系统中“创建者操作系统”字段的值
    • -O [^]feature[,...] - 创建一个具有给定功能(文件系统选项)的文件系统,
    • -q - 静默执行
    • -r revision - 设置新文件系统的文件系统版本
    • -S - 仅写入超级块和组描述符
    • -t fs-type - 指定文件系统类型;取值为 ext2, ext3, ext4
    • -T usage-type[,...] - 指定文件系统的使用方式;见 /etc/mke2fs.conf
    • -U UUID - 指定特定的 UUID,或以下特殊值:
      • clear - 清除 UUID
      • random - 生成一个新的随机生成的 UUID
      • time - 生成一个新的基于时间的 UUID
    • -v - 打印详细信息
    • -V - 打印版本号
    • -z undo_file - 在覆盖文件系统块之前,先将该块的旧内容写入 undo_file
  • DEVICE - 要操作的设备

#示例

$ sudo mkfs.ext4 /dev/sda                 # 将 /dev/sda 格式化为 ext4 文件系统 
mke2fs 1.47.0 (5-Feb-2023)
/dev/sda contains a minix file system
Proceed anyway? (y,N) y
Creating filesystem with 7684120 4k blocks and 1921360 inodes
Filesystem UUID: 5ea0f323-25ea-48b6-b2de-1b1e4119d6bf
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000

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

#相关命令

命令说明
mkfs创建 Linux 文件系统
fsck.ext4检查并修复 ext4 文件系统

#推荐阅读

#手册

更新: 2026/3/16

作者: PlanC

创建: 2026/3/16