# 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 | 根据现场紧急模式修复案例整理*

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