Rocky Linux 虚拟机磁盘扩容后 lsblk 没变化的排查与处理


Rocky Linux 虚拟机磁盘扩容后 lsblk 没变化的排查与处理

在虚拟机中安装 Rocky Linux 后,经常会遇到这样一个场景:已经在 VMware、KVM、Proxmox、Hyper-V 或云平台控制台里把虚拟磁盘容量调大了,但进入系统执行 lsblk,看到的磁盘大小还是原来的容量。

这类问题通常不是文件系统扩容失败,而是更靠前的一步:Linux 系统还没有重新识别虚拟磁盘的新容量

本文整理一套 Rocky Linux / RHEL 系统中常用的排查和处理方法。

一、问题现象

例如,虚拟化平台里已经把磁盘从 50G 扩容到 100G,但系统里执行:

lsblk

仍然显示:

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   50G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   49G  0 part
  ├─rl-root 253:0    0   45G  0 lvm  /
  └─rl-swap 253:1    0    4G  0 lvm  [SWAP]

此时 lsblk 没看到新增空间,后续执行 growpartpvresizelvextend 也可能无法继续。

二、常见原因

虚拟磁盘扩容后,容量变化首先发生在虚拟化平台层面。

但 Rocky Linux 内核并不一定会立刻感知到这块虚拟磁盘的新容量。尤其是在一些 SCSI、VirtIO、NVMe 虚拟磁盘场景中,需要手动触发磁盘重新扫描,或者重启虚拟机后才能识别。

所以整个扩容流程应该分成两步:

  1. 让系统识别磁盘新容量。
  2. 扩展分区、LVM 和文件系统。

如果第一步没有完成,lsblk 自然不会有变化。

三、先确认当前磁盘结构

先查看当前磁盘、分区、文件系统和挂载点:

# 查看块设备、文件系统类型和挂载点,先确认根分区在哪块磁盘上
lsblk -f

也可以查看文件系统类型和容量:

# 查看已挂载文件系统的类型和使用情况
df -Th

常见磁盘名有:

  • /dev/sda:常见 SCSI/SATA 虚拟磁盘。
  • /dev/vda:常见 VirtIO 虚拟磁盘。
  • /dev/nvme0n1:常见 NVMe 虚拟磁盘。

后面的命令需要根据实际磁盘名替换。

四、重新扫描虚拟磁盘容量

1. SCSI / SATA 磁盘,例如 /dev/sda

如果你的磁盘是 /dev/sda,可以执行:

# 指定需要重新扫描的磁盘名,这里以 sda 为例
DISK=sda

# 通知内核重新读取该磁盘容量
echo 1 | sudo tee /sys/class/block/$DISK/device/rescan

# 再次查看磁盘容量是否变化
lsblk

如果不确定具体是哪一个 SCSI Host,也可以扫描所有 SCSI 控制器:

# 扫描所有 SCSI Host,适合 VMware、KVM SCSI 等虚拟磁盘场景
for host in /sys/class/scsi_host/host*; do
  echo "- - -" | sudo tee "$host/scan"
done

# 确认磁盘大小是否已经刷新
lsblk

2. VirtIO 磁盘,例如 /dev/vda

VirtIO 磁盘有时也可以通过 block 设备 rescan 刷新:

# 指定 VirtIO 磁盘名,这里以 vda 为例
DISK=vda

# 触发该块设备重新扫描
echo 1 | sudo tee /sys/class/block/$DISK/device/rescan

# 查看容量是否更新
lsblk

如果该路径不存在,或者执行后容量仍无变化,可以直接重启虚拟机。

3. NVMe 磁盘,例如 /dev/nvme0n1

如果磁盘是 NVMe 设备,可以尝试:

# 重新扫描 nvme0 控制器
echo 1 | sudo tee /sys/class/nvme/nvme0/rescan

# 查看 NVMe 磁盘容量是否变化
lsblk

如果虚拟机里有多个 NVMe 控制器,需要根据实际设备名调整,例如 nvme1

五、如果 lsblk 还是没变化

如果重新扫描后 lsblk 仍然没变化,建议按下面顺序检查:

  1. 确认虚拟化平台中扩容的是当前这台虚拟机。
  2. 确认扩容的是系统正在使用的那块磁盘,而不是新增或其他磁盘。
  3. 在虚拟化平台里确认扩容操作已经保存并生效。
  4. 重启 Rocky Linux 虚拟机后再次执行 lsblk

