linux mkfs命令

命令简介

mkfs 命令用于在Linux系统中创建文件系统(格式化磁盘分区)。它是"make filesystem"的缩写,是磁盘管理和系统安装中非常重要的工具。

注意:使用 mkfs 会永久删除分区上的所有数据,操作前请务必备份重要数据!

基本语法

mkfs [选项] [-t 文件系统类型] [文件系统选项] 设备 [大小]

支持的文件系统类型

类型 命令格式 描述
ext4 mkfs.ext4 Linux最常用的日志文件系统
xfs mkfs.xfs 高性能日志文件系统,适合大文件
btrfs mkfs.btrfs 先进的文件系统,支持快照和压缩
ext3 mkfs.ext3 ext4的前身,兼容性好
ext2 mkfs.ext2 无日志功能的基本文件系统
vfat mkfs.vfat Windows兼容的FAT32文件系统

常用选项

选项 描述
-t type 指定要创建的文件系统类型(如ext4, xfs, btrfs等)
-c 创建文件系统前检查坏块
-L label 设置文件系统卷标
-V 显示详细输出信息
-N 不真正执行,只显示会执行的操作
-f 强制创建文件系统(即使文件系统已存在)

实际示例

示例1:创建 ext4 文件系统

/dev/sdb1 分区上创建 ext4 文件系统:

# 基本用法
sudo mkfs -t ext4 /dev/sdb1

# 或者使用专用命令
sudo mkfs.ext4 /dev/sdb1

# 创建时检查坏块并设置卷标
sudo mkfs.ext4 -c -L "mydata" /dev/sdb1

示例2:创建 XFS 文件系统

XFS 适合大文件和高性能需求:

# 创建 XFS 文件系统
sudo mkfs -t xfs /dev/sdc1

# 使用专用命令,并设置卷标
sudo mkfs.xfs -L "xfs_data" /dev/sdc1

# 查看 XFS 文件系统信息
sudo xfs_info /dev/sdc1

示例3:创建 Btrfs 文件系统

Btrfs 支持高级功能如快照和压缩:

# 创建 Btrfs 文件系统
sudo mkfs -t btrfs /dev/sdd1

# 启用压缩功能
sudo mkfs.btrfs -L "backup" -f /dev/sdd1

# 查看 Btrfs 信息
sudo btrfs filesystem show /dev/sdd1

示例4:创建 FAT32 文件系统(Windows兼容)

创建与 Windows 兼容的文件系统:

# 创建 FAT32 文件系统
sudo mkfs -t vfat /dev/sde1

# 设置 FAT32 卷标
sudo mkfs.vfat -n "SHARE_DISK" /dev/sde1

使用注意事项

  • 数据丢失:使用 mkfs 会永久删除分区上所有数据,操作前请三思
  • 确认设备:使用 lsblkfdisk -l 确认设备名称,避免格式化错误磁盘
  • 卸载分区:格式化前确保分区已卸载:umount /dev/sdX
  • 备份重要数据:格式化前务必备份重要文件
  • 根权限:需要 root 或 sudo 权限执行

常见问题

# 查看系统支持的 mkfs 类型
ls -l /sbin/mkfs.*

# 或者查看可用的文件系统
cat /proc/filesystems

# 查看文件系统类型
sudo file -sL /dev/sdb1

# 查看 ext4 文件系统信息
sudo tune2fs -l /dev/sdb1

# 查看磁盘使用情况
df -hT

误格式化后应立即停止写入操作,可使用以下工具尝试恢复:

  • extundelete: 用于恢复 ext3/ext4 文件系统
  • testdisk: 强大的数据恢复工具
  • photorec: 文件恢复工具

重要:恢复前不要再对磁盘进行任何写入操作!