🔧 ESXi OpenWrt EXT4 意外断电文件损坏/文件系统只读/无法保存配置/断电只读解决方案
💡 问题描述: 在 ESXi 虚拟机上运行的 OpenWrt 系统,采用 EXT4 文件系统时,可能因为意外断电(如宿主机 ESXi 非正常关机),导致 OpenWrt 的系统分区文件系统损坏,表现为系统变为只读 (Read-Only),无法保存任何配置更改,重启后配置丢失等问题。
核心解决方案是使用
e2fsck工具来检查和修复 EXT4 文件系统。
步骤一:确定实际的系统盘挂载点(根分区)
首先,您需要准确确定 OpenWrt 系统实际使用的根分区是哪一个设备。
-
登录 OpenWrt SSH 或通过 Web 界面进入终端。
-
查看磁盘和挂载点信息。 您可以使用
df -h命令来初步观察挂载信息:root@ImmortalWrt:~# df -hFilesystem Size Used Available Use% Mounted on/dev/root 3.9G 171.0M 3.7G 4% /tmpfs 1.9G 6.8M 1.9G 0% /tmp/dev/sda1 31.9M 8.3M 23.6M 26% /boot# ... 其他分区(如您的数据盘 /mnt/sdb1 等)⚠️ 注意: 像您的情况所示,
/dev/root实际上是系统的根目录/挂载点,它指向的才是系统的主分区。在某些 OpenWrt 固件(如您使用的 ImmortalWrt)中,/dev/root可能是一个逻辑名称或指向实际的/dev/sda2等分区。 -
通过 Web 界面确认系统分区。 进入 “系统” -> “挂载点” 界面,找到类型为
ext4且用于系统根目录的分区,查看它的 设备 路径。🖥️ 示例情况: > 尽管
df -h显示的是/dev/root,但您在 Web 界面或其他高级信息中查看到,实际的系统盘(根目录/所在的分区)是/dev/sda2。

请务必确认您需要修复的设备是您的 根分区 所对应的设备,例如
/dev/sda2或/dev/sda3等。 不要修复错误的分区,特别是数据盘!
步骤二:卸载并修复文件系统
在对文件系统进行修复之前,必须先将其卸载,但由于您要修复的是根文件系统 /,您无法直接在运行时卸载它。
解决方案:
您需要通过 强制检查 处于运行状态的根文件系统,或者使用 e2fsck 工具的特定参数。最简单和最安全的方法通常是:
-
执行文件系统检查和修复命令。
使用
e2fsck命令,配合参数-y(自动对所有提问回答 Yes),并指定您在步骤一中确认的设备路径。-
如果您确认系统盘是
/dev/sda2:e2fsck -y /dev/sda2 -
如果系统提示无法对已挂载的设备操作,请尝试强制修复:
e2fsck -f -y /dev/sda2-f:强制检查。-y:对所有问题假设为 Yes,自动修复。- 注意: 修复过程中屏幕会输出大量信息,等待命令执行完毕,直到返回提示符。
-
步骤三:重启 OpenWrt 系统
文件系统修复完成后,执行重启命令使更改生效。
reboot部分信息可能已经过时