树莓派4B 因修改 /etc/fstab
导致系统无法正常加载,提示 emergency mode
解决方法
一、故障原因
因为需要给新的树莓派接入外部移动硬盘,百度后看到树莓派实验室的教程文章,其中里面包括了对/etc/fstab
进行修改,如下所示。
#创建挂载点
sudo mkdir /mnt/myusbdrive
#编辑fstab让移动硬盘开机自动挂载
sudo nano /etc/fstab
#在最后一行添加如下内容
/dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0
#保存重启,即可生效
先不提这种修改方式正不正确,但或多或少是有问题的,小白最好是用mount进行手动加载,避免直接修改/etc/fstab
,不然就只能折腾了。
重启树莓派之后直接暴毙,提示如下:
you are in emergency mode. after logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or ^d to try again to boot into default mode.
cannot open access to console, the root account is locked.
see sulogin(8) man page for more details.
press enter to continue.
然后插上硬盘之后键入Enter,系统尝试使用默认配置加载,但失败了,又因为root账号被锁定,所以无法进行操作,最终形成死循环。
这时候需要通过三步进入想办法获知故障原因。
- 拔出TF卡,将其插入其他电脑。
- 读取boot分区,打开
cmdline.txt
,并在最后空格并追加single
(其他教程中是追加init=/bin/sh
,但我用了之后连系统都不读取了) - 想办法看到TF卡系统加载过程后,发现
/dev/sda1
根本无法正常加载,最终导致文件系统直接崩掉了。
二、解决方法
必须要物理解除TF卡,并使用其他PC进行读取。
Linux或Mac:
- 取下TF卡,插入另外一台电脑。
- 因为都是基于Linux内核,所以可以直接打开
/etc/fstab
。 - 将添加的内容全部移除,重启。
Windows:
- 插入电脑后,无法识别ext4硬盘内容。
- 安装
Paragon ExtFS for Windows
进行读取,安装教程 - 避免软件分享被删,这里再分享一下,同时非常感谢教程的作者。(百度网盘 提取码: b47b)
- 安装过程也一同附上,希望得到帮助的朋友给原作者点赞。
- 安装完
ext4
读取神器后,按照Linux和Mac的过程,打开/etc/fstab
将新增的内容删除。 - 插回树莓派被重启,正常进入系统。
三、温馨提醒
网上文章不一定全部可靠,因为这个问题,导致我浪费了足足三个小时去收集资料修复,希望大家擦亮双眼,在尝试的前先了解清楚操作会导致什么样的结果。