AWS服务器 磁盘空间升级到100G后,怎么使其生效?

news2025/4/15 20:08:49

在AWS(Amazon Web Services)上扩展EBS(Elastic Block Store)卷的大小后,服务器操作系统并不会自动识别新增的空间。要使操作系统识别并使用新增的磁盘空间,您需要进行一些额外的步骤。以下是详细的指导和说明:


确认EBS卷已成功扩展

在继续之前,请确保EBS卷的大小已成功扩展:

  1. 登录AWS管理控制台
    • 打开 AWS管理控制台 并使用您的凭证登录。

  2. 导航到EC2仪表板
    • 在控制台中,选择 “服务” > “EC2”

  3. 检查卷大小
    • 在左侧导航栏中,选择 “存储” > “卷”
    • 找到您扩展的EBS卷,确认其 “大小” 已更新为您期望的值(例如100G)。

    注意:如果卷大小未更新,请确保扩展操作已完成,并检查是否有任何错误消息。


** 扩展分区以使用新增的空间**

EBS卷的大小扩展后,操作系统中的分区和文件系统仍需进行相应的调整才能使用新增的空间。以下是针对不同操作系统的具体步骤:

对于Linux系统

步骤1:检查当前磁盘和分区信息

使用 lsblk 命令查看磁盘和分区的当前状态:

lsblk

示例输出:

(base) root@ip-172-123-8-134:/# lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0          7:0    0 73.9M  1 loop /snap/core22/1802
loop1          7:1    0 55.4M  1 loop /snap/core18/2846
loop2          7:2    0 55.4M  1 loop /snap/core18/2855
loop3          7:3    0 26.3M  1 loop /snap/amazon-ssm-agent/9881
loop4          7:4    0 10.7M  1 loop /snap/canonical-livepatch/286
loop6          7:6    0 44.4M  1 loop /snap/snapd/23545
loop7          7:7    0 73.9M  1 loop /snap/core22/1748
loop8          7:8    0 10.1M  1 loop /snap/canonical-livepatch/282
loop9          7:9    0 44.4M  1 loop /snap/snapd/23771
loop10         7:10   0 74.2M  1 loop 
loop11         7:11   0 25.7M  1 loop /snap/amazon-ssm-agent/9565
nvme0n1      259:0    0  100G  0 disk 
├─nvme0n1p1  259:1    0   49G  0 part /
├─nvme0n1p14 259:2    0    4M  0 part 
├─nvme0n1p15 259:3    0  106M  0 part /boot/efi
└─nvme0n1p16 259:4    0  913M  0 part /boot

在这个例子中,nvme0n1 是磁盘,大小已扩展到100G,但分区 nvme0n1p1 仍为49G。
这意味着虽然物理磁盘空间已经扩展,但操作系统尚未识别并利用新增的空间。要解决这个问题,您需要扩展分区并调整文件系统以使用新增的空间。

以下是详细的步骤指导:


1. 确认当前磁盘和分区情况

lsblk 输出中可以看到:
磁盘nvme0n1,总大小为 100G
分区
nvme0n1p1:大小为 49G,挂载在根目录 /
• 其他分区(如 /boot/boot/efi)未使用新增空间。

这表明根分区 (nvme0n1p1) 需要扩展以利用磁盘上的剩余空间。


2. 安装必要的工具

在大多数基于 Debian/Ubuntu 的系统中,您可能需要安装 cloud-guest-utils 包,它包含 growpart 工具,用于扩展分区。

sudo apt-get update
sudo apt-get install cloud-guest-utils -y

对于基于 RHEL/CentOS 的系统,可以使用以下命令安装相关工具:

sudo yum install cloud-utils-growpart -y

3. 扩展分区

使用 growpart 工具扩展根分区 (nvme0n1p1) 以使用磁盘上的所有可用空间。

sudo growpart /dev/nvme0n1 1

解释
/dev/nvme0n1 是您的磁盘设备。
1 是分区的编号(对应 nvme0n1p1)。

