麒麟系统开机反复重启进不去系统,说明内核加载成功但用户空间启动失败,常见于fstab配置错误(如uuid写错、挂载点路径不存在)或initramfs缺失必要驱动模块,需通过emergency模式检查fstab并重建initramfs。

麒麟系统开机反复重启进不去系统,说明系统在完成内核加载后、用户空间服务启动过程中触发了不可恢复的错误,导致systemd主动触发重启或内核panic后自动复位——这不是引导失败,而是运行时崩溃。
确认是否进入过系统底层环境
开机时紧盯屏幕:若看到“Started Crash recovery kernel arming”字样后立即重启,说明已越过GRUB和内核解压阶段,进入initramfs→根挂载→systemd初始化流程;若全程黑屏/无任何文字输出,则问题更靠前,需先查GRUB或内核镜像完整性。
按 Ctrl + Alt + F2 尝试切换TTY。能进入字符终端,证明系统至少完成了根文件系统挂载和基础服务启动,问题出在显示管理器或桌面会话层;若按键无响应或切换后仍黑屏,说明崩溃发生在更早阶段(如fstab挂载失败、LVM未激活、加密卷密钥缺失)。
用emergency模式手动挂载并检查fstab
开机长按 Shift 进入 GRUB → 选择 advanced options for kylin → 按 e 编辑启动项 → 在 linux 行末尾空格添加 systemd.unit=emergency.target → Ctrl+X 启动。
输入 root 密码登录(密码不显示,输完直接回车)。此时系统未自动挂载任何分区,所有操作必须手动执行。
运行 lsblk -f 查看磁盘分区结构及UUID,重点确认 /boot、/ 和 /boot/efi(如为UEFI)对应设备名;运行 cat /etc/fstab 检查每一行的UUID是否与 blkid 输出完全一致——【一行UUID写错、一个空格多打、一个挂载点路径不存在,都会导致systemd在mount.target卡死并触发自动重启】。
若发现可疑行(如 /home/ap/nas 或 /tmp),用 nano /etc/fstab 将其前面加 # 注释掉;修改后执行 systemctl daemon-reload,再输入 exit 退出emergency,系统将尝试按正常流程继续启动。
检查initramfs是否包含必要驱动模块
方法一:从当前可运行环境验证
若已能进入emergency或TTY,运行 uname -r 获取当前内核版本号,例如 4.19.90-23.40.02101.ky10.aarch64;再执行 lsinitramfs /boot/initrd.img-$(uname -r) | grep -E "(nvme|raid|crypt|usb)"。
若输出为空,或关键硬件类型(如你的硬盘是NVMe但没搜到nvme)缺失,说明initramfs未打包对应驱动——升级内核或安装显卡/CUDA后常出现此问题。
方法二:重建initramfs镜像
执行 sudo update-initramfs -u -k all 强制为所有已安装内核更新initrd;若提示命令不存在,改用 sudo dracut -f(部分麒麟V10 SPx版本使用dracut而非update-initramfs)。
完成后执行 sync 确保写入磁盘,再重启测试。
定位崩溃源头:查看上一次启动日志
第一步:挂载原根分区(若当前在LiveCD或救援环境)
用 lsblk 找出系统根分区(如 /dev/nvme0n1p2),执行:
mkdir /mnt/sysroot
mount /dev/nvme0n1p2 /mnt/sysroot
mount /dev/nvme0n1p1 /mnt/sysroot/boot(若/boot独立分区)
第二步:chroot进入原系统
执行 chroot /mnt/sysroot,此时命令行提示符变为 #,代表已进入原系统环境。
第三步:提取崩溃前最后日志
运行 journalctl -b -1 -p 3 --no-pager 查看上一次启动中所有优先级为error(3)及以上的日志条目;重点关注以 “Failed to start”、“Dependency failed”、“Unable to mount”、“Invalid argument” 开头的行——这些就是触发重启的直接原因。
若提示 “No journal files were found.”,说明日志未持久化,需检查 /var/log/journal 目录是否存在且可写;若该目录为空,说明崩溃发生在journal服务启动之前,应优先排查fstab和initramfs。











