简介
在 Ubuntu Server 上管理存储和磁盘是管理员的一项关键技能,尤其是在云平台(AWS、Azure、Google Cloud)或虚拟化平台(VMware、Hyper-V、Proxmox)等动态环境中。扩展操作系统磁盘、初始化数据磁盘或优化存储配置等任务都是常见场景。虽然自动化工具通常可以简化这些流程,但扎实理解底层步骤对于有效排查故障和手动干预至关重要。
在本指南中,我们将探讨 Ubuntu Server 上的存储和磁盘管理,包括文件系统类型、分区、格式化和磁盘优化。通过针对物理环境和虚拟化环境量身定制的实用示例,本指南将为你提供高效处理存储管理任务的知识。
往期文章:
01. Ubuntu Server 简介 – SysOSX: AI & Cloud
02. 如何搭建你的第一台 Ubuntu Server:初学者指南 – SysOSX: AI & Cloud
03. 掌握 Ubuntu Server 的 Linux 命令行 – SysOSX: AI & Cloud
04. Ubuntu Server 用户与权限管理:全面指南 – SysOSX: AI & Cloud
05. Ubuntu Server 网络基础:全面指南 – SysOSX: AI & Cloud
06. 在 Ubuntu Server 上安装和管理软件:完整指南 – SysOSX: AI & Cloud
07. 修补和更新 Ubuntu Server:全面指南 – SysOSX: AI & Cloud
08. 保护你的 Ubuntu Server:加固与防护的实用步骤 – SysOSX: AI & Cloud
10. Ubuntu Server 系统监控工具:全面指南 – SysOSX: AI & Cloud
11. Ubuntu 服务器集中式日志记录:必读指南 – SysOSX: AI & Cloud
12. Ubuntu Server 审计与合规:最佳实践 – SysOSX: AI & Cloud
13. 搭建用于托管和 Web 应用的 Ubuntu Server:终极指南 – SysOSX: AI & Cloud
14. 在一台 Ubuntu Server 上托管多个网站:实用技巧 – SysOSX: AI & Cloud
了解文件系统类型
文件系统定义了数据在磁盘上的存储和访问方式。选择合适的文件系统对于性能、可靠性和兼容性至关重要。以下是 Ubuntu 服务器最常见的文件系统:
Ubuntu 的常见文件系统
- Ext4(第四代扩展文件系统)
- Ubuntu 服务器的默认文件系统。
- 具有日志功能、支持大文件,性能出色。
- 非常适合通用工作负载。
- 格式化命令:
sudo mkfs.ext4 /dev/sdX1
- XFS
- 专为大文件和高 I/O 工作负载设计的高性能日志文件系统。
- 常用于企业和云环境。
- 格式化命令:
sudo mkfs.xfs /dev/sdX1
- Btrfs(B 树文件系统)
- 提供快照支持、数据压缩和 RAID 功能的高级文件系统。
- 适用于复杂工作负载和需要频繁备份的环境。
- NTFS
- 主要用于与 Windows 环境兼容。
- 适用于双启动系统或 Linux 与 Windows 之间的共享磁盘。
- FAT32 和 exFAT
- 用于可移动驱动器和跨平台兼容的轻量级文件系统。
选择合适的文件系统
- Ext4:通用工作负载。
- XFS:企业或云环境中的高性能工作负载。
- Btrfs:快照和压缩等高级功能。
- NTFS/FAT32:跨平台兼容性。
在 Ubuntu Server 上对磁盘进行分区
分区将物理磁盘划分为逻辑部分,从而更好地组织和管理数据。这对于分离系统文件、备份和应用数据尤其有用。
在 Ubuntu Server 上对磁盘进行分区的步骤
- 识别磁盘:
使用lsblk命令列出所有可用磁盘及其分区:lsblk

