修复偶发性ENV文件损坏

重启设备后发现LED等持续闪烁,无法正常进入系统,接入HDMI读取开机输出,发现显示如下警告。

ALERT! /dev/mmcblk0p1 does not exist

实际上是由于ENV.txt文件损坏导致无法正常识别根分区挂载,文件位置在/boot分区下。

此时需要外接系统对原有系统进行修复。

对于故障设备Orangepi-5-plus,已有烧录完成可使用的SD卡可用。

插入SD卡后启动系统,正常登入后首先使用fsck命令修复文件系统。

sudo fsck /dev/mmvblk1p1
sudo fsck /dev/mmvblk1p2

如报错则会在目标盘根目录下生成形如FSCK0000.REC文件,内为修复成功内容。

正常Orangepi-5-plus使用的ENV文件为/boot/orangepiEnv.txt,官方预设内容应为如下。

verbosity=1
bootlogo=false
extraargs=cma=128M
overlay_prefix=rk3588
fdtfile=rockchip/rk3588-orangepi-5-plus.dtb
rootdev=UUID=0480f91f-e41f-4abe-81ff-daa6c145af9b
rootfstype=ext4
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

其中rootdev=UUID=参数丢失导致系统无法正常找到根目录驱动器。

注意,切勿直接修改/boot下文件,可能会导致未知兼容性问题,已确认直接修改boot.cmd和boot.src会导致系统无法进入initramfs阶段。

注,可通过lsblk确认目前磁盘驱动器状态,blkid查看UUID对应磁盘。其中根分区指/挂载点。

以下附上一些类似情况问答。

ALERT! /dev/mmcblk0p1 does not exist – Rockchip – Armbian Community Forums↗

boot – Gave up waiting for root device, ubuntu–vg-root doesnt exist – Ask Ubuntu↗