如果重启后仍然没有变化,基本可以判断问题在虚拟化平台或云平台侧,系统内扩容命令暂时无法解决。

六、识别新容量后继续扩容

lsblk 已经能看到磁盘变大后,才进入分区和文件系统扩容步骤。

下面以 Rocky Linux 默认 LVM 场景为例,假设:

  • 系统磁盘是 /dev/sda
  • 需要扩展的分区是 /dev/sda3
  • 根逻辑卷是 /dev/mapper/rl-root

实际环境中请以 lsblk -f 输出为准。

1. 扩展分区

# 安装 growpart 所在工具包,如果系统中还没有 growpart
sudo dnf install -y cloud-utils-growpart

# 将 /dev/sda 的第 3 个分区扩展到磁盘末尾
sudo growpart /dev/sda 3

# 查看分区大小是否已经更新
lsblk

2. 扩展 LVM PV

# 让 LVM 识别 /dev/sda3 分区新增的空间
sudo pvresize /dev/sda3

# 查看卷组是否出现 Free 空间
sudo vgs

3. 扩展逻辑卷和文件系统

# 将卷组中的所有空闲空间扩展给根逻辑卷,并自动扩展文件系统
sudo lvextend -r -l +100%FREE /dev/mapper/rl-root

# 确认根目录容量是否已经变大
df -Th /

lvextend -r 会自动根据文件系统类型调用合适的扩容工具。Rocky Linux 默认根文件系统常见为 XFS,这种方式比较省心。

七、非 LVM 场景

如果系统没有使用 LVM,而是普通分区直接挂载,例如 /dev/sda2 挂载到 /,流程会有所不同。

先扩展分区:

# 将 /dev/sda 的第 2 个分区扩展到磁盘末尾
sudo growpart /dev/sda 2

如果是 XFS 文件系统:

# XFS 需要对挂载点执行扩容,这里根目录挂载点是 /
sudo xfs_growfs /

如果是 ext4 文件系统:

# ext4 通常对块设备执行 resize2fs
sudo resize2fs /dev/sda2

执行完成后检查:

# 确认文件系统容量是否已经扩大
df -Th

八、推荐排查命令汇总

遇到 lsblk 没变化时,可以先收集下面几条信息:

# 查看块设备、文件系统和挂载点
lsblk -f

# 查看文件系统类型和容量
df -Th

# 查看分区表信息
sudo fdisk -l

# 查看 LVM 物理卷
sudo pvs

# 查看 LVM 卷组
sudo vgs

# 查看 LVM 逻辑卷
sudo lvs

这些输出基本可以判断当前系统是普通分区、LVM、XFS 还是 ext4,也能判断下一步应该执行哪类扩容命令。

九、总结

Rocky Linux 虚拟机磁盘扩容后 lsblk 没变化,优先不要急着扩分区或扩文件系统。

正确思路是:

  1. 先确认虚拟化平台已经真正扩容磁盘。
  2. 在系统内重新扫描磁盘设备。
  3. lsblk 先看到新磁盘容量。
  4. 再扩分区、LVM 和文件系统。

一句话概括:lsblk 都没看到新容量时,先处理磁盘重新扫描;lsblk 看到新容量后,再处理系统内扩容。

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:PVE备份到115网盘
下一篇:微前端本地调试神器对比:Requestly、Redirector、Tampermonkey 该怎么选?
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

Rocky Linux 虚拟磁盘扩容 lsblk 变化排查处理
Rocky Linux 磁盘扩容
CentOS 磁盘扩容
虚拟中飞牛FNOS硬盘扩容
LInux添加磁盘扩容
虚拟安装OpenWrt参考
虚拟CPU内存分配建议
PVE复制虚拟硬盘到另一个虚拟
Docker 部署文章发布时间变成 UTC 排查修复
PVE虚拟CPU类型先择
PVE虚拟删除local-lvm分区
虚拟安装IKuai参考
PVE 虚拟使用AX210蓝牙直通
飞牛 fnOS 远程挂载恢复残留目录无法删除:immutable 属性排查记录
Rocky Linux10 安装Docker环境
Rocky Nginx添加端口
【软件】磁盘映像管理 WinImage
《步步入门》 .NET 6 部署到Linux
WizTree —— Windows 下最快磁盘空间分析工具之一
TinyMCE 代码高亮 Prism.js 对 C# language-csharp 处理

