Linux 磁盘管理

《Linux 磁盘管理》

💾 学习目标

  1. 掌握 Linux 系统中磁盘的基本概念,包括分区、格式化、挂载等。
  2. 理解 /dev, /etc/fstab 等与磁盘相关的目录和配置文件作用。
  3. 能在阿里云 Ubuntu ECS 上添加数据盘、扩展磁盘空间、挂载与卸载设备。
  4. 学会使用 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 已扩容):

  1. 重新扫描磁盘大小(部分环境需要):
echo 1 > /sys/class/block/vdb/device/rescan
  1. 调整文件系统大小(ext4):
sudo resize2fs /dev/vdb1
  1. 如果是 xfs 文件系统:
sudo xfs_growfs /mnt/data

📌 注意:

  • 请确保扩容前磁盘已经在线扩展(通过阿里云控制台完成)。
  • 不支持直接扩容的系统需使用 LVM(Logical Volume Manager)。

🧩 实战案例:ECS 添加数据盘实战 🛠️

场景一:给网站添加独立存储盘 🖥️

你在阿里云上有一台 Ubuntu ECS,运行了一个 WordPress 站点,现在想把 /var/www/html 放到单独的数据盘上。

✅ 步骤如下:

  1. 在阿里云控制台为实例挂载一块新磁盘(如 100GB)。
  2. 登录 ECS,查看新磁盘:
lsblk
  1. 分区并格式化:
sudo fdisk /dev/vdb
sudo mkfs.ext4 /dev/vdb1
  1. 创建挂载点并挂载:
sudo mkdir /mnt/data
sudo mount /dev/vdb1 /mnt/data
  1. 备份原网站目录:
sudo cp -r /var/www/html/* /mnt/data/
  1. 修改挂载配置(/etc/fstab):
UUID=你的UUID   /mnt/data   ext4   defaults   0   2
  1. 修改网站根目录软链接:
sudo rm -rf /var/www/html
sudo ln -s /mnt/data /var/www/html
  1. 重启 Nginx/Apache:
sudo systemctl restart nginx

场景二:清理磁盘空间释放内存 🧹

你发现服务器磁盘快满了,想要清理日志文件。

✅ 步骤如下:

  1. 查看磁盘使用情况:
df -h
  1. 查找大文件:
sudo du -ah /var/log | sort -rh | head -n 20
  1. 清理旧日志(如 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 日志分析与排错技巧》🔍

请告诉我你想深入的方向吧!🚀

posted @ 2023-04-02 10:42  红尘过客2022  阅读(289)  评论(0)    收藏  举报