最近在使用ZYNQ MPSoC与NXP imx.6ull学习嵌入式Linux时发现,似乎嵌入式Linux都是设置两个分区,一个为FAT文件系统,另外一个为EXT文件系统,好奇其背后的原因,查阅资料,总结如下,其主要是出于以下几个方面的考虑:
首先需要明确的是,FAT文件系统兼容性强,像Windows系统、Linux系统都是兼容的(在ubuntu格式化卷写的是所有系统和设备共用),而EXT文件系统在Windows下是看不到的(把SD卡作为Linux的根文件系统,分FAT与EXT两个区,EXT分区在Windows下不可见),嵌入式Linux使用FAT分区,可以方便地与其他系统(如Windows)共享数据。
而EXT是Linux下的常用文件系统,具有高性能、高可靠性和良好的数据一致性等特点。在嵌入式Linux系统中使用EXT分区,可以充分利用Linux系统的优势,提升系统的整体性能。
上面所提及的两种文件系统的特点,也就注定了它们的使用习惯。对于嵌入式Linux来说,FAT分区通常存放一些需要跨平台共享的文件,像是uboot、设备树、kernel以及配置文件或数据文件;而EXT分区则主要用于存放Linux系统的核心文件和应用程序。由于EXT文件系统针对Linux系统进行了优化,因此在处理大量数据和复杂操作时具有更高的效率和稳定性。
把系统文件和其他数据文件放在不同的分区中,可以降低系统崩溃或数据损坏的风险,与Windows下分多个盘存储原理类似。哪怕其中一个分区出了什么问题,也不会影响到另一个分区的文件。
嵌入式Linux在调试阶段和维护阶段往往需要频繁地更改一些文件,使用两个分区更利于进行更新和维护。一种常用的做法是把更新的文件先放在FAT分区里面,再通过命令行或程序把他们复制到EXT分区覆盖旧文件,这样就能避免直接修改系统分区带来的风险。