rk3588上电无法正常显示桌面问题解决记录

# Orange Pi 紧急模式与硬盘挂载失败修复指南
> 适用场景:Orange Pi 5 Plus(`orangepi5plus`)等嵌入式 Linux 设备开机进入 **Emergency Mode**,根因多为 `/etc/fstab` 中配置的**外接硬盘/分区挂载失败**,连带导致根文件系统异常或无法正常启动。
---
## 一、故障现象
1. 开机后屏幕提示进入紧急模式(Emergency Mode),类似:
```text
You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or "exit"
to boot into default mode.
```
2. 登录后提示符为 `root@orangepi5plus:~#`,系统未进入正常多用户模式。
3. 若直接对根分区执行 `fsck`,可能报错:
```text
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/mmcblk1p2 is mounted.
e2fsck: Cannot continue, aborting.
```
**原因**:`/dev/mmcblk1p2` 是当前已挂载的根分区(`/`),在读写挂载状态下不能执行 `fsck`。
---
## 二、问题根因(总结)
| 层级 | 说明 |
|------|------|
| **直接原因** | `/etc/fstab` 中某块硬盘/分区的挂载项配置错误,或磁盘文件系统损坏,开机 `mount -a` 失败 |
| **连锁反应** | 挂载失败触发 systemd 进入紧急模式;若根分区也有异常,还需 `fsck` 修复 |
| **常见触发** | 外接硬盘未接、盘符变化(`/dev/sda1` → `/dev/sdb1`)、断电、文件系统 ext4 错误、`nofail` 未配置等 |
**本次案例结论**:最终问题是 **fstab 里硬盘挂载失败**。临时注释掉相关挂载项后可进系统,修好硬盘/分区后再恢复挂载。
---
## 三、修复流程(推荐顺序)
### 阶段 A:紧急模式下先让系统能启动
在 `root@orangepi5plus:~#` 下操作。
#### 1. 查看启动与挂载日志
```bash
journalctl -xb | tail -80
mount | grep -E 'mmcblk|sd|nvme'
cat /etc/fstab
```
重点确认:哪一行 fstab 挂载失败、对应设备节点是否存在(`ls -l /dev/sd*`)。
#### 2. 临时注释 fstab 中有问题的硬盘挂载项
```bash
vi /etc/fstab
```
将**外接硬盘**相关行首加 `#` 注释,例如:
```fstab
# 修复前(示例)
UUID=xxxx-xxxx /mnt/data ext4 defaults 0 2
# 修复后(临时)
# UUID=xxxx-xxxx /mnt/data ext4 defaults 0 2
```
> **注意**:只注释**外接硬盘/数据盘**条目,不要随意改动根分区(`/`)和 `/boot` 的挂载项,除非明确知道在做什么。
保存后尝试进入默认模式:
```bash
systemctl default
# 或
exit
```
若仍无法启动,执行 `reboot` 再观察。
---
### 阶段 B:根分区需要 fsck 时(mmcblk1p2)
当确认根分区 `/dev/mmcblk1p2` 文件系统有误,且必须在紧急模式下修复时:
```bash
# 1. 将根分区重新挂载为只读
mount -o remount,ro /
# 2. 运行文件系统检查修复(-y 自动确认)
fsck -y /dev/mmcblk1p2
# 3. 修复完成后重启
reboot
```
**说明**:
- 必须先 `remount,ro`,否则 `fsck` 会提示 `is mounted` 并中止。
- `mmcblk1p2` 为本机 eMMC/SD 卡根分区编号,不同板卡可能是 `mmcblk0p2`,以 `mount` 输出为准。
---
### 阶段 C:进入正常系统后修复硬盘
系统能登录后(普通用户或 root):
#### 1. 确认硬盘是否被系统识别
```bash
lsblk -f
sudo blkid
```
#### 2. 对问题分区单独 fsck(未挂载时)
```bash
# 示例:外接硬盘第一个分区
sudo umount /dev/sda1 2>/dev/null
sudo fsck -y /dev/sda1
```
#### 3. 手动测试挂载
```bash
sudo mkdir -p /mnt/data
sudo mount /dev/sda1 /mnt/data
df -h /mnt/data
```
挂载成功、读写正常后,再恢复 fstab。
#### 4. 恢复 /etc/fstab 并验证
```bash
sudo vi /etc/fstab
# 去掉之前添加的 # 注释
# 仅测试 fstab 语法与挂载,不重启
sudo mount -a
# 确认无报错
df -h
```
---
## 四、预防建议(写入 fstab 时)
对外接硬盘建议增加 `nofail`,避免盘未连接时整机进紧急模式:
```fstab
UUID=your-uuid /mnt/data ext4 defaults,nofail,x-systemd.device-timeout=5 0 2
```
| 选项 | 作用 |
|------|------|
| `nofail` | 挂载失败不阻断启动 |
| `x-systemd.device-timeout=5` | 设备未就绪时快速超时,不长时间卡住 |
| `UUID=` | 比 `/dev/sda1` 稳定,减少盘符变化问题 |
---
## 五、命令速查
```bash
# 紧急模式
journalctl -xb
systemctl default
reboot
# 根分区只读 + fsck
mount -o remount,ro /
fsck -y /dev/mmcblk1p2
reboot
# 系统内修盘
lsblk -f
sudo fsck -y /dev/sdXn
sudo mount -a
```
---
## 六、本次案例时间线(便于对照)
1. Orange Pi 5 Plus 开机进入 **Emergency Mode**。
2. 执行 `fsck /dev/mmcblk1p2` → 失败,提示分区已挂载。
3. 按正确步骤:`mount -o remount,ro /` → `fsck -y /dev/mmcblk1p2` → `reboot`。
4. 仍无法正常使用时,在紧急模式 `vi /etc/fstab`,**注释掉硬盘挂载行**,成功进入系统。
5. 在系统内对外接硬盘执行 `fsck`、手动挂载验证。
6. 恢复 fstab 挂载项,`mount -a` 无报错后固定使用。
---
## 七、相关参考
- 设备示例:`orangepi5plus`(Orange Pi 5 Plus)
- 根分区设备:`/dev/mmcblk1p2`(以现场 `lsblk` 为准)
- 配置文件:`/etc/fstab`
---
*文档版本:2026-06-09 | 根据现场紧急模式修复案例整理*
更多推荐



所有评论(0)