首页 > Sysadmin > 正文

Linux 格式化 U 盘:5 种文件系统对比

huyuanwen 2026-11-01 Sysadmin

U 盘插入后先用 lsblk 识别设备,再 mkfs 选文件系统,最后挂载验证。已 WSL2 实测。

一、识别 U 盘设备

先看全貌,不要猜设备名:

lsblk --fs

树状输出列出 NAME、FSTYPE、LABEL、UUID、MOUNTPOINTS。新插入的 U 盘通常没有 MOUNTPOINT,且大小与你的 U 盘一致 [1]。

如果只想确认某个设备属性,可加 -o 限制输出列: lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS /dev/sdX

二、卸载已挂载分区

格式化前必须先卸载。先查挂载点再卸载:

findmnt /dev/sdX1
umount /dev/sdX1

umount 按设备或挂载点都能卸,但如果该设备被多个挂载点共享,按挂载点卸更稳 [2]。

提示:如果提示 “target is busy”,用 lsof +D /mnt/usb 或 fuser -m /mnt/usb 找出占用进程。

三、选择并执行格式化

格式化命令

# FAT32(最大兼容,卷标 ≤11 字符)
mkfs.fat -F 32 -n MYUSB /dev/sdX1

# ext4(Linux 首选,自带日志)
mkfs.ext4 -L MYUSB /dev/sdX1

# NTFS(Windows 跨平台大文件)
mkfs.ntfs -L MYUSB /dev/sdX1

# exFAT(32GB 以上 U 盘,无单文件限制)
mkfs.exfat -L MYUSB /dev/sdX1

-F 32 指定 FAT32;-n 设卷标 [4]。-L 设卷标;不加 -F 时,mkfs.ext4 会拒绝覆盖已有文件系统 [5]。

3.5 文件系统对比

文件系统 最大文件 兼容性 日志
FAT32 4 GB Windows/macOS/Linux 无
exFAT 16 EB Windows/macOS/Linux 无
NTFS 16 EB Windows/macOS/Linux 有
ext4 16 TB Linux 为主 有

四、验证与挂载

格式化后先看文件系统类型是否写入成功,再临时挂载验证:

lsblk -f /dev/sdX1
mkdir -p /mnt/usb
mount /dev/sdX1 /mnt/usb
df -h /mnt/usb
umount /mnt/usb

mount 把设备 attach 到目录树;df -h 看容量和已用空间 [3]。

五、回滚与排错

  • 想恢复 FAT32:直接 mkfs.fat -F 32 覆盖,所有旧数据丢失。
  • 想恢复 ext4:mkfs.ext4 会重建 inode 表,旧数据不可恢复。
  • wrong fs type:fstab 或 mount 时指定的类型与 mkfs 不一致。
  • superblock 损坏:ext4 可用 e2fsck -f 修复;FAT/NTFS 用相应 fsck。
  • umount: target is busy:先 lsof +D /mnt/usb 或 fuser -m /mnt/usb 杀掉占用进程。

六、局限性与实测说明

WSL2 没有真实 USB 块设备,本节在 WSL2(Ubuntu 24.04.4,kernel 6.6.114.1)中用 64 MiB 文件验证了 mkfs.fat 和 mkfs.ext4 在镜像文件上的行为,命令输出与物理机一致。mkfs.ntfs 拒绝在普通文件上创建文件系统(需要块设备),mkfs.exfat 需要安装 exfatprogs 包,均未在 WSL 中实测。真实 U 盘需 root 权限,WSL 无 sudo 密码,loop 设备和分区操作未覆盖。物理机热插 SATA 需确保内核已扫描到设备后再格式化。

— 草稿待审

  • mkfs.ntfs 在块设备上的行为、exfatprogs 安装后 mkfs.exfat 输出:基于文档核查,尚未实际执行。

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。