标签:# Immich

从 57P03 死循环到 0.42 秒极速自愈:外置盘环境下 Immich 容器启动故障、VirtioFS 刷盘瓶颈与损坏页无损抢救记

作为个人私有云相册的核心中枢,Immich 承载了我近百 GB 的珍贵历史照片与视频元数据。为了保障宿主机内置硬盘的空间充裕,我一直将 Immich 的全量媒体库与 PostgreSQL 数据库目录持久化在外置高速固态硬盘(/Volumes/X1/immich)上,并通过 macOS 平台下轻量高效的 OrbStack 虚拟机环境进行容器化驱动。

然而,在近期的日常维护与版本平滑演进中,这套外置存储架构却接连遭遇了两场惊心动魄的险情:先是在例行执行版本有保护升级(v3.2.2 至 v3.3.3)的全量冷备时,PostgreSQL 抛出了致命的数据页校验和损坏错误(page verification failed);紧接着在宿主机休眠唤醒与重启后,immich-server 容器突发陷入了无休止的 Restarting (1) 崩溃循环,Web 前端彻底瘫痪。在这篇文章中,我将完整复盘这两起事故的底层技术根因,深入拆解 VirtioFS 跨层挂载下的文件同步陷阱、PostgreSQL 崩溃恢复机制与事务级坏块无损手术实操。