注意:在执行此操作前,确保没有其他重要进程在运行,以避免数据损坏。


4. 扩展文件系统

扩展分区后,您需要调整文件系统以使用新增的空间。这取决于您使用的文件系统类型(常见的有 ext4XFS)。

对于 ext4 文件系统

如果您的根分区使用的是 ext4 文件系统,可以使用 resize2fs 命令:

sudo resize2fs /dev/nvme0n1p1

对于 XFS 文件系统

如果您的根分区使用的是 XFS 文件系统,可以使用 xfs_growfs 命令:

sudo xfs_growfs /

注意:确保使用正确的挂载点(通常是 /)。


5. 验证扩展结果

完成上述步骤后,您可以通过以下命令验证分区和文件系统是否已成功扩展:

df -h /

您应该看到根文件系统的可用空间已经增加,接近或达到 100G

另外,您也可以使用 lsblk 再次确认:

lsblk

预期结果示例:

NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1      259:0    0   100G  0 disk 
├─nvme0n1p1  259:1    0   100G  0 part /
├─nvme0n1p14 259:2    0     4M  0 part 
├─nvme0n1p15 259:3    0   106M  0 part /boot/efi
└─nvme0n1p16 259:4    0   913M  0 part /boot

注意 nvme0n1p1 的大小已扩展到 100G


6. 处理其他分区(可选)

从您的 lsblk 输出来看,除了根分区外,还有以下分区:

/boot (nvme0n1p16):大小为 913M
/boot/efi (nvme0n1p15):大小为 106M

如果这些分区也需要扩展,可以按照类似的步骤操作:

  1. 扩展分区(如果需要):

    sudo growpart /dev/nvme0n1 15  # 对于 /boot/efi
    sudo growpart /dev/nvme0n1 16  # 对于 /boot
    
  2. 扩展文件系统
    • 对于 /boot(通常是 ext4):

    sudo resize2fs /dev/nvme0n1p16
    

    • 对于 /boot/efi(通常是 vfat):
    vfat 文件系统不支持在线扩展,您可能需要卸载分区后使用 parted 或其他工具调整大小,然后重新创建文件系统。注意:这可能会影响引导过程,建议在操作前备份重要数据并确保有恢复计划。

建议:如果 /boot/boot/efi 分区当前大小满足需求,可以暂时不扩展这些分区。


7. 是否需要重启服务或实例

在大多数情况下,扩展分区和文件系统后 无需重启 实例。但是,如果遇到以下情况,建议重启以确保所有更改生效:

• 系统未能立即识别新增的空间。
• 某些服务依赖于磁盘空间,且未正确刷新。

重启实例的命令:

sudo reboot

8. 常见问题排查

1. 分区未扩展

原因growpart 未成功执行或分区表未更新。
解决方法
• 确认 growpart 命令已正确执行,没有报错。
• 使用 parted 查看分区表:
bash sudo parted /dev/nvme0n1 print
• 确保分区已扩展到预期的大小。

2. 文件系统未扩展

原因:文件系统未正确调整大小。
解决方法
• 确认使用了正确的文件系统调整命令(resize2fsxfs_growfs)。
• 检查文件系统是否有错误:
bash sudo e2fsck -f /dev/nvme0n1p1 # 对于 ext4
修复后再尝试扩展。

3. 系统无法识别新增空间

原因:可能是由于缓存或挂载问题。
解决方法
• 重新挂载根分区:
bash sudo umount / sudo mount /dev/nvme0n1p1 /
注意:此操作需要谨慎,建议在单用户模式下执行,或确保有完整的备份。

4. 磁盘空间仍然显示不足

原因:可能还有其他分区或挂载点占用了空间,或者存在未清理的临时文件。
解决方法
• 检查整体磁盘使用情况:
bash df -h
• 清理不必要的文件,如日志文件、缓存等。


