news 2026/4/21 17:39:34

手把手教你:ESXi扩容后,Linux LVM分区表『Device busy』报错怎么破?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你:ESXi扩容后,Linux LVM分区表『Device busy』报错怎么破?

手把手教你解决ESXi扩容后Linux LVM分区表『Device busy』报错

当你兴冲冲地在ESXi上给Linux虚拟机扩容磁盘,却在执行fdisk写入分区表时突然看到WARNING: Re-reading the partition table failed with error 16: Device or resource busy的红色警告,是不是瞬间头皮发麻?别慌,这个看似棘手的报错其实藏着Linux内核的一个小秘密。今天我们就来彻底拆解这个"设备忙"错误,不仅告诉你三种解决方案,还会帮你理解背后的原理,下次遇到类似问题就能举一反三。

1. 错误现象深度解析

那个让人心跳漏拍的报错信息通常长这样:

WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot...

这个警告的本质是内核的分区表缓存机制在作祟。当你在fdisk中修改分区表并执行w写入时,系统会尝试通过ioctl()系统调用通知内核重新读取分区表。但如果此时有任何进程正在使用这个磁盘(比如挂载了某个分区),内核就会拒绝立即更新缓存中的分区表信息,抛出EBUSY错误(错误码16)。

典型触发场景

  • 扩容/dev/sda时,其上的/dev/sda1正被挂载为根分区
  • LVM正在使用该磁盘的物理卷(PV)
  • 任何用户进程持有该磁盘的文件句柄

可以通过以下命令确认设备是否被占用:

# 查看磁盘挂载情况 lsblk | grep -A 10 "sda" # 检查哪些进程正在使用磁盘 lsof /dev/sda*

2. 三种解决方案对比

遇到这个报错时,你面前摆着三条路,每种方案各有优劣:

2.1 方案一:partprobe命令 - 优雅刷新

partprobeparted工具包中的瑞士军刀,专门用于通知内核重新读取分区表。它的工作原理是向内核发送BLKRRPARTioctl请求。

操作步骤

# 安装parted工具包(如果尚未安装) yum install parted -y # CentOS/RHEL apt-get install parted -y # Ubuntu/Debian # 执行分区表刷新 partprobe /dev/sda

优势

  • 无需重启系统
  • 对运行中的服务零影响
  • 支持指定单个设备刷新

局限

  • 某些老旧内核版本可能不支持
  • 对LVM物理卷效果有限

提示:执行后建议用lsblk确认新分区是否可见,如果仍然看不到,可能需要尝试其他方案。

2.2 方案二:kpartx命令 - LVM专家的选择

partprobe无效时,特别是处理LVM环境时,kpartx会成为救命稻草。它能动态创建设备映射,特别适合处理复杂的存储配置。

操作流程

# 安装kpartx(通常包含在multipath-tools中) yum install multipath-tools -y apt-get install multipath-tools -y # 删除旧映射(谨慎操作) dmsetup remove_all # 创建新分区映射 kpartx -av /dev/sda # 验证新分区 ls /dev/mapper/

适用场景

场景是否推荐
传统分区★★☆☆☆
LVM物理卷★★★★☆
多路径设备★★★★★

风险提示

  • 会临时影响依赖原设备映射的服务
  • 可能需要手动重建dm设备

2.3 方案三:简单粗暴的重启 - 终极武器

当其他方法都失效时,重启系统永远是最后的保障。这不是玩笑 - 在某些生产环境中,有计划的重启比冒险尝试各种命令更可靠。

重启的正确姿势

  1. 确保已保存所有工作
  2. 使用sync命令同步磁盘
  3. 执行rebootshutdown -r now

重启 vs 命令刷新的选择矩阵

考虑因素推荐方案
关键业务系统partprobe/kpartx
测试开发环境重启
远程无console访问优先命令方案
内核版本<3.10建议重启

3. 实战决策树:我该选哪种方案?

