服务器上「磁盘满没满、哪个目录吃空间、新硬盘怎么挂上去、卸载报 busy 怎么收场」是运维日常。本文按「查看 → 格式化 → 挂载 → 卸载排错 → 挂载特殊设备」五步走覆盖lsblk/df/du/mkfs.xfs/mount/umount/blkid/lsof/fuser九个命令的速查表与实战。文中命令名均标注英文全称如df disk free完整清单见文末《附命令英文全称速查表》。一、认识块设备与文件系统Linux 把存储设备抽象成块设备block device文件放在/dev下由内核自动创建。挂载前必须先格式化出文件系统ext4 / xfs / vfat …要让文件在目录树里可见得把它挂到一个空目录挂载点上。不同接口的设备命名规则接口 / 类型设备名示例说明SATA / SAS / USB / SCSI/dev/sda、/dev/sdb字母按内核识别顺序分配virtio-blk虚拟机磁盘/dev/vda、/dev/vdbKVM / QEMU 等虚拟化环境NVMe SSD/dev/nvme0n1、/dev/nvme1n1数字为控制器号SD / MMC / eMMC/dev/mmcblk0、/dev/mmcblk1嵌入式 / 树莓派等分区/dev/sda1、/dev/nvme0n1p1、/dev/vda1设备名后加序号NVMe 用p分隔⚠️注意mount到非空目录时原目录里的内容会被暂时遮蔽卸载后才重新可见——别往/home、/etc这类系统目录随手挂东西。二、查看磁盘与文件系统占用2.1 lsblk列出块设备写法作用说明英文原意lsblk列出所有块设备树状展示 disk / part / lvm 层级lsblk -f同时显示文件系统与 UUIDfilesystemTYPE / UUID / LABELlsblk -p显示完整设备路径path/dev/sda而非sdalsblk -d只看磁盘、不展开分区disk-only隐藏 part / lvmlsblk -o NAME,SIZE,MOUNTPOINT自定义输出列output只显示关心的字段lsblk /dev/sdb只看指定设备排查单盘时用# 树状查看整机磁盘、分区与 LVM 关系[rootzhb-m1 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda8:0020G0disk sr011:0113.2G0rom nvme0n1259:00200G0disk ├─nvme0n1p1259:101G0part /boot └─nvme0n1p2259:20199G0part ├─rl-root253:0070G0lvm / ├─rl-swap253:103.9G0lvm[SWAP]└─rl-home253:20125.1G0lvm /homeTYPE列区分磁盘disk、分区part、逻辑卷lvm、光盘romMOUNTPOINT为空即未挂载。2.2 df查看文件系统使用率写法作用说明英文原意df -h人类可读单位1024 进制human-readabledf -hT同时显示文件系统类型Typexfs / ext4 / iso9660 …df -H1000 进制单位H1K1000数字略大于-hdf -h /data只看某个挂载点跟目录 / 文件参数只显示所在文件系统df -i看 inode 而非空间inode文件数耗尽也会写不进# 带类型一起看一眼分清 xfs / iso9660[rootzhb-m1 ~]# df -hT文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/rl-root xfs 70G6.5G 64G10% / /dev/sr0 iso9660 14G 14G0100% /dvd /dev/nvme0n1p1 xfs 1014M 202M 813M20% /boot /dev/mapper/rl-home xfs 126G 925M 125G1% /home# 看某个文件落在哪个文件系统[rootzhb-m1 ~]# df -h /tmp文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/rl-root 70G6.5G 64G10% /2.3 du统计目录 / 文件占用写法作用说明英文原意du /path递归列出每个子目录占用默认单位 KBdu -s /path只给总和summarize不展开子目录du -sh /path人类可读的总占用human-readabledu -sk /* | sort -n各顶层目录按大小排序kilobytes sort找大目录du -h -d 1 /path只看一层子目录depth等价于--max-depth1# 先看 /boot 递归占用每级子目录都列再只看总和[rootzhb-m1 ~]# du /boot | tail -3142368/boot[rootzhb-m1 ~]# du -sh /boot140M /boot2.4 示例揪出根目录里的大文件# 环境准备造一个 4G 文件用 0 填充[rootzhb-m1 ~]# dd if/dev/zero of/usr/share/doc/dhclient-4.2.5/bigfile-4G bs1M count40964294967296bytes(4.3GB)copied,38.66s,111MB/s# 方法一逐层下钻每层按占用排序找最大的目录[rootzhb-m1 ~]# du -sk /* | sort -n......7917328/usr[rootzhb-m1 ~]# du -sk /usr/share/doc/* | sort -n......4194316/usr/share/doc/dhclient-4.2.5[rootzhb-m1 ~]# du -sk /usr/share/doc/dhclient-4.2.5/* | sort -n4194304/usr/share/doc/dhclient-4.2.5/bigfile-4G三、格式化与挂载3.1 mkfs.xfs格式化新磁盘新增一块硬盘如/dev/sdb后先格式化成文件系统才能用。# 查看新盘[rootzhb-m1 ~]# lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb8:16020G0disk# 格式化为 xfs[rootzhb-m1 ~]# mkfs.xfs /dev/sdbmeta-data/dev/sdbisize512agcount4,agsize1310656blks databsize4096blocks5242624,imaxpct25loginternal logbsize4096blocks2560,version2realtimenoneextsz4096blocks0,rtextents0⚠️注意mkfs.xfs默认拒绝覆盖已有文件系统的设备要强制重写需加-f会清掉上面的全部数据慎用。3.2 xfs_admin修改文件系统标签文件系统标签LABEL写在文件系统超级块里用于在不记 UUID 的情况下认设备、按标签挂载。它与分区名PARTLABEL不是一回事后者写在 GPT 分区表上用gdisk的c键改见姊妹篇《Linux 硬盘分区管理》。XFS 用xfs_adminxfsprogs包系统默认自带无需额外安装。格式化时直接指定可省掉事后修改[rootzhb-m1 ~]# mkfs.xfs -L data01 /dev/sdb1 # 格式化时一并写入标签参数含义英文原意-L label设置文件系统标签LabelXFS 最长 12 个字符-l打印当前标签label小写-U UUID设置 UUIDUUID-u打印当前 UUIDuuid设备名位置参数写设备路径如/dev/sdb1不能写挂载点[rootzhb-m1 ~]# umount /data # 改标签前先卸载[rootzhb-m1 ~]# xfs_admin -L data01 /dev/sdb1 # 设置新标签writing all SBs new labeldata01[rootzhb-m1 ~]# xfs_admin -l /dev/sdb1 # 查看标签labeldata01[rootzhb-m1 ~]# mount LABELdata01 /data # 之后即可按标签挂载ext2 / ext3 / ext4 不走xfs_admin用e2labele2fsprogs包同样自带[rootzhb-m1 ~]# e2label /dev/sdb1 data01 # 带名称即设置[rootzhb-m1 ~]# e2label /dev/sdb1 # 不带名称即查看⚠️注意xfs_admin改标签要求文件系统处于卸载状态挂载中执行会报contains a mounted filesystem。另外 XFS 标签最长 12 个字符ext 系列 16 个超长会被静默截断标签只支持 ASCII不要写中文。3.3 mount挂载到目录挂载前先用blkid确认设备的 UUID 与类型生产环境推荐按 UUID 挂避免设备名漂移。写法作用说明英文原意mount /dev/sdb /data把设备挂到目录device 在前、挂载点在后mount UUID... /data按 UUID 挂载blkid查到的标识mount -t xfs /dev/sdb /data显式指定文件系统类型typemount -o ro /dev/sdb /data只读挂载optionsro / rw / defaultsmount -o loop file.iso /mnt挂载 ISO 镜像文件loop 设备把文件当块设备mount | grep ^/dev查看当前所有挂载无参数列出全部挂载项# 创建挂载点并查看设备标识[rootzhb-m1 ~]# mkdir /data[rootzhb-m1 ~]# blkid /dev/sdb/dev/sdb:UUIDf20547b2-df53-46e5-b526-a8744be26231TYPExfs# 两种方式挂载效果相同[rootzhb-m1 ~]# mount /dev/sdb /data[rootzhb-m1 ~]# mount UUIDf20547b2-df53-46e5-b526-a8744be26231 /data# 验证 写文件测试[rootzhb-m1 ~]# df -h /data文件系统 Size Used Avail Use% Mounted on /dev/sdb 20G 33M 20G1% /data[rootzhb-m1 ~]# touch /data/file-{00..09}挂载光盘或 ISO 镜像mount/dev/sr0 /mnt/dvd# 物理光盘mount-oloop CentOS-Stream.iso /mnt/iso# ISO 镜像文件四、卸载与排错4.1 umount卸载文件系统umount后面跟设备名或挂载点都行。写法作用说明英文原意umount /data按挂载点卸载等效umount /dev/sdbumount -l /data惰性卸载lazy等进程释放后再卸不卡住umount -f /data强制卸载force网络文件系统卡死时用[rootzhb-m1 ~]# umount /data[rootzhb-m1 ~]# df -h /data文件系统 Size Used Avail Use% Mounted on /dev/mapper/rl-root 50G4.3G 46G9% /# 卸载后 /data 回到根文件系统4.2 卸载失败lsof 定位占用进程在挂载点目录内时卸载会报target is busy。[rootzhb-m1 data]# umount /dev/sdbumount: /data: target is busy.(In some cases useful info about processes that use the device is found by lsof(8)or fuser(1))lsoflistopenfiles直接跟挂载点列出正在使用它的进程写法作用说明英文原意lsof /data谁在用这个挂载点输出 COMMAND / PID / USER / FD / TYPE / NAMElsof -p 1508某进程打开了哪些文件pidlsof -u zhb某用户打开的文件userlsof -i :22谁占用了 22 端口internet[rootzhb-m1 ~]# lsof /dataCOMMAND PIDUSERFD TYPE DEVICE SIZE/OFF NODE NAMEbash1508root cwd DIR8,1715664/data# cwd 当前工作目录就在这cwd说明有 shell 的当前目录还停在/data——cd回别处即可卸载。4.3 卸载失败fuser 定位并杀进程fuserfileuser列出占用文件的进程加-k可直接杀掉。写法作用说明英文原意fuser -m /data列出占用挂载点的进程mount文件系统被谁用fuser -mu /data同时显示用户名userfuser -k -m /data杀掉这些进程kill默认 SIGKILLfuser -k -i -m /data交互式确认后再杀interactive[rootzhb-m1 ~]# fuser -m /data/data: 1508c# c 进程把该目录当当前目录⚠️注意fuser -k默认发SIGKILL进程来不及清理临时文件 / 落盘数据就终止生产环境优先用lsof看清 PID 后手动处理或加-i逐个确认。五、实战挂载 NTFS / exFAT U 盘Linux 默认不认 NTFS / exFAT需装对应驱动模块。5.1 NTFSntfs-3gyuminstall-yntfs-3g# 来自 EPELmount-tntfs-3g /dev/sdb1 /mnt5.2 exFATexfatprogs现代/ fuse-exfat旧yuminstall-yexfatprogs# 提供 mkfs.exfat / fsck.exfatmount-texfat /dev/sdb1 /mnt⚠️注意Linux 内核≥ 5.4已内置 exFAT 驱动新版发行版可直接mount -t exfat只有老系统才需源码编译fuse-exfat这种用户态方案。NTFS 在≥ 5.15内核有原生ntfs3驱动mount -t ntfs3但ntfs-3g仍是通用稳妥之选。 参考资料官方文档 · 中英双语lsblk(8) 块设备查看df(1) 文件系统使用率du(1) 磁盘占用统计mkfs.xfs(8) xfs 格式化xfs_admin(8) xfs 参数管理mount(8) 挂载umount(8) 卸载blkid(8) 设备标识lsof(8) 打开文件列表fuser(1) 文件占用进程附命令英文全称速查表命令 / 缩写英文全称 / 原意作用lsblklistblockdevices列出块设备dfdiskfree文件系统剩余空间dudiskusage目录 / 文件占用mkfsmakefilesystem格式化xfsXFile System一种高性能日志文件系统xfs_adminXFSadministrator查看 / 修改 XFS 标签与 UUIDe2labelext2label查看 / 修改 ext 系列文件系统标签LABELlabel标签文件系统标签写在超级块里可按它挂载blkidblockid查看设备 UUID / 类型mount/umount—挂载 / 卸载lsoflistopenfiles列出打开的文件fuserfileuser文件被哪些进程占用ntfs-3gNT File System第三方读写实现NTFS 驱动exFATExtendedFileAllocationTable大容量 U 盘常用格式UUIDUniversallyUniqueIdentifier设备唯一标识LVMLogicalVolumeManager逻辑卷管理总结九条命令串起一条主线——lsblk/df/du看清「盘在哪、空间剩多少、谁最占」新盘mkfs.xfs格式化后用mount挂上去blkid取 UUID 更稳不用了umount卸下卸载报 busy 就lsof/fuser揪出赖着不走的进程。NTFS / exFAT 的 U 盘装好ntfs-3g/exfatprogs再挂即可。觉得有用的话点赞收藏评论区聊聊你被target is busy卡过的经历。
企业数字化 ERP 产品动态
相关推荐
Robot Framework 注册信息全解:文件扩展名、媒体类型与远程服务器端口 测试RPA接口测试 【免费下载链接】robotframework Generic automation framework for acceptance testing and RPA 项目地址: https://gitcode.com/gh_mirrors/ro/robotframework 点击查看 免费下载 本指南基于 Robot Framework 用户指南附录 Registrations&#x… · 2026/9/24 17:36:39
Linux man 手册与基本命令详解 1. 引言对于刚接触 Linux 的开发者来说,man 手册和基本命令是必须掌握的两项基础技能。man 手册是系统内置的权威参考文档,而基本命令则是日常操作系统的核心工具。本文将从 man 手册的使用方法讲起,再系统梳理常用 Linux 基本命令࿰… · 2026/9/24 17:36:27
连接器工程化选型策略 工程化选型不能只关注器件本身,而必须同时覆盖应用场景、制造工艺与供应链管理这三个关键维度。 连接器工程化选型流程摘要:连接器选型看似是一个元件选择问题,实际上是系统设计问题。如果工程师只根据针数、间距和额定电流进行选择&#… · 2026/9/24 17:36:27
Java实现中国象棋:从棋盘建模到Alpha-Beta剪枝的完整解析 简介:一套基于 Java 实现的《中国象棋》完整游戏源码,面向有一定 Java 基础、想深入游戏逻辑与算法设计的开发者。项目实现了棋盘与棋子的图形界面、不同棋子的走法限制、走子音效,并采用极大极小值搜索算法构建 AI;支持人机、人人… · 2026/9/24 19:13:53
净化板材选型与施工全解析:从洁净等级到气密性验收 1. 净化板材的基本认知与分类做净化工程这些年,我见过太多人把净化板当成普通彩钢板用,结果后面返工、整改、验收不过关,一堆麻烦事。实际上净化板材和普通建材板完全是两个思路的产物,它本质上是一种“服务于空气洁净度控制”的结… · 2026/9/24 19:13:53
服务器硬件测试选型指南:从资源画像到套餐化实践 1. 从一台"看起来没问题"的服务器说起机房巡检的时候,最怕遇到那种"什么告警都没有,但业务就是慢"的机器。CPU使用率不高,内存也够,磁盘IO看着也正常,可一到业务高峰期,响应时间就往上… · 2026/9/24 19:13:53
AI智能体时代的数据主权:权限粒度、内存生命周期与上下文隔离 1. 这不是选“安全软件”,而是重构办公数据的流动规则2026年,企业级AI智能体办公平台已不再是PPT里的概念——它真实运行在销售晨会的实时话术生成、法务部自动起草的合同条款比对、HR系统里千人千面的绩效反馈草稿生成中。但所有这些场景背后࿰… · 2026/9/24 19:13:53
Flutter跨平台开发OpenHarmony游戏库App:设置模块全流程实战 最近在推进一个基于Flutter的OpenHarmony游戏库App,功能是把散落在本机和各个平台的游戏信息统一管理起来,支持多数据源订阅、一键入库、下载任务排队这些能力。整体框架搭完之后,我发现最花时间的其实不是首页那些花哨的列表和动画ÿ… · 2026/9/24 19:13:53
AI智能体协同编程实战:Qoder使用经验与高效协作技巧 程序员圈子里最近讨论得比较多的,是阿里巴巴出的这个Qoder,定位是AI智能体协同编程工具。我把它装进IDE用了大概三周,从最开始只会让它补全函数,到后面让它独立跨文件改代码、做代码审查、处理异常日志,中间踩了不少坑… · 2026/9/24 19:13:47
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44