9. 预防措施和最佳实践

  1. 定期监控磁盘使用情况
    • 使用监控工具(如 CloudWatch 在 AWS 上)定期检查磁盘使用情况,提前预警和处理空间不足的问题。

  2. 自动化扩展流程
    • 编写脚本或使用配置管理工具(如 AnsibleChef)自动化磁盘扩展和文件系统调整的流程。

  3. 备份数据
    • 在进行任何磁盘操作之前,确保已创建EBS卷的快照或其他备份,以防止数据丢失。

  4. 合理规划资源
    • 根据应用需求合理分配磁盘空间,避免过度分配或分配不足。


总结

您当前的磁盘 (nvme0n1) 已成功扩展到 100G,但根分区 (nvme0n1p1) 仍只使用了 49G。要使操作系统识别并使用新增的空间,请按照以下步骤操作:

  1. 安装必要的工具(如 growpart)。
  2. 扩展分区:使用 growpart /dev/nvme0n1 1
  3. 扩展文件系统
    • 对于 ext4resize2fs /dev/nvme0n1p1
    • 对于 XFSxfs_growfs /
  4. 验证扩展结果:使用 df -hlsblk 确认。
  5. 必要时重启实例

通过以上步骤,您应该能够成功扩展根分区并利用新增的磁盘空间。如果在操作过程中遇到任何问题,建议参考相关文档或联系系统管理员以获取进一步帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flutter 打包mac程序 dmg教程

✅ 前提条件 ✅ 你已经在 macOS 上安装了 Android Studio Flutter SDK。 ✅ Flutter 支持 macOS 构建。 运行下面命令确认是否支持: Plain Text bash 复制编辑 flutter doctor ---## 🧱 第一步:启用 macOS 支持如果是新项目,…

【数据结构与算法】——堆(补充)