面对具体场景时,可以按照这个流程图决策:

  1. 首先尝试partprobe

    • 执行partprobe /dev/sda
    • 检查lsblk是否显示新分区
  2. 如果无效且使用LVM

    • 运行kpartx -av /dev/sda
    • 验证/dev/mapper/下设备节点
  3. 前两种方法失败时

    • 评估是否允许重启
    • 安排维护窗口执行重启
  4. 极端情况处理

    • 如果重启后仍无效,考虑:
      • 检查ESXi层面磁盘是否真扩容
      • 确认没有残留的dm设备(dmsetup ls

4. 扩容后的完整LVM操作指南

成功解决分区表问题后,还需要完成LVM扩容的全流程。以下是关键步骤的快速参考:

4.1 创建物理卷(PV)

pvcreate /dev/sda3 pvdisplay # 验证

4.2 扩展卷组(VG)

vgextend centos /dev/sda3 vgdisplay # 检查可用空间

4.3 扩展逻辑卷(LV)

# 查看当前LV情况 lvs # 扩展home逻辑卷(示例) lvextend -L +150G /dev/centos/home /dev/sda3 # 或用所有剩余空间 lvextend -l +100%FREE /dev/centos/home

4.4 文件系统扩容

对于XFS文件系统

xfs_growfs /dev/centos/home

对于ext4文件系统

resize2fs /dev/centos/home

最后用df -h确认空间已扩容成功。曾经有次我在凌晨3点处理这种问题,因为忘了执行xfs_growfs,盯着没变化的空间大小怀疑人生了半小时...

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 16:35:25

3分钟上手Snap Hutao:原神玩家的终极智能助手指南

3分钟上手Snap Hutao&#xff1a;原神玩家的终极智能助手指南 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 &#x1f9f0; / Multifunctional Open-Source Genshin Impact Toolkit &#x1f9f0; 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …

作者头像 李华
网站建设 2026/4/19 16:34:55

Java的switch表达式与yield语句在模式匹配中的控制流转换

Java的switch表达式与yield语句在模式匹配中的控制流转换 Java的switch表达式和yield语句是JDK 14及后续版本引入的重要特性&#xff0c;它们彻底改变了传统switch语句的局限性&#xff0c;为模式匹配和控制流转换提供了更灵活的方式。通过模式匹配&#xff0c;开发者可以更简…

作者头像 李华
网站建设 2026/4/19 16:31:24

OpenSSH版本升级后SSH免密登录失败:no mutual signature algorithm排查与解决

1. 问题现象与背景分析 最近在升级OpenSSH到8.8及以上版本后&#xff0c;很多运维同学都遇到了一个典型问题&#xff1a;原本正常使用的SSH免密登录突然失效&#xff0c;客户端会返回"no mutual signature algorithm"的错误提示。这个现象特别容易出现在从新版本客户…

作者头像 李华
网站建设 2026/4/19 16:31:24

SVG优化工程化实践:从工具链构建到性能调优的全流程解析

SVG优化工程化实践&#xff1a;从工具链构建到性能调优的全流程解析 【免费下载链接】svgomg Web GUI for SVGO 项目地址: https://gitcode.com/gh_mirrors/sv/svgomg 在现代Web开发中&#xff0c;SVG矢量图形的应用已从简单的图标展示扩展到复杂的可视化场景。然而&…

作者头像 李华
网站建设 2026/4/19 16:28:34

猫抓Cat-Catch:你的终极网页资源嗅探与下载解决方案

猫抓Cat-Catch&#xff1a;你的终极网页资源嗅探与下载解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页上的视频、音频…

作者头像 李华
网站建设 2026/4/19 16:24:53

Sunshine终极故障排除指南:8个常见场景的快速解决方案

Sunshine终极故障排除指南&#xff1a;8个常见场景的快速解决方案 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine作为自托管的游戏串流服务器&#xff0c;为用户提供了强…

作者头像 李华