这篇文章上次修改于 1128 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
我经常使用ssh连接到树莓派,并使用 apt update && apt upgrade
进行系统更新。但由于使用无线网络连接,网络并不是很可靠偶尔会出现断连的情况,重连后看不到系统更新的进度,这时候突然断开电源可能会造成系统损坏导致无法开机。
正常使用的时候建议先使用命令 sudo poweroff
关闭系统,等绿灯不再闪烁后再断开电源;
或者在GPIO接口安装物理按键,配合脚本关机。
下面讲讲我是如何修复这个问题的,下面的命令使用根权限执行
将闪存卡挂载到 Linux 系统
使用读卡器读取树莓派的闪存卡
fdisk -l
查看系统分区,找到闪存卡里面有一个 boot 分区和 ext4 系统
mkdir /media/sdb2/
mount /dev/sdb2 /media/sdb2/
mount /dev/sdb1 /media/sdb2/boot/
rootfs=/media/sdb2/
mount -t proc proc ${rootfs}/proc
mount --rbind /sys ${rootfs}/sys
mount --make-rslave ${rootfs}/sys
mount --rbind /dev ${rootfs}/dev
mount --make-rslave ${rootfs}/dev
新建文件夹,并挂载分区
修复文件系统
推荐使用,特别是 boot 分区,可跳过
fsck.fat /media/sdb2/boot/
fsck.ext4 /dev/sdb2/
使用 qemu-arm-static 进入 chroot
树莓派使用的 ARM 平台,Linux PC 使用的是 x86 平台,不能直接 chroot 进入树莓派系统。
apt install qemu-arm-static
cp -a /usr/bin/qemu-aarch64-static /media/sdb2/usr/bin/
chroot /media/sdb2/
进入 chroot ,树莓派 Raspbian 系统
apt update
dpkg --configure -a
现在便能使用树莓派的系统命令,尝试修复系统。
exit
umount /dev/sdb2
umount /dev/sdb1
退出 chroot ,卸载分区并弹出读卡器,重新尝试能否启动树莓派。
没有评论