Linux 磁盘管理
《Linux 磁盘管理》
💾 学习目标
- 掌握 Linux 系统中磁盘的基本概念,包括分区、格式化、挂载等。
- 理解
/dev,/etc/fstab等与磁盘相关的目录和配置文件作用。 - 能在阿里云 Ubuntu ECS 上添加数据盘、扩展磁盘空间、挂载与卸载设备。
- 学会使用
df,du,fdisk,lsblk,mount等命令进行磁盘管理和监控。
🧠 核心重点(表格提炼)
| 操作 | 命令 | 功能说明 |
|---|---|---|
| 查看磁盘信息 | lsblk, fdisk -l |
显示系统中的所有磁盘及分区 |
| 分区 | fdisk, parted |
对磁盘进行分区操作 |
| 格式化 | mkfs, mkswap |
创建文件系统或交换分区 |
| 挂载 | mount |
将磁盘或分区挂载到指定目录 |
| 卸载 | umount |
卸载已挂载的磁盘 |
| 自动挂载配置 | /etc/fstab |
配置开机自动挂载 |
| 查看磁盘使用情况 | df -h, du -sh |
查看磁盘容量及目录大小 |
| 扩展逻辑卷 | LVM 相关命令 |
扩容逻辑卷(需支持 LVM) |
🔍 详细讲解
1. 磁盘基础知识 🧱
在 Linux 中,磁盘通常以
/dev/sdX或/dev/vdX的形式表示(如/dev/vda,/dev/vdb),其中:
/dev/vda:系统盘/dev/vdb:数据盘(ECS 可额外挂载)
✅ 磁盘生命周期流程:
添加磁盘 ➝ 分区 ➝ 格式化 ➝ 挂载 ➝ 使用 ➝ 卸载 ➝ 删除
📌 注意:
- 数据盘需要手动挂载后才能使用。
- 挂载点建议使用
/mnt/data,/data,/opt/data等路径。
2. 查看磁盘信息:lsblk & fdisk -l 👀
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 40G 0 part /
vdb 252:16 0 100G 0 disk
📌 解释:
vda是系统盘,vda1是它的第一个分区。vdb是新增的数据盘,尚未分区和格式化。
📄 查看更详细的磁盘信息:
sudo fdisk -l
3. 分区:fdisk or parted 📐
✅ 使用 fdisk 进行 MBR 分区(适合小于 2TB 的磁盘):
sudo fdisk /dev/vdb
常用指令:
n:新建分区p:查看当前分区表w:保存并退出q:不保存退出
📌 注意:
- 若磁盘大于 2TB,建议使用
parted创建 GPT 分区。
4. 格式化:mkfs 💾
分区完成后需要格式化为特定文件系统(如 ext4, xfs 等)。
✅ 创建 ext4 文件系统:
sudo mkfs.ext4 /dev/vdb1
✅ 创建 xfs 文件系统(推荐用于大容量磁盘):
sudo mkfs.xfs /dev/vdb1
📌 注意:
- 格式化将清空该分区的所有数据,请谨慎操作。
- 若你不确定是否要格式化,可以先用
file -s /dev/vdb1查看是否有数据。
5. 挂载磁盘:mount 📁
挂载是将磁盘或分区连接到一个目录的过程。
✅ 创建挂载点:
sudo mkdir /mnt/data
✅ 挂载分区:
sudo mount /dev/vdb1 /mnt/data
✅ 查看挂载状态:
df -h
6. 设置开机自动挂载:编辑 /etc/fstab ⚙️
编辑
/etc/fstab文件,添加如下内容实现开机自动挂载:
UUID=你的分区UUID /mnt/data ext4 defaults 0 2
📌 获取 UUID 方法:
sudo blkid /dev/vdb1
📌 测试 fstab 是否正确:
sudo mount -a
若无报错则说明配置成功!
7. 卸载磁盘:umount 🗑️
使用前请确保没有程序正在访问该磁盘。
sudo umount /mnt/data
📌 注意:
- 如果提示“device is busy”,可使用
lsof /mnt/data查看占用进程。 - 卸载后仍可重新挂载。
8. 查看磁盘使用情况:df & du 📊
✅ 查看整体磁盘使用情况:
df -h
✅ 查看某目录所占空间:
du -sh /var/log
📌 小技巧:
du -ah /path/to/dir | sort -rh | head -n 20可列出目录下最大文件/子目录。ncdu是一个交互式磁盘分析工具(需安装)。
9. 扩展磁盘容量(适用于 LVM 或云平台扩容)🔄
如果你使用的是支持动态扩容的 LVM 或阿里云云盘,可以在线扩展磁盘容量。
✅ 步骤如下(假设 /dev/vdb1 已扩容):
- 重新扫描磁盘大小(部分环境需要):
echo 1 > /sys/class/block/vdb/device/rescan
- 调整文件系统大小(ext4):
sudo resize2fs /dev/vdb1
- 如果是 xfs 文件系统:
sudo xfs_growfs /mnt/data
📌 注意:
- 请确保扩容前磁盘已经在线扩展(通过阿里云控制台完成)。
- 不支持直接扩容的系统需使用 LVM(Logical Volume Manager)。
🧩 实战案例:ECS 添加数据盘实战 🛠️
场景一:给网站添加独立存储盘 🖥️
你在阿里云上有一台 Ubuntu ECS,运行了一个 WordPress 站点,现在想把 /var/www/html 放到单独的数据盘上。
✅ 步骤如下:
- 在阿里云控制台为实例挂载一块新磁盘(如 100GB)。
- 登录 ECS,查看新磁盘:
lsblk
- 分区并格式化:
sudo fdisk /dev/vdb
sudo mkfs.ext4 /dev/vdb1
- 创建挂载点并挂载:
sudo mkdir /mnt/data
sudo mount /dev/vdb1 /mnt/data
- 备份原网站目录:
sudo cp -r /var/www/html/* /mnt/data/
- 修改挂载配置(
/etc/fstab):
UUID=你的UUID /mnt/data ext4 defaults 0 2
- 修改网站根目录软链接:
sudo rm -rf /var/www/html
sudo ln -s /mnt/data /var/www/html
- 重启 Nginx/Apache:
sudo systemctl restart nginx
场景二:清理磁盘空间释放内存 🧹
你发现服务器磁盘快满了,想要清理日志文件。
✅ 步骤如下:
- 查看磁盘使用情况:
df -h
- 查找大文件:
sudo du -ah /var/log | sort -rh | head -n 20
- 清理旧日志(如 7 天前的
.log文件):
sudo find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;
🧰 小贴士(建议收藏)🔖
| 技巧 | 说明 |
|---|---|
lsblk -f |
显示文件系统类型和 UUID |
tune2fs -l /dev/vdb1 |
查看 ext4 文件系统详细信息 |
smartctl -a /dev/vda |
检查硬盘健康状态(需安装 smartmontools) |
rsync -av /src /dest |
安全高效同步目录 |
dd if=/dev/zero of=test bs=1M count=100 |
测试写入速度 |
iostat -xmt 1 |
实时查看磁盘 I/O 状态(需安装 sysstat) |
📌 注意事项与安全建议
| 项目 | 建议 |
|---|---|
| 不要在系统盘存放大量数据 | 应使用独立数据盘 |
| 定期备份重要数据 | 使用 tar, rsync, cron 自动备份 |
| 使用 UUID 而非设备名挂载 | 防止设备顺序变化导致挂载失败 |
不随意执行 rm -rf |
极其危险,可能导致系统崩溃 |
| 启用磁盘配额功能 | 控制用户或目录的磁盘使用量 |
| 使用 LVM 管理磁盘 | 提供灵活的磁盘扩展能力 |
🎯 总结一句话:
“掌握 Linux 磁盘管理,就像拥有了一张地图🗺️+一把钥匙🔑 —— 你可以随时掌控系统的‘地盘’,合理分配资源,让服务器运行得又稳又快!”
是否继续下一章?我将继续输出:
- 《Shell 命令进阶与自动化脚本》🖥️
- 《Linux 权限管理与 ACL 详解》🔐
- 《Linux 日志分析与排错技巧》🔍
请告诉我你想深入的方向吧!🚀

浙公网安备 33010602011771号