前言 上一篇文章讲解了堆的概念和堆排序,本文是对堆的内容补充 主要包括:堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到,利用堆的思想完成的堆排序的代码如下(包…

atypica.AI:用「语言模型」为「主观世界」建模

人们不是在处理概率,而是在处理故事。 —— 丹尼尔卡尼曼 People dont choose between things, they choose between descriptions of things. —— Daniel Kahneman 商业研究是一门理解人类决策的学问。人并不只是根据纯粹理性做决策,而是受到叙事、情…

LLaMA-Factory双卡4090微调DeepSeek-R1-Distill-Qwen-14B医学领域

unsloth单卡4090微调DeepSeek-R1-Distill-Qwen-14B医学领域后,跑通一下多卡微调。 1,准备2卡RTX 4090 2,准备数据集 医学领域 pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com huggingface-cli download --resum…

【WPF】自定义控件:ShellEditControl-同列单元格编辑支持文本框、下拉框和弹窗

需要实现表格同一列,单元格可以使用文本框直接输入编辑、下拉框选择和弹窗,文本框只能输入数字,弹窗中的数据是若干位的二进制值。 本文提供了两种实现单元格编辑状态下,不同编辑控件的方法: 1、DataTrigger控制控件的…

Seq2Seq - GRU补充讲解

nn.GRU 是 PyTorch 中实现门控循环单元(Gated Recurrent Unit, GRU)的模块。GRU 是一种循环神经网络(RNN)的变体,用于处理序列数据,能够更好地捕捉长距离依赖关系。 ⭐重点掌握输入输出部分输入张量&#…

从零开始学Python游戏编程19-游戏循环模式1

在《从零开始学Python游戏编程18-函数3》中提到,可以对游戏代码进行重构,把某些代码写入函数中,主程序再调用这些函数,这样使得代码程序更容易理解和维护。游戏循环模式实际上也是把代码写入到若干个函数中,通过循环的…

Java获取终端设备信息工具类

在很多场景中需要获取到终端设备的一些硬件信息等,获取的字段如下: 返回参数 参数含义备注systemName系统名称remoteIp公网iplocalIp本地ip取IPV4macmac地址去掉地址中的"-“或”:"进行记录cpuSerialcpu序列号hardSerial硬盘序列号drive盘符…

【Linux网络与网络编程】08.传输层协议 UDP

传输层协议负责将数据从发送端传输到接收端。 一、再谈端口号 端口号标识了一个主机上进行通信的不同的应用程序。在 TCP/IP 协议中,用 "源IP","源端口号","目的 IP","目的端口号"&…

没音响没耳机,把台式电脑声音播放到手机上

第一步,电脑端下载安装e2eSoft VSC虚拟声卡(安装完成后关闭,不要点击和设置) 第二步,电脑端下载安装(SoundWire Server)(安装完成后不要关闭,保持默认配置) 第…

XDocument和XmlDocument的区别及用法

因为这几天用到了不熟悉的xml统计数据,啃了网上的资料解决了问题,故总结下xml知识。 1.什么是XML?2.XDocument和XmlDocument的区别3.XDocument示例1示例2:示例3: 4.XmlDocument5.LINQ to XML6.XML序列化(Serialize)与反序列化(De…

Blender安装基础使用教程

本博客记录安装Blender和基础使用,可以按如下操作来绘制标靶场景、道路标识牌等。 目录 1.安装Blender 2.创建面板资源 步骤 1: 设置 Blender 场景 步骤 2: 创建一个平面 步骤 3: 将 PDF 转换为图像 步骤 4-方法1: 添加材质并贴图 步骤4-方法2:创…

【Git】从零开始使用git --- git 的基本使用

哪怕是野火焚烧,哪怕是冰霜覆盖, 依然是志向不改,依然是信念不衰。 --- 《悟空传》--- 从零开始使用git 了解 Gitgit创建本地仓库初步理解git结构版本回退 了解 Git 开发场景中,文档可能会经历若干版本的迭代。假如我们不进行…

Android 中支持旧版 API 的方法(API 30)

Android 中最新依赖库的版本支持 API 31 及以上版本,若要支持 API30,则对应的依赖库的版本就需要使用旧版本。 可通过修改模块级 build.gradle 文件来进行适配。 1、android 标签的 targetSdk 和 compileSdk 版本号 根据实际目标设备的 android 版本来…

[特殊字符] Hyperlane:Rust 高性能 HTTP 服务器库,开启 Web 服务新纪元!

🚀 Hyperlane:Rust 高性能 HTTP 服务器库,开启 Web 服务新纪元! 🌟 什么是 Hyperlane? Hyperlane 是一个基于 Rust 语言开发的轻量级、高性能 HTTP 服务器库,专为简化网络服务开发而设计。它支…

RIP V2路由协议配置实验CISCO

1.RIP V2简介: RIP V2(Routing Information Protocol Version 2)是 RIP 路由协议的第二版,属于距离矢量路由协议,主要用于中小型网络环境。相较于 RIP V1,RIP V2 在功能和性能上进行了多项改进&#xff0c…

《LNMP架构+Nextcloud私有云超维部署:量子级安全与跨域穿透实战》

项目实战-使用LNMP搭建私有云存储 准备工作 恢复快照,关闭安全软件 [rootserver ~]# setenforce 0[rootserver ~]# systemctl stop firewalld搭建LNMP环境 [rootserver ~]# yum install nginx mariadb-server php* -y# 并开启nginx服务并设置开机自启 [r…

3DMAX笔记-UV知识点和烘焙步骤

1. 在展UV时,如何点击模型,就能选中所有这个模型的uv 2. 分多张UV时,不同的UV的可以设置为不同的颜色,然后可以通过颜色进行筛选。 3. 烘焙步骤 摆放完UV后,要另存为一份文件,留作备份 将模型部件全部分成…

【新人系列】Golang 入门(十三):结构体 - 下

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12898955.html 📣 专栏定位:为 0 基础刚入门 Golang 的小伙伴提供详细的讲解,也欢迎大佬们…

Spring Boot 自定义商标(Logo)的完整示例及配置说明( banner.txt 文件和配置文件属性信息)

Spring Boot 自定义商标(Logo)的完整示例及配置说明 1. Spring Boot 商标(Banner)功能概述 Spring Boot 在启动时会显示一个 ASCII 艺术的商标 LOGO(默认为 Spring 的标志)。开发者可通过以下方式自定义&a…