15- 磁盘与文件系统管理(fdisk、parted、ext4/xfs/btrfs) 💾
前提条件 ✅
- 已完成第二阶段前置安全加固(SSH、fail2ban、AppArmor、nftables/ufw、端口扫描)
- 以 ops 用户登录(具有 sudo 权限)
- 系统运行在 Debian 12 Bookworm(虚拟机至少 2 块虚拟磁盘:系统盘 + 数据盘)
- VMware Workstation Pro 环境:建议添加第二块虚拟硬盘(SCSI 控制器,≥ 40GB)用于练习
详细步骤 🛠️
-
查看当前磁盘与分区状态
lsblk -f # 推荐:树形显示磁盘、分区、文件系统、挂载点 sudo fdisk -l # 经典工具,列出所有磁盘与分区表 sudo parted -l # 显示分区表类型(gpt/msdos)、扇区大小 df -hT # 已挂载文件系统使用情况 -
添加新虚拟磁盘(VMware 操作)
- 虚拟机关机状态 → VM → Settings → Hardware → Add → Hard Disk
- 创建新磁盘:≥ 40GB,SCSI 控制器
-
启动虚拟机后查看新磁盘:
sudo lsblk # 示例:新磁盘出现为 /dev/sdb(无分区) -
使用 fdisk 创建分区(MBR 风格,适合 <2TB 磁盘)
sudo fdisk /dev/sdb
交互式操作流程: - n → 新分区 - p → 主分区 - 1 → 分区号 1 - 默认起始/结束扇区(全盘分区) - t → 更改类型(83 Linux 或 8e LVM) - w → 写入分区表
验证:
sudo fdisk -l /dev/sdb
sudo partprobe /dev/sdb # 通知内核重新读取分区表
- 使用 parted 创建 GPT 分区(推荐 >2TB 或现代系统)
sudo parted /dev/sdb
parted 交互命令:
(parted) mklabel gpt
(parted) mkpart primary ext4 1MiB 100%
(parted) set 1 lba on
(parted) quit
或者一步命令行:
sudo parted -s /dev/sdb mklabel gpt
sudo parted -s /dev/sdb mkpart primary ext4 1MiB 100%
- 创建并格式化文件系统
常见文件系统对比与命令:
| 文件系统 | 优点 | 缺点 | 格式化命令 |
|---|---|---|---|
| ext4 | 稳定、兼容性最好 | 性能一般 | sudo mkfs.ext4 -L data /dev/sdb1 |
| xfs | 高性能、大文件、并发好 | 无法缩小 | sudo mkfs.xfs -L data /dev/sdb1 |
| btrfs | 子卷、快照、内置 RAID、压缩 | 稳定性稍逊(早期) | sudo mkfs.btrfs -L data /dev/sdb1 |
示例(推荐 xfs 用于数据盘):
sudo mkfs.xfs -f -L data /dev/sdb1
- 挂载与持久化
创建挂载点:sudo mkdir /data
临时挂载:
sudo mount /dev/sdb1 /data
df -h /data
永久挂载(编辑 /etc/fstab):
sudo blkid /dev/sdb1 # 获取 UUID
sudo nano /etc/fstab
添加行(使用 UUID 更安全):
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults,noatime 0 2
测试 fstab 配置:
sudo mount -a # 检查语法与挂载
- 快速扩展分区(虚拟机场景)
- VMware 扩展磁盘大小 → 重启虚拟机
- 使用 growpart + resize2fs(ext4)或 xfs_growfs(xfs)
sudo apt install -y cloud-guest-utils sudo growpart /dev/sdb 1 sudo xfs_growfs /data
实践任务 🎯
- 在 VMware 中添加一块新虚拟磁盘(/dev/sdb),用 lsblk 确认出现
- 用 parted 创建 GPT 分区 + xfs 文件系统,挂载到 /data
- 编辑 /etc/fstab 添加永久挂载,执行 mount -a 测试无报错
- 用 df -hT 和 lsblk -f 验证新分区已正确挂载和识别
自测问题 ❓
- fdisk 和 parted 的主要区别是什么?什么时候优先用 parted?
- 为什么现代系统推荐使用 UUID 而不是 /dev/sdb1 来写 fstab?
- xfs 文件系统无法“缩小”的根本原因是什么?
- 如果虚拟磁盘扩容后分区未变大,第一步操作是什么?
总结 📌
掌握磁盘分区、文件系统创建、挂载与扩展是存储管理的基础技能。
生产环境中优先 GPT + xfs/btrfs + UUID fstab + LVM(下一章),确保数据盘可弹性扩展、无宕机迁移。
本章操作完成后,/data 可用于后续 NFS、备份、数据库数据目录。