Linux 存储相关工具总表

Linux 存储相关工具总表

分类原则

工具按"它实际作用在哪一层"分类,而不是按软件包名分类。比如 smartctl 能看 SATA/SAS/NVMe SMART,但底层可能走 ATA pass-through、SCSI SG_IO 或 NVMe ioctl;lsblk 只是读 sysfs/udev,并不直接发硬件命令。

层级 主要接口 典型设备节点
发现与枚举 sysfs, udev, procfs /sys/block, /dev/disk/by-*, /proc/partitions
分区/签名 block ioctl, libblkid, libfdisk /dev/sdX, /dev/nvme0n1, /dev/mmcblk0
文件系统 VFS, FS ioctl, mkfs/fsck 工具 分区或逻辑卷
块设备控制 block ioctl, sysfs queue /sys/block/<dev>/queue, block device
协议管理 NVMe ioctl, SCSI SG_IO, MMC ioctl, UFS BSG /dev/nvme0, /dev/sgX, /dev/mmcblk0, /dev/ufs-bsg
裸闪存 MTD ioctl, UBI ioctl /dev/mtdX, /dev/ubiX, /dev/ubiX_Y
叠加与虚拟化 dm ioctl, md ioctl, loop/nbd/zram /dev/mapper/*, /dev/md*, /dev/loop*
性能与追踪 procfs, sysfs, tracefs, perf_event, eBPF /proc/diskstats, tracepoints

1. 发现、枚举、拓扑

工具 常用命令 能看到什么 内核/驱动关系
lsblk lsblk -o NAME,KNAME,TYPE,TRAN,MODEL,SERIAL,WWN,SIZE,ROTA,SCHED,MOUNTPOINTS 块设备树、传输类型、拓扑、discard、zoned 信息 主要读 sysfs 与 udev;--nvme--scsi 是按 sysfs 属性过滤
blkid blkid /dev/sda1 文件系统、RAID、分区表签名、UUID/LABEL libblkid 直接探测设备头尾签名
findmnt findmnt -R / 挂载树、挂载源、选项 /proc/self/mountinfo
udevadm udevadm info --query=all --name=/dev/sda udev 属性、ID_SERIAL、ID_PATH 反映内核 uevent 与 udev 规则加工结果
lsscsi lsscsi -g -t -s SCSI/SAS/SATA/USB/UFS 设备、host🚌target:lun、sg 节点 读 SCSI sysfs,能把 /dev/sdX/dev/sgX 对起来
lspci lspci -nnk -d ::0108 NVMe/AHCI/SAS/HBA 控制器和绑定驱动 PCI class 0108 通常是 NVMe,0106 是 SATA AHCI,0107 是 SAS
lsusb lsusb -t USB Mass Storage/UAS 拓扑 USB storage 走 usb-storageuas,上层通常进入 SCSI sd
dmesg/journalctl -k `dmesg -T grep -Ei "nvme mmc

2. 分区表、签名、挂载

工具 用途 关键命令 入口/影响
fdisk, cfdisk 交互式 MBR/GPT 分区 fdisk -l /dev/sda 读写分区表扇区,触发内核重新读取分区
sfdisk 脚本化分区 sfdisk --dump /dev/sda 自动化部署常用
parted GPT/MBR 分区与对齐 parted -s /dev/sda unit s print libparted
gdisk, sgdisk GPT 专用 sgdisk -p /dev/nvme0n1 GPT 修复、备份、克隆很好用
partx 告诉内核增删分区映射 partx -u /dev/sda BLKPG ioctl
partprobe 请求内核重读分区表 partprobe /dev/sda 常由 parted 包提供
kpartx 为映像或 multipath 设备创建设备映射 kpartx -av image.raw device-mapper 线性映射
wipefs 查看/擦除签名 wipefs -n /dev/sda 只处理签名,不等于安全擦盘
mount, umount 挂载/卸载 mount -o noatime /dev/mapper/vg-lv /mnt VFS mount API
fsfreeze 冻结文件系统写入 fsfreeze -f /mnt 快照前一致性控制

3. 文件系统工具

文件系统 创建 检查/修复 查询/调优 扩容/缩容
ext2/3/4 mkfs.ext4 e2fsck tune2fs, dumpe2fs, debugfs, filefrag, e4defrag resize2fs
XFS mkfs.xfs xfs_repair xfs_info, xfs_admin, xfs_db, xfs_io, xfs_scrub xfs_growfs
btrfs mkfs.btrfs btrfs check, btrfs scrub btrfs filesystem show, btrfs inspect-internal btrfs filesystem resize
F2FS mkfs.f2fs fsck.f2fs dump.f2fs, sload.f2fs, f2fs_io resize.f2fs
exFAT mkfs.exfat fsck.exfat tune.exfat, dump.exfat 依工具版本
FAT mkfs.vfat fsck.vfat fatlabel 一般重建更常见
UBIFS mkfs.ubifs fsck.ubifs ubinfo, ubihealthd 通过 UBI volume 调整
JFFS2 mkfs.jffs2 挂载时扫描修复为主 sumtool 不适合在线 resize
swap mkswap swaplabel swapon --show 重建或调整后 mkswap

4. 通用块设备控制

工具 关键命令 作用 内核接口
blockdev blockdev --getsz --getss --getpbsz --getiomin --getioopt /dev/sda 查询块大小、扇区数、只读状态、readahead block ioctl
blkdiscard blkdiscard -v /dev/nvme0n1p3 对全设备或范围发 discard/TRIM/UNMAP REQ_OP_DISCARD
blkzone blkzone report /dev/nvme0n1 Zoned block device 查询/重置 zone zone block ioctl
fstrim fstrim -av 文件系统按空闲范围发 discard FS -> block discard
hdparm hdparm -I /dev/sda, hdparm -tT /dev/sda ATA IDENTIFY、缓存、安全擦除、简单测速 ATA ioctl 或 SG_IO pass-through
sdparm sdparm --all /dev/sda SCSI mode page/VPD 参数 SCSI SG_IO
sg3_utils sg_inq, sg_readcap, sg_vpd, sg_logs, sg_format, sg_sanitize, sg_unmap SCSI/SAS/UFS/SATA-SAT 管理 /dev/sgX 或 block 设备上的 SG_IO

5. NVMe SSD 工具

工具 子命令 作用 驱动路径
nvme-cli nvme list, nvme id-ctrl, nvme id-ns, nvme smart-log, nvme error-log 发现、识别、健康与错误日志 /dev/nvmeX 字符设备上的 NVMe ioctl,或 namespace block 设备
nvme-cli fw-log, fw-download, fw-commit 固件信息与升级 Admin command
nvme-cli format, sanitize, self-test, reset, subsystem-reset 低级维护、擦除、复位 Admin command,风险高
nvme-cli discover, connect, disconnect, list-subsys NVMe over Fabrics nvme-fabrics, nvme-tcp, nvme-rdma, nvme-fc
nvme-cli zns report-zones, zns reset-zone Zoned Namespace NVMe ZNS command set
smartctl smartctl -a /dev/nvme0 通用 SMART/健康视图 smartmontools 调 NVMe log page
nvme-stas stafctl, stacd NVMe-oF 自动发现/连接 用户态守护进程配合 kernel NVMe-oF

6. eMMC/MMC/SD 工具

工具 子命令/路径 作用 驱动路径
mmc-utils mmc extcsd read /dev/mmcblk0 解析 eMMC EXT_CSD,寿命、预 EOL、cache、BKOPS、分区配置 MMC_IOC_CMD -> mmc core -> host controller
mmc-utils mmc cid read, mmc csd read, mmc scr read 读 CID/CSD/SCR 寄存器 MMC/SD 命令
mmc-utils mmc bootpart enable, bootbus set eMMC boot0/boot1 启动配置 修改 EXT_CSD
mmc-utils mmc writeprotect, hwreset, sanitize, cache enable/disable, bkops enable 写保护、硬复位、擦除、缓存、后台操作 eMMC 管理命令
mmc-utils mmc rpmb read-counter/read-block/write-block RPMB 安全分区 /dev/mmcblk0rpmb 与认证 key
sysfs /sys/class/mmc_host/mmc*/mmc*/ 读厂商、名称、CID、CSD、date、preferred_erase_size mmc core 暴露属性
block 节点 /dev/mmcblk0, /dev/mmcblk0boot0, /dev/mmcblk0boot1 user/boot 分区 mmc_block
RPMB 节点 /dev/mmcblk0rpmb RPMB 认证读写,不是普通 block I/O mmc_block RPMB 路径

