極速雲online 極速雲online 立即諮詢

阿里雲帳號開戶 阿里雲ECS系統盤擴容不丟數據教程

阿里雲國際 / 2026-08-13 14:16:32

第一章:先把風險想清楚,擴容才不慌

系統盤擴容這件事看似簡單:把雲端盤加大,然後在主機裡把分區和檔案系統也擴到對應容量。但實際工作中,很多人不是卡在操作步驟,而是卡在「不確定自己現在是什麼磁盘結構」或「以為擴了就會生效」。最終就會出現兩類問題:要麼容量沒有真正增加,要麼擴容操作踩到了分區邊界或掛載狀態,導致服務中斷甚至數據風險。

你要做的是一套可重現、可驗證的流程。核心原則只有三句話:第一,先確認系統盤對應的裝置與分區;第二,雲端擴容後一定要做本機層面的擴分區/擴檔案系統;第三,每一步都能用指令和視覺化數據驗證結果。只要你把這三件事做扎實,系統盤擴容就不太會丟數據。

下面的教程以「Linux ECS 系統盤擴容」為主,涵蓋常見的 ext4/xfs 實現方式。若你是 Windows,流程也能參考思路,但命令與工具不同。本文重點是讓你能在自己的環境中找到對應盤與分區,然後安全地完成擴容並驗證。

第二章:擴容前的準備清單(不跳步,才真安全)

2.1 確認系統盤型別與當前分區結構

先登入 ECS,準備三個目的:找到系統盤在 Linux 裡對應的裝置檔名、查看分區表類型(GPT 或 MBR)、以及確認根目錄「/」所在的分區是什麼。不同分區方案會影響你是需要擴分區還是只擴檔案系統。

建議你依序執行以下指令(不同發行版可能略有差異):

1)查看塊裝置與掛載點:

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL

重點看:哪個裝置或分區掛在 /,以及其檔案系統類型是 ext4、xfs 還是其他。

2)查看分區表類型與分區:

sudo fdisk -l /dev/sdX  # 或 /dev/vdX,X 依你的盤號調整

sudo parted -l  # 如果你有 parted 工具

sudo lsblk -f

如果你使用的是 NVMe(常見於新一代實例),裝置可能是 /dev/nvme0n1 之類;若是 virtio,可能是 /dev/vda。不要盲猜,請以 lsblk 的輸出為準。

2.2 下載並更新必要工具(確保能執行擴容命令)

擴文件系統會用到特定工具,例如 ext4 常用 resize2fs,xfs 常用 xfs_growfs。有些精簡鏡像未安裝相應工具,提前確認能避免操作到一半才發現缺依賴。

你可以用下面方式快速檢查:

which resize2fs || true
which xfs_growfs || true
which growpart || true

通常發行版的包管理器可以解決缺失。例如 Ubuntu/Debian:apt;CentOS/RHEL:yumdnf。若你環境對網路有限制,請在維護窗口內處理。

阿里雲帳號開戶 2.3 建立快照或備份(用來安心回滚)

「不丟數據」不是一句口號。你要把風險降到可控:在阿里雲控制台對系統盤建立快照,或至少做一個備份策略。快照是否立刻可用取決於你的資源類型,但有快照在,心態和處置手段會完全不同。

備份思路也要清晰:擴容主要是擴大容量,不會理論上覆蓋數據;但現場風險可能來自操作錯盤、分區邏輯錯誤、或文件系統狀態異常。快照能讓你把「緊急回滚」變成可執行的路徑。

第三章:雲端擴容系統盤(先動雲端,再動本機)

3.1 在控制台調整系統盤容量

進入阿里雲 ECS 的控制台,找到該實例,進到「磁盘」或「系统盘」管理頁面。把系統盤容量從 A 調整到 B(B 大於 A)。

注意幾點:

  • 選擇的容量單位正確(GB/TB);
  • 確保你擴的是「系统盘」而不是「数据盘」;
  • 擴容是否支持在線(依實例與磁盘型別而定)。如果你不確定,寧可在低峰期停機或按雲端提示執行。

阿里雲帳號開戶 完成後等待幾分鐘,讓雲端設備狀態同步完成。

3.2 盤擴容後在 ECS 裡確認設備大小已更新

回到 ECS,先觀察:

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

你應該能看到系統盤裝置(整塊磁盘,例如 /dev/vda/dev/nvme0n1)的 SIZE 已增加。注意:此時分區(例如 /dev/vda1)可能仍舊維持原大小,這是正常的。

如果整塊盤 SIZE 沒變,通常需要:

  • 檢查雲端是不是同步完成;
  • 必要時重啟實例或觸發重新掃描(有的情況下要等內核識別新大小);
  • 確認你看的是否真是系統盤裝置。

第四章:本機擴分區(讓分區“吃到”新容量)

雲端擴容後,下一步是擴分區。你可能遇到兩種常見結構:

  • 根分區已經是最後一個分區,並且后面沒有其它分區;擴分區通常比較直接。
  • 阿里雲帳號開戶 根分區不是最後一個分區,或中間還有其它分區/邏輯分區;這時擴容會受限制,可能需要更複雜的重排方案。

