一.情况说明&复现步骤
在我替换树莓派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卡均表现正常
Comments NOTHING