7. UFS 工具

工具 子命令/路径 作用 驱动路径
ufs-utils ufs-utils desc, attr, fl, uic, ffu, rpmb 读写 UFS 描述符、属性、flag、UniPro、固件更新、RPMB /dev/ufs-bsg -> BSG -> ufshcd
sg3_utils sg_inq, sg_readcap, sg_logs, sg_vpd UFS 作为 SCSI LUN 的通用查询 UFSHCD 注册 SCSI host,上层走 sd/sg
lsscsi lsscsi -g /dev/sdX/dev/sgX SCSI sysfs
sysfs/debugfs /sys/bus/platform/drivers/ufshcd*, /sys/class/scsi_device/* host、LUN、电源、错误信息 依 SoC UFS host driver

8. SATA/SAS/SCSI/USB 存储工具

工具 作用 典型场景 驱动路径
smartctl, smartd SMART 查询与监控 HDD/SSD 预故障、温度、重映射、NVMe 健康 ATA/SCSI/NVMe pass-through
hdparm ATA 参数、IDENTIFY、安全擦除、缓存 SATA SSD/HDD libata + SAT/ATA ioctl
sdparm SCSI mode page SAS、企业盘、UFS、USB 桥 SCSI SG_IO
sg3_utils 标准 SCSI 命令 查询 VPD、容量、日志、format、sanitize、UNMAP SCSI midlayer
lsscsi SCSI 设备枚举 识别 H:C:T:L 与 sg 设备 SCSI sysfs
scsi_id 生成 WWID multipath/udev 规则 VPD page 0x83
rescan-scsi-bus.sh 重扫 SCSI 总线 SAN/LUN 热添加 写 SCSI sysfs scan
usb-devices, lsusb -t USB 存储拓扑 判断 uasusb-storage USB core -> SCSI

9. Raw Flash, MTD, UBI, UBIFS

工具 用途 设备 注意
mtdinfo 查看 MTD 类型、擦除块、大小、OOB /dev/mtdX raw NAND/NOR
flash_erase, flash_eraseall 擦除 MTD eraseblock /dev/mtdX NAND 必须按 eraseblock 擦
nanddump dump NAND 含/不含 OOB /dev/mtdX 备份坏块信息时很关键
nandwrite 写 NAND 镜像 /dev/mtdX 注意 OOB/ECC/坏块处理
nandtest NAND 测试 /dev/mtdX 破坏性操作
flashcp 写 NOR/MTD /dev/mtdX 常用于 NOR
ubiformat 格式化 UBI /dev/mtdX 保留/处理坏块信息
ubiattach, ubidetach 挂接/分离 UBI device /dev/ubi_ctrl, /dev/mtdX 创建 /dev/ubiX
ubimkvol, ubirmvol, ubirsvol, ubirename UBI volume 管理 /dev/ubiX UBIFS 的下层
ubinfo UBI/volume 信息 /dev/ubiX wear leveling、erase counter
ubiblock 把 UBI volume 暴露为只读块设备 /dev/ubiX_Y 适合 squashfs 等只读镜像
mkfs.ubifs, mount -t ubifs 创建/挂载 UBIFS UBI volume 不能直接建在 /dev/mtdX

10. LVM, Device Mapper, 加密, RAID, 多路径

类别 工具 作用 内核层
LVM2 pvcreate, pvs, vgcreate, vgs, lvcreate, lvs, lvextend, lvreduce, lvconvert PV/VG/LV 管理、thin、snapshot、cache、mirror device-mapper
dm 通用 dmsetup ls/info/table/status/message 直接查看/创建 dm target /dev/mapper/control ioctl
加密 cryptsetup, integritysetup, veritysetup LUKS/dm-crypt、dm-integrity、dm-verity dm targets
RAID mdadm Linux software RAID create/assemble/grow/monitor md driver
multipath multipath, multipathd, mpathconf, kpartx SAN/SAS 多路径聚合和故障切换 dm-multipath
固件 RAID dmraid, mdadm --examine Intel RST/DDF 等外部 metadata dm/md 与 metadata handler
cache bcache-tools, lvmcache, dmsetup SSD cache、writeback/writethrough bcache 或 dm-cache

11. 虚拟、网络、内存块设备

工具 作用 内核路径
losetup 文件映射成块设备 loop driver
qemu-img, qemu-nbd, nbd-client 镜像转换、NBD 暴露/连接 nbd driver
zramctl 压缩内存块设备 zram
brd/ramdisk 内存块设备 brd/ramdisk
iscsiadm iSCSI initiator 登录/发现 open-iscsi + SCSI
targetcli Linux LIO target 配置 configfs target core
nvmetcli NVMe target 配置 configfs nvmet
rbd Ceph RBD 映射 krbd 或 librbd
drbdadm, drbdsetup 网络复制块设备 DRBD

12. 性能、压测、追踪

工具 用途 看到哪层
fio 可控 I/O 压测,支持 sync/libaio/io_uring/SPDK 应用到块层
dd 简单吞吐测试/镜像复制 应用层,容易被 cache 影响
iostat IOPS、吞吐、await、util /proc/diskstats
sar -d, pidstat -d 历史采样、进程 I/O sysstat
iotop, atop 进程级 I/O taskstats/proc
blktrace, blkparse, btt block request 生命周期 block tracepoints
bpftrace/BCC biolatency, biosnoop, biotop, fileslower, ext4slower, xfsslower eBPF hook 到 block/fs
perf CPU、锁、块层函数热点 perf_event
trace-cmd, kernelshark ftrace 事件采集与可视化 tracefs
strace 看应用 syscall VFS 入口

13. 厂商工具

工具 常见硬件 作用
storcli, MegaCli, perccli Broadcom/LSI/Dell MegaRAID/PERC 阵列、物理盘、cache、BBU、固件
arcconf Microchip/Adaptec SmartRAID RAID/HBA 管理
ssacli, hpssacli HPE Smart Array 阵列与控制器
sas2ircu, sas3ircu LSI SAS HBA HBA、拓扑、固件
Samsung/Micron/Intel/Kioxia/WDC vendor tools 企业 SSD/NVMe 厂商日志、固件、命名空间、健康扩展

14. 按设备名快速反推工具

设备名 多半是什么 首选工具
/dev/nvme0, /dev/nvme0n1 NVMe controller/namespace nvme, smartctl, lsblk, fio
/dev/sda SCSI disk 抽象,可能是 SATA/SAS/UFS/USB/iSCSI lsscsi, smartctl, sg_inq, hdparmsdparm
/dev/sg0 SCSI generic sg3_utils, smartctl -d scsi/sat
/dev/mmcblk0 eMMC/SD user area mmc, lsblk, sysfs
/dev/mmcblk0boot0 eMMC boot partition mmc, blockdev, hexdump
/dev/mmcblk0rpmb eMMC RPMB mmc rpmb ...
/dev/ufs-bsg UFS BSG 管理端点 ufs-utils
/dev/mtd0 raw flash mtdinfo, flash_erase, nanddump, nandwrite
/dev/ubi0_0 UBI volume ubinfo, mkfs.ubifs, mount -t ubifs
/dev/mapper/* dm/LVM/crypt/multipath dmsetup, lvs, cryptsetup, multipath
/dev/md0 md RAID mdadm, /proc/mdstat