Oamc

ESXi 常见故障处理 · 修改记录

这是 virtual/ESXi 常见故障处理.md 的改动记录。后台每次保存都会留一份快照, 这里显示的是快照之间的差异,不会混入其他文章的改动。

还没有后台修改记录。

Git 提交记录

下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。

#1 2026-10-25 +0 −0 快照: 重命名前的完整状态(含未整理的重复文件) ccb3350

这次没有正文改动。

#2 2026-10-20 +329 −0 docs: 同步速查表和分类文章 c3e3513
 @@ -0,0 +1,329 @@
+---
+tags: [ESXi, VMware, 虚拟化, 故障处理]
+order: 20
+---
+
+# ESXi 常见故障处理
+
+## 场景
+
+ESXi 主机上出故障了,虚拟机起不来、连不上、卡死、磁盘满了、虚机莫名重启。
+这篇按「现象 → 定位 → 处理」整理,都是实际会遇到的。
+
+## 前置条件
+
+- 能登上 ESXi 的网页控制台(管理网络出问题时用 DCUI)
+- 有 SSH 权限:网页 → 主机 → 管理 → 安全 → 访问策略 → 启用 SSH
+- 记下这台主机的 IP 和管理口(vmk0)
+- 重要操作前先看一遍「虚拟机 → 操作 → 备份」有没有在做
+
+## 配置
+
+### 1. 虚拟机无法开机
+
+先看事件,ESXi 的报错基本都在里面:
+
+```text
+虚拟机 → 选中 → 监控 → 事件
+```
+
+常见几种:
+
+```text
+"msg.vpx.vm.powerOn.timeout"      启动超时,宿主机负载高或磁盘慢
+"msg.vmx.powerOn.failed"          配置文件或磁盘有问题
+"msg.disk.filter.pd.sesparse.outOfSpace"  空间不足
+"msg.hostPort.vmmi网卡不存在"      网卡被删了
+```
+
+按顺序查:
+
+```bash
+# 1. 宿主机有没有进入维护模式或重启了
+esxcli system stats uptime get
+
+# 2. 存储是否可访问(最常见原因)
+esxcli storage filesystem list
+esxcli storage core path list
+esxcli storage vmfs extent list
+
+# 3. 磁盘文件在不在
+ls -lh /vmfs/volumes/datastore1/虚拟机目录/
+
+# 4. CPU/内存有没有被占满
+esxcli system stats cpu load get
+esxcli hardware memory get
+
+# 5. 虚拟机的 .vmx 有没有语法错误
+vi /vmfs/volumes/datastore1/虚拟机目录/虚拟机.vmx
+```
+
+`.vmx` 里常见的问题:
+
+```ini
+# 网卡类型在当前版本不存在(换过硬件版本)
+ethernet0.virtualDev = "vmxnet3"      ← 改成 vmxnet2 或 e1000e
+# 残留的网卡配置指向已删除的端口
+ethernet0.present = "TRUE"
+# 磁盘路径写错
+scsi0:0.fileName = "[datastore1] 目录/磁盘.vmdk"
+```
+
+改完 `.vmx` 后**必须重新注册**才生效:
+
+```text
+虚拟机 → 操作 → 取消注册
+然后 文件 → 打开或浏览数据存储 → 找到 .vmx → 登记为虚拟机
+```
+
+### 2. 虚拟机连不上 / 网卡不通
+
+```bash
+# 物理口链路是否 up
+esxcli network interface list
+
+# vmk0 管理网络配置
+esxcli network ip interface list
+esxcli network ip route list
+
+# 虚拟交换机和上行口
+esxcli network vswitch standard list
+esxcli network vswitch standard portgroup list
+
+# ARP 和邻居
+esxcli network arp table list
+
+# 防火墙(ESXi 默认拦很多)
+esxcli network firewall ruleset list
+```
+
+分层排查,按这个顺序排除:
+
+| 步骤 | 检查 | 正常结果 |
+| --- | --- | --- |
+| 1 | 物理口 up 吗 | `Link Status: up` |
+| 2 | vSwitch 有上行口吗 | 上行口数量对得上 |
+| 3 | 端口组 VLAN 对吗 | 和物理交换机配置一致 |
+| 4 | 虚机网卡连上端口组了吗 | `适配器 1` 勾了端口组 |
+| 5 | 虚机里看到 IP 吗 | 有 IP 才谈通不通 |
+| 6 | ESXi 防火墙挡了吗 | 临时关掉测试 |
+
+快速判断是不是 ESXi 防火墙:
+
+```text
+主机 → 管理 → 安全与配置 → 防火墙 → 关闭全部(临时)
+```
+
+关掉虚拟机能通就说明是防火墙挡的,接着在防火墙里放行具体端口,别长期全关。
+
+虚拟机里的虚拟网卡没连上端口组,是最容易漏的一步:
+
+```text
+虚拟机 → 硬件 → 虚拟网卡 → 勾上端口组(原来可能是「不连接」)
+```
+
+### 3. 宿主机紫屏 / 卡死
+
+ESXi 紫屏(Purple Screen)通常是硬件或驱动问题。
+
+```bash
+# 崩溃转储(重启后还在)
+ls -lh /var/core/
+/usr/lib/vmware/vmware-core-dump /var/core/vmware-core-*.dump | less
+```
+
+常见原因:
+
+| 现象 | 大概率原因 |
+| --- | --- |
+| 蓝屏 `PFN corruption` | 内存条坏了或双通道没插满 |
+| 紫屏 `NMI watchdog` | 固件或 CPU 稳定性 |
+| 紫屏 `LINT1` / `PCIE` | 插槽、PCIe 卡、供电 |
+| 紫屏 `I/O error` | 阵列卡、磁盘、RAID 卡固件 |
+| 紫屏 `TSL` / `e1000e` | 网卡驱动,换成 `e1000` 或更新网卡固件 |
+
+处理顺序:
+
+```bash
+# 1. 看硬件健康
+esxcli hardware cpu global get
+esxcli hardware memory get
+
+# 2. 阵列卡状态(LSI/Broadcom 用这个)
+/opt/lsi/MegaRAID/merlincli "/c0 show all" | grep -E "State|Firmware"
+# 或 storcli
+/opt/storcli/storcli64 /c0 show all
+
+# 3. 日志里有没有硬件报错
+grep -iE "hardware|error|fail" /var/run/log/hostd.log | tail -50
+

…… 改动较长,只显示前一部分