Linux 文件系统与存储管理完全手册:设备识别、空间监控、文件查找及 MBR 分区详解 第一章Linux 设备识别机制在 Linux 中一切皆文件。对存储设备的访问通过块设备文件实现这些文件通常位于/dev/目录下由操作系统自动创建。1.1 常见块设备命名规范在挂载格式化之前系统通过不同的接口类型识别设备命名规则如下接口类型设备名称格式常见场景SATA / SAS / USB / SCSI/dev/sda,/dev/sdb…物理机硬盘、U盘virtio-blk (虚拟磁盘)/dev/vda,/dev/vdb…KVM/Xen 虚拟机默认磁盘NVMe (固态硬盘)/dev/nvme0n1,/dev/nvme1n1高性能 SSDSD / MMC / eMMC/dev/mmcblk0,/dev/mmcblk1嵌入式设备、SD卡分区表示法SATA/SAS 磁盘第一个分区为/dev/sda1第二个为/dev/sda2。NVMe 磁盘第一个分区为/dev/nvme0n1p1多了一个p以示区分。1.2 为什么要分区数据安全隔离系统分区损坏不影响数据分区。性能优化可根据分区用途如/home大量小文件定制不同的文件系统参数。空间限制通过配额限制用户或服务的使用空间。便于备份可以只备份关键数据分区。第二章Linux 文件系统概述文件系统是操作系统在存储设备上组织文件的方法。Linux 默认采用文件系统层次结构标准FHS所有文件从根目录/开始。2.1 常用文件系统类型xfsCentOS/RHEL 7 默认支持超大文件日志型性能优秀。ext4传统 Linux 标准向下兼容 ext2/3。swap交换分区虚拟内存。iso9660光盘/镜像文件系统。ntfs / exfatWindows 常用格式Linux 需额外驱动。第三章查看设备与文件系统状态3.1lsblk—— 查看块设备树状结构bashlsblk# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT# sda 8:0 0 20G 0 disk# nvme0n1 259:0 0 200G 0 disk# ├─nvme0n1p1 259:1 0 1G 0 part /boot# └─nvme0n1p2 259:2 0 199G 0 part# ├─rl-root 253:0 0 70G 0 lvm /TYPE列显示是disk磁盘、part分区还是lvm逻辑卷。MOUNTPOINT为空表示尚未挂载。3.2df—— 查看文件系统磁盘空间使用情况bash# -h 人类易读 (1024进制) ; -T 显示文件系统类型 ; -H 1000进制df-hT# Filesystem 类型 容量 已用 可用 已用% 挂载点# /dev/mapper/rl-root xfs 70G 6.5G 64G 10% /Tipsdf -h /boot只查看指定挂载点df /tmp可以查看某目录所在设备的剩余空间。3.3du—— 统计目录和文件占用空间bash# -s 仅显示总计, -h 人类易读du-sh/boot# 查看 /boot 总大小du-sk/usr/*|sort-n# 找出 /usr 下哪个子目录最大经典排查手法实战案例查找根目录下的大文件bash# 方法1逐层 du sort 定位du-sk/*|sort-n# 方法2直接 find 查找超过 100M 的文件find/-size100M2/dev/null第四章挂载与卸载文件系统必须将设备挂载到一个空目录挂载点上该目录下的原有文件将被隐藏。4.1mount挂载bash# 基本语法mount [-t 类型] [-o 选项] 设备 挂载点mount/dev/sdb /data# 通过 UUID 挂载推荐设备名可能变化blkid /dev/sdb# 获取 UUIDmountUUIDf20547b2.../data# 查看当前所有挂载信息mount|grep^/dev4.2umount卸载bashumount/dev/sdb# 或 umount /data4.3 卸载失败Target is busy解决方法当有进程正在使用挂载点时无法卸载。方法1使用lsof查看占用进程bashlsof/data# COMMAND PID USER FD TYPE DEVICE NODE NAME# bash 1508 root cwd DIR 8,17 64 /data方法2使用fuser查看并强制终止bashfuser-m/data# 查看fuser-km/data# 强制杀死占用进程 (发送 SIGKILL)cd~umount/data# 切换目录后卸载4.4 开机自动挂载/etc/fstab手动挂载重启后失效。若需永久挂载需修改/etc/fstab配置文件。bash# 格式: UUID 挂载点 文件系统类型 挂载选项 dump备份 开机自检UUIDf20547b2... /data xfs defaults00修改后使用mount -a测试配置文件是否有语法错误无需重启。第五章特殊文件系统挂载实战5.1 挂载 NTFS 格式Windows U盘Linux 默认不支持需安装ntfs-3g驱动通常由 EPEL 仓库提供。bashyuminstall-yntfs-3g mount.ntfs /dev/sdb1 /mnt/windows5.2 挂载 exFAT 格式需编译安装fuse-exfat模块需依赖 gcc、fuse-devel。bash# 编译安装后mount.exfat /dev/sdb1 /mnt/exfat5.3 挂载 ISO 镜像文件构建本地 YUM 仓库bash# 创建挂载点并将光盘挂载到 Web 目录供内网使用mkdir/usr/share/nginx/html/dvdmount/dev/sr0 /usr/share/nginx/html/dvd# 客户端配置仓库cat/etc/yum.repos.d/dvd.repoEOF [dvd] nameLocal DVD Server baseurlhttp://server_ip/dvd gpgcheck0 EOFyum clean allyum grouplist第六章文件查找利器locate vs find6.1locate—— 基于数据库快速查找利用/var/lib/mlocate/mlocate.db数据库极速检索需要先用updatedb更新数据库。bashlocatehttpd.conf# 精准匹配locate-ipasswd# -i 忽略大小写locate-cpasswd# -c 只计数locate-rhttp.*conf# -r 正则表达式6.2find—— 实时硬盘查找功能强大基本语法find [路径] [条件] [动作]分类参数示例说明文件名-name passwd-iname passwd精确/忽略大小写匹配文件类型-type f(文件)-type d(目录)-type l(链接)文件大小-size 10M(大于10M)-size -1k(小于1k)-size 1024k注意-size 1M会匹配小于1M的文件取整建议用1024k权限-perm 764(精准匹配)-perm -764(权限至少包含764)-perm /764(ugo任一满足)查找 SUID:find / -perm -4000时间-mtime 10(10天前修改)-amin -5(5分钟内访问)用户/组-user root-nouser(删除的用户遗留文件)多条件组合逻辑与默认find . -name *.txt -size 1M逻辑或-o例如find / -nouser -o -nogroup逻辑非!例如find / ! -size -200M常用动作actionbash# 1. 查找并删除find/-namePASSWD-delete# 2. 查找并执行命令经典用法注意 {} 和 \; 的组合find/var/log-name*.log-execcp-a{}/backup/\;# 3. 查找并查看详细信息相当于 ls -lfind/etc-namepasswd-ls第七章硬盘分区管理MBR 与 GPT7.1 分区方案对比特性MBR (传统)GPT (新标准)分区数量最多4个主分区或 3主1扩展(含N逻辑)理论上无限 (通常128个)单分区容量最大 2 TiB最大 9.4 ZB固件支持BIOSUEFI工具fdiskgdisk或fdisk(新版本也支持)MBR 补知识扩展分区不能格式化只能用来容纳逻辑分区只有逻辑分区可以挂载使用。7.2 使用fdisk管理 MBR 分区交互式命令内部常用按键p打印分区表n新建分区d删除分区t修改分区类型如 82Swap, 83Linux, 8eLVMw保存并退出q不保存退出新建分区步骤示例创建一个 2G 主分区bashfdisk/dev/sdbn# 新建p# 主分区1# 分区号回车# 起始扇区默认2G# 结束扇区指定大小w# 保存执行完后建议运行partprobe通知内核更新分区表。非交互式脚本化操作将命令写入文件通过重定向执行bashecho-en\np\n1\n\n2G\nw|fdisk/dev/sdb7.3 分区布局示例扩展分区如果超过4个分区需将第4个设为扩展分区再在其上创建逻辑分区从 sdb5 开始text/dev/sdb1(主, 2G)/dev/sdb2(主, 3G)/dev/sdb3(主, 4G)/dev/sdb4(扩展, 剩余全部)/dev/sdb5(逻辑, 5G)/dev/sdb6(逻辑, 剩余)附录核心工具速查表需求命令说明查看所有磁盘lsblk最直观看结构查看磁盘容量df -hT看已挂载的分区查看目录大小du -sh *看文件夹实际占用查看磁盘分区fdisk -l /dev/sdb未挂载也能看格式化分区mkfs.xfs /dev/sdb1或mkfs.ext4挂载设备mount /dev/sdb1 /mnt-卸载设备umount /mnt记得退出挂载目录查看占用进程lsof /mnt卸载时若报 busy 使用查找大文件find / -size 1G 2/dev/null忽略权限报错批量复制查找结果find . -name *.conf -exec cp {} /tmp/ \;注意{}和\;总结Linux 存储管理遵循“设备文件 → 格式化文件系统→ 挂载目录”的链路。熟练使用lsblk、df、du排查空间问题掌握find的灵活查找以及fdisk的分区操作是 Linux 运维的核心基本功。对于生产环境建议优先使用GPT分区方案和UUID挂载方式写入/etc/fstab以确保稳定性。