热门标签
.NET Core .NET Reactor ag-grid AI发布 api安全 ASP.NET Core C#DLL加密 C#播放声音 C#代码混淆 C#代码加密 ChromeDriver Codex DateTime DBeaver devexpress devTool DLL混淆 edge.js EF EFCore Electron element-ui el-form el-table excel FastReport FileStream FolderBrowerDialog FolderSelectDialog form提交 git gridcontrol gridview input javascript json字符串 JS转换对象JSON jwt JWT授权 linq log Math MCP mitmproxy MVC MySQL Navicat netstat nginx node_modules NSwag Nuget Nuget镜像 number PowerShell pyinstaller python pythoncom python爬虫 python抓包 pywin32 redis Requests-html RestSharp Selenium sql SQL Server Swagger to-cms Visual Studio VSCode vue VueRouter vue路由 VUE页面通讯 Webpack Windows Windows服务 winform wmi xlrd yaml YESCMS YESWEB开发框架 白象 表单提交 播放声音 打开URL 代码混淆 弹窗提醒 端口占用 对象转换 分布式 公共字典 机器码 进程排查 静态资源 开发指南 路由参数 密钥 配置教程 配置文件 权限 人工智能 任务 任务调度 日期间隔 日志 日志记录 省市区 授权验证 数据库 四舍五入 文案 文件读取 文件夹选择 文件目录选择 问题排查 行政区域数据 页面通讯 中间件 CSharp 事务锁 工单系统 并发控制 重复提交 CMS Markdig Markdown markdown-it marked 技术选型 VS Code 开发工具 源代码管理 版本控制 Docker PostgreSQL 时区 部署排查 CMS架构 EF Core 主题系统 二次开发 插件系统 容器 运维命令 镜像清理 Linux NAS 远程挂载 飞牛 fnOS S/4HANA SAP GUI SAP HANA SAP R/3 SAP入门 SAP版本 ERP SAP SAP MM 库存管理 物料管理 采购管理 入门教程 SAP S/4HANA SPRO 企业结构 采购组织 MM01 物料主数据 物料类型 BP分组 业务伙伴 供应商主数据 ME41 RFQ 库存物料 采购流程 ME51 消耗性物料 科目分配 采购申请 AC03 ML81N 外部服务 服务主数据 Business Partner SAP培训 ME51N MM模块 Lean Services MM-SRV 外部服务采购 PIR 供应来源 采购主数据 采购信息记录 ME31K 框架协议 计划协议 采购合同 ME01 供应来源确定 货源清单 MEQ1 供应源确定 配额安排 配额评分 MD04 MD21 MRP 计划文件 需求计划 批量程序 MD01N MD02 MRP Live MD05 MM 物料计划 优化采购 供应源 采购订单 ME2A 供应商确认 采购监控 Flexible Workflow 凭证释放 采购审批 释放策略 实地盘点 物料凭证 货物移动 MIGO 收货 移动类型 已撤回 供应商退货 货物发出 STO 库存转储 转移过账 生产订单 预留 GR/IR MIRO 供应商发票 物流发票校验 OMR2 税码 FI PP SD 实操教程 MRBR OMR6 发票差异 交货成本 后续借记 MI01 实物盘点 盘点差异 公司代码 工厂 组织结构 OMS2 主数据定制 自动科目确定 BP角色 CVI 伙伴确定 编号范围 凭证类型 字段选择 FBN1 OMBT OMC2 会计凭证 OMJJ BOM 委外加工 项目类别L MRKO 供应商寄售 特殊库存K MRKON PIPE Pipeline 特殊库存P ERS MRIS 发票计划 周期性结算 里程碑付款 变更追踪 版本管理 采购凭证 SFTP WebDAV 网盘 飞牛fnOS AMPL HERS MPN 中文教程 库存确定 可用性检查 缺件检查 Output Management 消息确定 输出确定 分割评估 库存计价 评估类别 评估类型 PB00 RM0000 条件技术 采购定价 MM-FI集成 OBYC 库存估价 文本类型 文本采用 EFB EVO MSV SU3 用户参数 发票校验 合同参照 履约保留款 特别总账 预付款 Fiori Launchpad SAP Fiori 应用导航 用户体验 LSMW LTMC Migration Cockpit 数据迁移 BRFplus OPD Output Control My Inbox 审批流程 灵活工作流 SAP PP 外部加工 SAP QM 检验批 质量信息记录 采购收货 SAP PM 维护BOM 维护订单 SAP SD SAP Service 端到端流程
联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码