052 mkfs.ext4命令

命令说明

mkfs.ext4 在分区或整块磁盘上创建 ext4 文件系统(格式化),是新盘上线、LVM 逻辑卷初始化、扩容前必用的命令;操作会清空目标设备全部数据。

语法

mkfs.ext4 [选项]... 设备 [大小]
等价:mkfs -t ext4 设备

常用参数

参数说明
-L 卷标设置 LABEL,如 -L DATA,fstab 可用 LABEL= 引用
-U UUID指定固定 UUID(批量克隆盘场景)
-m 百分比预留给 root 的空间占比,默认 5%,数据盘可设 1
-b 大小块大小:1024/2048/4096,数据库大文件可 4096
-O 特性启/禁特性,如 -O ^has_journal 去日志(只读盘提速)
-P 数量保留给 root 的块数
-N 数量指定 inode 总数,海量小文件场景需调大
-E stride/stripeRAID 对齐优化参数,如 -E stride=16,stripe-width=128
-F强制在整盘或已挂载设备上执行(危险)
-q静默模式,脚本中使用

使用示例

$ mkfs.ext4 /dev/sdb1

标准格式化分区为 ext4

$ mkfs.ext4 -L DATA /dev/sdb1

格式化并打卷标 DATA

$ mkfs.ext4 -m 1 /dev/sdc1

数据盘只留 1% 给 root,多可用 4%

$ mkfs.ext4 -N 4194304 /dev/sdd1

海量小文件场景增大 inode 数

$ mkfs.ext4 /dev/vg_data/lv_app

格式化 LVM 逻辑卷

$ tune2fs -l /dev/sdb1 | head

格式化后查看超级块参数确认

$ blkid /dev/sdb1

获取新 UUID 用于写 fstab

$ mkfs -t ext4 /dev/sdb1

通用写法,等价于 mkfs.ext4

实用技巧

  • mkfs 不可逆!格式化前务必 lsblk/df 二次确认设备名,把 /dev/sda1 根分区格掉是最惨烈的事故;带 -F 更是最后防线被拆除。
  • ext4 默认 inode 数按 16KB 一块估算,若存几十万小文件可能 inode 先耗尽(df -i 查看),此时需 mkfs 时 -N 调大或 -i 调比例。
  • 新盘标准流程:fdisk/parted 分区 → mkfs.ext4 格式化 → blkid 取 UUID → 写 /etc/fstab → mount -a 验证。
  • mkfs.ext4 对已有 ext 文件系统是重建超级块,旧数据可通过 extundelete/testdisk 部分恢复;但 mkfs.xfs 不允许重复格式化,需 -f 强制。
  • SSD/RAID 大阵列可用 -E 对齐参数与 -P 预留优化;日志对性能敏感只读场景可 -O ^has_journal,但断电安全性下降。
  • ext4 与 xfs 选择:RHEL7+ 默认 xfs(大文件/扩容友好,只能扩不能缩),ext4 灵活可缩容,小分区与需缩容场景用 ext4。