- 创建分区:
使用fdisk或parted创建新分区。例如,使用fdisk:sudo fdisk /dev/sdX- 按
n创建新分区。 - 指定分区大小和类型。
- 按
w将更改写入磁盘。
- 按
- 验证分区:
再次运行lsblk以确认新分区已创建。
在 Ubuntu Server 上格式化数据磁盘
格式化通过创建文件系统来为分区的使用做好准备。
在 Ubuntu Server 上格式化数据磁盘的步骤
- 安装必要的工具:
确保你已安装mkfs实用程序(大多数发行版默认包含)。 - 格式化分区:
使用mkfs命令格式化分区。示例:sudo mkfs.ext4 /dev/sdX1 - 创建挂载点:
重要提示:在云环境中,避免使用/mnt作为挂载点。/mnt目录通常在云平台(如 Azure 或 AWS)中保留给临时磁盘使用,可能会在重启或系统更新期间被清除。相反,请使用自定义目录,例如/data或/storage。例如:
sudo mkdir /data
- 挂载分区:
将格式化后的分区挂载到新创建的目录:
sudo mount /dev/sdX1 /data
- 持久化挂载:
为确保分区在启动时自动挂载,请将其添加到/etc/fstab文件:
echo '/dev/sdX1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
持久化挂载:在云环境中使用 UUID
为确保分区在启动时自动挂载,将其添加到/etc/fstab文件至关重要。然而,在云环境中,建议使用UUID(通用唯一标识符)来挂载磁盘,而不是直接引用设备名称(例如/dev/sdX1)。设备名称可能会在系统重启后发生变化,特别是在虚拟化或云环境中,这可能导致挂载失败。使用 UUID 可确保一致且可靠的挂载。
使用 UUID 持久化挂载的步骤
- 查找分区的 UUID:
使用blkid命令获取分区的 UUID:
sudo blkid
- 示例输出:
/dev/sdX1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
- 编辑
/etc/fstab文件:
在/etc/fstab文件中使用 UUID 而不是设备名称添加一个条目。
示例:echo 'UUID=123e4567-e89b-12d3-a456-426614174000 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab - 验证配置:
通过卸载分区并使用mount -a命令重新挂载来测试配置:
sudo umount /data
sudo mount -a
- 重启并确认:
重启系统,以确保磁盘在启动期间正确挂载:sudo reboot
为什么要在云环境中使用 UUID?
- 一致性:像
/dev/sdX这样的设备名称可能会在重启后发生变化,这是由于云平台中的动态设备枚举所致。 - 可靠性:UUID 对每个分区都是唯一的,并且保持不变,从而确保可靠的挂载。
- 最佳实践:AWS、Azure 和 Google Cloud 等云提供商建议在生产环境中使用 UUID 或标签来挂载磁盘。
云和虚拟化场景:磁盘扩展与初始化
场景 1:操作系统磁盘扩展
在 AWS、Azure 或 Google Cloud 等云平台上,可以从物理层扩展操作系统磁盘。许多平台会自动检测并扩展操作系统磁盘。但是,可能需要手动干预来调整文件系统的大小,以利用新增空间。
在 Ubuntu Server 上扩展操作系统磁盘的步骤:
- 检查磁盘空间:
验证扩展后的磁盘空间:lsblk:lsblk - 调整文件系统大小:
使用resize2fs用于 Ext4 文件系统:sudo resize2fs /dev/sdX1
场景 2:数据磁盘初始化,请参阅上一节
监控和优化磁盘使用情况
监控磁盘使用情况
- 检查磁盘空间使用情况:
使用df命令显示磁盘空间使用情况:df -h - 分析目录使用情况:
使用du命令检查特定目录的大小:du -sh /var/log - 高级监控:
安装ncdu以进行交互式磁盘使用情况分析:
sudo apt install ncdu
ncdu /

优化磁盘使用情况
- 删除临时文件:
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
- 查找占用磁盘空间的大文件
find命令查找大文件:
sudo find / -type f -size +100M
参考资料
在下一篇文章中,我们将深入探讨数据库服务器的搭建 (在 Ubuntu 服务器上)。你将学到如何:
- 安装并配置MySQL或MariaDB以供你的应用程序使用。
- 保护你的数据库服务器,以保障敏感数据的安全。
- 针对生产环境优化数据库性能。
无论你是在云端还是本地部署数据库,本指南都将提供可行的见解,帮助你有效管理数据库基础设施。
千万不要错过——敬请关注!
5 thoughts on “15. Managing Storage and Disks on Ubuntu Server: Simple Guide”