背景:有两块开发板各有自带的linux源码以及相关根文件系统,每块板子自己独立加载启动都是正常的,两块板子架构都是aarch64。有一天突然想交换根文件系统去加载试试,发现交换后无法识别对方的root根文件系统。即内核A加载根文件A可以,内核B加载根文件B可以,内核A加载根文件B不可以,内核B加载根文件A不可以。尝试用qemu的办法分别尝试了内核A加载根文件B和内核B加载根文件A,但是都可以的,证明文件系统本身内容是没错的。后来自己从linux官方网站下了内核重新编译生成内核C去启动根文件系统A和B,启动不起来。
初步探索和理解:使用了beyond compare去比较linux官方内核源码和开发板提供的内核源码,发现有非常多的差异,不管是drivers文件夹还是fs文件夹。
疑问:猜测是不是开发板自行修改了文件系统的格式,比如定制化ext4这种?以及这种做法常见么?还有如果想实现板A加载板B的根文件系统,应该怎么做?![](http://tiebapic.baidu.com/forum/w%3D580/sign=a8f166023df40ad115e4c7eb672d1151/735457ed2e738bd41196e30be78b87d6267ff9b2.jpg?tbpicau=2024-07-20-05_3547a47d64804e2698fbd35fe63d03b4)
初步探索和理解:使用了beyond compare去比较linux官方内核源码和开发板提供的内核源码,发现有非常多的差异,不管是drivers文件夹还是fs文件夹。
疑问:猜测是不是开发板自行修改了文件系统的格式,比如定制化ext4这种?以及这种做法常见么?还有如果想实现板A加载板B的根文件系统,应该怎么做?
![](http://tiebapic.baidu.com/forum/w%3D580/sign=a8f166023df40ad115e4c7eb672d1151/735457ed2e738bd41196e30be78b87d6267ff9b2.jpg?tbpicau=2024-07-20-05_3547a47d64804e2698fbd35fe63d03b4)