Skip to content

deepin 25 首次启动向导循环 + 登录循环(输入密码后闪回登录界面) #13842

Description

@huiquanyun

环境信息

  • 操作系统 / 发行版:deepin 25(基于 OSTree 不可变根 + overlay 架构)
  • 安装方式:通过 OpenNebula 7.2.0 (KVM) 虚拟机部署,使用官方 deepin 25 桌面版 ISO
  • 安装程序版本:deepin-installer-reborn 7.x
  • 虚拟机配置:160 核 CPU、8G+ 内存、系统盘为 qcow2 虚拟磁盘
  • 文件系统布局:EFI (p1) / /boot (p2, ostree grub2) / swap (p3) / / (p4, Roota ext4 rw) / /persistent (p5, overlay/ostree/home)

问题现象

安装完成后首次启动,系统出现两类循环故障:

1. 首次启动向导循环(First-boot wizard loop)

系统每次重启/登录后都会重新弹出“欢迎安装 deepin 系统”的首启向导(白色配置面板),无法进入正常桌面。即使手动完成向导设置,下次启动仍会再次出现。

2. 登录循环(Login loop)

在向导被临时压制后,到达 LightDM 登录界面。输入正确的用户名和密码后,画面闪烁一下,又退回登录界面,无法进入桌面。

复现步骤

  1. 使用官方 deepin 25 桌面版 ISO 在 KVM 虚拟机中完成安装(含创建首个用户)。
  2. 安装完成后重启系统。
  3. 观察:每次启动都会重新出现“欢迎安装 deepin 系统”首启向导,无法稳定进入桌面。
  4. 当通过修改 lightdm 配置 / 删除 autostart / 写入完成标记等方式压制向导后,到达登录界面。
  5. 输入任意已创建用户的密码 → 画面闪一下 → 回到登录界面(登录循环)。

根因分析

向导循环根因

deepin 25 采用 OSTree 不可变根 + overlay 架构,运行时修改分布在两个 overlay 层:

  • /persistent/overlay/data/layer-.../etc-upper(覆盖 /etc)
  • /persistent/overlay/data/a4e438.../usr-upper(覆盖 /usr,包含运行时 /usr 与部分 /etc 生效路径)

首启向导由以下机制触发,且只改单一 overlay 层无法根治:

  • /etc/lightdm/lightdm.conf 中的 deepin-installer 钩子(greeter 启动后拉起向导)
  • 各用户 ~/.config/autostart/dde-first-run.desktop(会话级自启动)
  • /usr/libexec/dde-first-run 与 /usr/share/deepin-installer/tools/deepin-installer-core 的引导逻辑
  • 完成状态标记文件缺失:/var/lib/deepin-installer-first-boot、/var/lib/deepin-installer-first-run

早期只清理了 /etc overlay 层的 lightdm 钩子,但 /usr overlay 层与用户级 autostart 仍会重新拉起向导,导致循环。

登录循环根因

各用户家目录(/home/huiquanyun、/home/deepin、/home/test)的所有权被错误设置为 root:root(应为各自 uid,如 1000/1001/1002),仅有一个用户(test1, uid 1003)正确。DDE 会话因无法写入自身家目录而立即崩溃,退回 LightDM,形成登录循环。

临时修复方法(已验证可用)

通过离线挂载系统盘(qemu-nbd)并执行以下修复:

  1. 清理向导触发点:

    • 将 /etc/lightdm/lightdm.conf 精简为仅 greeter-session=lightdm-deepin-greeter
    • 删除所有用户 ~/.config/autostart/dde-first-run.desktop
    • 将 /usr/libexec/dde-first-run 与 /usr/share/deepin-installer/tools/deepin-installer-core 替换为空操作:
      #!/bin/sh
      exit 0
    • 创建完成标记:touch /var/lib/deepin-installer-first-boot /var/lib/deepin-installer-first-run
  2. 修复家目录所有权:

    • chown -R 1000:1000 /home/huiquanyun
    • chown -R 1001:1001 /home/deepin
    • chown -R 1002:1002 /home/test
    • chown -R 1003:1003 /home/test1

修复后系统可稳定启动至桌面并正常登录。

问题归类

本问题属于 deepin 25 安装程序 / 首启流程的 BUG,而非用户操作错误,也非 OpenNebula/KVM 平台问题(相同平台下其他发行版 VM 正常)。

建议

  1. 安装程序应在安装完成写盘阶段,正确设置首启完成标记(deepin-installer-first-boot / deepin-first-run),避免每次启动重复触发向导。
  2. 安装程序应保证创建用户时家目录所有权正确归属于该用户(非 root),避免登录循环。
  3. 在 OSTree + overlay 架构下,首启向导的触发/完成判定逻辑需要在 /etc 与 /usr 两个 overlay 层保持一致,当前存在层间状态不一致导致清理不彻底。
  4. 建议增加安装后校验步骤(家目录所有权校验、首启标记校验),在首次重启时自动修复异常状态。

补充信息

  • 相关组件:deepin-installer-reborn(deepin-installer-core / deepin-installer-first-boot)、dde-first-run、LightDM deepin greeter
  • 已排除:非显示管理器配置错误、非用户密码错误、非磁盘空间不足。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions