一.情况说明&复现步骤

在我替换树莓派3B系统为最新的Raspberry Pi OS系统(2022年新系统)时(无论32/64位)均会报错(Kernel panic-not syncing: VFS: unable to mount root fs on unknown- block(179,2))

复现场景:
1.当我使用Win32DiskImager对tf卡进行系统镜像备份后,当生成的img文件使用balenaEtcher / Win32DiskImage /Raspberry Pi Imager刷入同一张tf卡中,启动有很大概率会出现(Kernel panic-not syncing: VFS: unable to mount root fs on unknown- block(179,2))错误--(64bit几乎每次,32bit概率低)
2.因为情况1我选择了32bit进行使用,但是后来发现即使我没有使用Win32DiskImage,只是reboot也会发生该问题(Kernel panic-not syncing: VFS: unable to mount root fs on unknown- block(179,2))
3.出现该错误我尝试使用ubuntu进行修复,但是当我使用"fsck.ext4 -y /dev/sdb2"修复tf卡后,提示我该分区没有错误
重新将tf卡插入树莓派中启动,发现错误变成了(end Kernel panic - not syncing : VFS: Unable to mount root fs on unknown-block(0,0))
4.以及当我尝试使用(https://raspberrypi.stackexchange.com/questions/40854/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block179-6)这个方法修复时,尝试使用notepad++打开cmdlist.sts,发现cmdlist.txt文件为乱码


二.解决办法

后来怀疑是新系统问题,据官方新闻“New” old functionality with Raspberry Pi OS (Legacy),在2021年12月份,官方变更了上游分支,而我之前一直使用的都是存储到本地的老镜像,所有只有更换成新镜像(2022年以后的)就会发生该错误.

最后排查到应该是linux内核兼容问题,在atp updat和upgrade之后,镜像原内核(4.x或者5.4)会与更新不兼容(但是这时候重启有概率不会报错),当使用win32disklimag制作镜像并重新写入开机报错,我通过以下方式修复升级内核后,再也没发生过该报错:

1.最好在刚刚把系统烧录在sd卡第一次开机后进行以下步骤(经我测试第一次都是正常的,只会在后续重启时出现报错可能);

sudo apt update
sudo apt upgrade -y
//开机后先更新系统

sudo rpi-upgdate
//之后使用rpi-OS自带的工具,将其系统内核更新(一般为5.4或4.X)升级到5.15(一般为最新的版本号,你们更新可能与我不一样)

sudo reboot
//更新后重启

三.结尾

在其更新内核后重启关机,制作镜像并重新写入tf卡均表现正常

是一名喜欢每天折腾的咸鱼! 也是一名半退役的算竞摸鱼选手,参与过icpc,天梯赛,蓝桥等比赛.Datawhale 成员及优秀队长 --------------------------------------------------- 认证类: 华为 Harmony OS应用开发者高级认证, NISP 一级认证, H3C NE-RS网络工程师认证 --------------------------------------------------- 荣获奖项荣誉: 第十八届“挑战杯”全国大学生课外学术科技作品竞赛 “揭榜挂帅”专项赛-全国特等奖、 “美亚杯”第八届中国电子取证大赛 三等奖、 “蓝桥杯”国优、 中国高校计算机大赛-团体程序天梯赛 省高校一等奖、 “蓝桥杯”省一等奖、 H3C新华三杯 省三等奖、 中国移动“梧桐杯”大数据创新大赛 省三等奖、 百度 飞桨领航团 金牌团长
最后更新于 2024-01-24