我正在为嵌入式设备构建 rootfs。
我首先创建一个空的环回文件系统,然后安装它并向其中添加文件。
完成后,我最终得到一个文件系统映像。然后我可以将图像刻录到实际介质以供设备使用。
问题:如何将此映像写入实际介质,例如 mmc 卡的分区/dev/sdX1
?
我现在正在做的是将图像文件转换dd
为.但我想知道当映像文件和目标分区大小不同时会发生什么?cat
/dev/sdX1
我应该将图像文件填充到大于分区,还是使其足以容纳数据并小于目标?
这与磁盘到磁盘的复制不同,例如/dev/sda
to disk.img
then to /dev/sdb
,其中分区表被复制并且源和目标的所有分区都完全相同。
答案1
就像整个磁盘上的分区表记录分区相对于磁盘的结束位置一样,文件系统本身知道它相对于分区开头的结束位置。
除了介质上浪费的空间之外,文件系统之后的分区上是否有垃圾也没关系。只要您的映像小于(或等于)目标分区,就可以了。
某些文件系统可以调整大小以填充它们所在分区上的所有可用空间。 (通常,将稍小的图像复制到分区并调整大小更方便,这样在计算精确大小时就可能出错。)