本教程優先處理「根分區位於分区表末尾」這個最常見情況,因為大多數用戶擴容都是為了增加根目錄容量而非大規模重排。

4.1 使用 growpart(推薦的溫和方式)

growpart 是很多環境中用來擴分區的工具,思路是:重新讀取分区并把指定分区扩到可用空间。你可以先確認是否有:

which growpart || true

如果沒有,可能要安裝包(視發行版而定)。安裝好後你可以用下面的形式:

sudo growpart /dev/vda 1   # 假設根分區是 vda1
# 或
sudo growpart /dev/nvme0n1p 2  # NVMe 的分区號形式可能不同

你需要把 /dev/vda 與分區號替換成你的真實值。替換方法:

  • lsblk 找出掛載在 / 的分區,記下其裝置名(例如 /dev/vda1
  • 分区号通常是裝置名末尾的數字(例如 vda1 的號是 1;nvme0n1p2 的號是 2)

4.2 兼容性:如果你沒有 growpart,就用分区工具手動擴

沒有 growpart 時也不是沒路,只是操作更要小心。你可以使用 fdisk(MBR 或 GPT 下也可用,視工具能力)或 parted

以 parted 的思路為例(注意:不同盤表、不同工具語法略有差異,務必以你的分区實際狀況為準):

sudo parted /dev/vda print
sudo parted /dev/vda
# 在 parted 交互模式中:
# resizepart 1 100%  # 把第 1 分区擴到末尾
# print
# quit

手動擴分区最怕的不是命令錯,而是「輸錯裝置」。所以在進行任何重寫分区表前,請先確認:

  • 你操作的是系統盤而不是資料盤;
  • 分区號對應到的是掛載 / 的那個分區;
  • 確認分区表类型(GPT/MBR)與工具兼容。

第五章:擴文件系統(真正讓磁盤容量可用)

擴分区完成後,分区大小已經變大,但「文件系统」還可能停留在舊容量。真正可用空間由文件系统定義,所以這一步不能省。

下一步取決於你的根文件系统類型。你可以用:

lsblk -f | grep -E ' /$|MOUNTPOINTS'

或直接看 lsblk -o FSTYPE,MOUNTPOINTS 的輸出。

5.1 如果是 ext4:使用 resize2fs

ext4 擴容通常可以在線進行,但最好在你的服務允許的情況下做。檢查分区與文件系統:

df -hT /
mount | grep ' on / '

查看根分区裝置(例如 /dev/vda1),然後執行:

sudo resize2fs /dev/vda1

如果你不確定分区號,請再次用 lsblk 確認。

完成後驗证:

df -hT /
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS

你應該看到 Size 增大且可用空間也同步增加。

5.2 如果是 xfs:用 xfs_growfs(通常掛載后即可)

xfs 的擴容命令常用的是:

sudo xfs_growfs /

重要的是:xfs_growfs 一般以「掛載點」為參數,而不是分区裝置名。執行後再驗證:

df -hT /

如果容量沒有變,通常是分区沒有成功擴到可用末尾,或系統沒有重新識別分区大小。

5.3 常見坑:目標分区不是根分区、或文件系统掛載在 LVM 上

現場最常見的坑其實是「你以為你在擴系統盘,但根目录其实在 LVM 逻辑卷里」。這種情況下,流程會多一層:你需要先扩物理卷(PV)、再扩卷组(VG)、再扩逻辑卷(LV),最後扩文件系统。

你可以快速確認是否使用 LVM:

lsblk

如果你看到 lvm 相關層级(例如 vg0rootubuntu-vg),就不要直接去 resize2fs 一個底层分区。你应先看:

sudo pvs
sudo vgs
sudo lvs

然后根据输出决定扩容路径。為了文章篇幅與可讀性,這裡不展开所有 LVM 變體命令,但思路一樣:云端扩的是“物理盘”,本机需要扩到“实际承载 / 的逻辑卷”,才能让文件系统生效。

第六章:驗證與清理——擴容做完就要“證明它成功了”

擴容完成後,不要只看控制台的容量數。你要做三次驗证:分区层、文件系统层、业务层。

6.1 分区层验证

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

确认:

  • 系统盘装置大小已增加;
  • 挂载 / 对应的分区大小已增加;
  • 若有 LVM,则 LV 容量也已变化。

6.2 文件系统层验证

df -hT /
df -i /

查看:

  • df -h 的 Size/Avail 是否上升;
  • 如果你很依賴 inode(例如大量小文件),也可确认 df -i 的变化或至少没有异常。

6.3 业务层验证

最后做最现实的验证:运行你关键服务,检查磁盘写入、缓存、日志是否正常。可以在扩容后观察一段时间,例如:

  • 应用日志是否出现 “No space left on device” 类似错误;
  • 数据库是否正常扩展表空间(若有);
  • 系统日志(/var/log)是否停止爆盘。

第七章:常見報錯處理(遇到就按這裡查)

7.1 执行 resize2fs 报错:找不到设备或设备不是 ext4

常见原因:

  • 你填错了分区设备名(例如把 /dev/vda1 填成 /dev/vda2);
  • 根目录挂载到不同分区;
  • 文件系统并不是 ext4,而你却用 resize2fs。

处理办法:

lsblk -f
# 重新确认 / 对应分区与 FSTYPE

然后再执行正确命令。

7.2 xfs_growfs 报错:指定挂载点错误

xfs_growfs 常用 xfs_growfs /。如果你把参数换成了分区设备名,可能导致报错。你应使用挂载点。

可用:

mount | grep ' on / '
# 找到 / 的挂载点,然后确认是不是确实是 xfs

7.3 扩分区后 df 仍没变化

这通常意味着文件系统扩容没做,或扩分区其实没成功。顺序上你应该是:

  • 云端扩容 → 本机扩分区 → 扩文件系统 → df 验证

排查路径:

  • 先看 lsblk 的分区 SIZE 是否变化;
  • 再看 df -h 是否更新;
  • 最后确认文件系统扩容命令是否执行成功、返回码是否为 0。

7.4 确认后发现根分区不是最后一个分区怎么办

如果根分区后面还有其它分区,很多自动扩容工具会因为没有连续可用空间而失败。此时你要么:

  • 让后续分区留出空间(需要重排风险更高);
  • 或者把应用迁移到数据盘,缩减根分区压力;
  • 阿里雲帳號開戶 或采用创建新系统盘并迁移(最稳但成本更高)。

为了避免踩坑,本教程不建议在根分区不是末尾时硬做“手动 resize”。优先评估是否可以规划迁移方案或重新创建更符合扩容需求的分区结构。

阿里雲帳號開戶 第八章:在线扩容与停机扩容怎么选

实践里很多人希望“尽量不影响业务”,但也要承认:涉及分区表和文件系统扩展时,在线与停机的选择会影响风险和复杂度。

阿里雲帳號開戶 一般建议:

  • 若你使用的分区与文件系统工具支持在线扩容,且你确认根分区位于末尾、文件系统一致性正常,可以尝试在线流程。
  • 若你遇到工具不支持、或者你是复杂场景(LVM 多层、根分区不是末尾),宁可在维护窗口停机,减少不确定性。

停机并不等于麻烦,很多扩容失败都来自“不确定性”,而不是来自容量本身。你的目标是可控,而不是把风险压缩到极限。

第九章:一套可以照抄的“标准作业流程”(SOP)

下面这套流程把前面讲过的内容串成你可以直接照做的顺序。你只需要把设备名和分区号替换成你机器的值。

9.1 SOP:ext4 根分区(最常见)

  1. 建立快照/备份(控制台操作)。
  2. 在 ECS 上记录当前结构:lsblk -fdf -hT /
  3. 控制台扩容系统盘到目标容量。
  4. 等待同步完成,执行 lsblk 确认整盘容量已变。
  5. 扩分区(示例):sudo growpart /dev/vda 1(替换你的盘与分区号)。
  6. 扩文件系统:sudo resize2fs /dev/vda1(替换你的根分区)。
  7. 验证:df -hT /,确认容量与可用空间变化。
  8. 观察业务日志,确认无磁盘空间报错。

9.2 SOP:xfs 根分区

  1. 快照/备份。
  2. 记录结构:lsblk -fdf -hT /
  3. 控制台扩容系统盘。
  4. 阿里雲帳號開戶 确认整盘容量已变(lsblk)。
  5. 阿里雲帳號開戶 扩分区(growpart 或 parted)。
  6. 扩文件系统:sudo xfs_growfs /
  7. 验证:df -hT /

第十章:写给排障者——为什么“扩容不丟數據”你做得到

很多人担心扩容会丢数据,本质原因是他们把“风险”理解成了“容量变化”。但现实中,丢数据通常来自两类动作:一是写错了设备或分区表;二是对文件系统做了不匹配的操作(比如 ext4 用错工具、或跳过一致性检查)。

阿里雲帳號開戶 只要你遵循本文的三条原则:确认装置与分区、按顺序扩分区再扩文件系统、每一步用 lsblkdf 验证结果,你的操作就变成可控工程,而不是赌运气。工程最怕的是“我感觉应该行”。你要做的是让系统用数字告诉你“已经行了”。

如果你愿意再进一步,把扩容前后的关键输出保存到工单或笔记里:比如 lsblk -ffdisk -l(或 parted print)、df -hT /。以后再碰到同类型实例,你可以复用你的判断标准,而不是重复学习成本。

結語:扩容不是结尾,而是容量管理的开始

系统盘扩容解决的是短期空间不足,但空间管理才是长期课题。你可以在扩容完成后做一些习惯性动作:定期清理无用日志、评估应用的磁盘增长曲线、为日志与缓存规划独立目录或挂载数据盘。这样下一次扩容可能会晚一点,或者只需要小幅度调整。

当你把这次扩容跑通,你会发现最值钱的不是那一段命令,而是你建立了一套“能验证、能回滚、能复现”的流程。以后你再遇到系统盘不够用,就不会只剩焦虑,更多的是按步骤解决问题。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系