我有一台嵌入式 Linux 设备(不是 Raspberry Pi),它在 eMMC 驱动器上有两个分区。我使用供应商提供的工具将这两个分区复制到 USB 驱动器上,该驱动器的大小大致等于 eMMC 驱动器的大小。
我接下来要做的是将 USB 驱动器安装到 Linux 计算机上,并使用诸如和e2fsck
之类的工具resize2fs -M
将第二个文件系统的大小调整为最小可行大小,最后用于gdisk
调整分区本身的大小以匹配。
在所有计算中,我都小心确保分区不会小于文件系统,甚至我将分区做得稍微大一些,然后再resize2fs
扩大文件系统以匹配它。
完成这些操作后,我得到了一个 16 GB 的 USB 驱动器,其中包含一个 118 MiB 的启动分区和一个 3.1 GiB 的根文件系统分区。然后我习惯dd
直接从 USB 驱动器读取数据,利用bs=
和count=
参数将读取的数据量限制为仅延伸到第二个分区结束的地方加上一个额外的扇区以容纳“零扇区”。
结果是,我现在有一个图像文件,其中两个分区的大小与它们对应源的大小完全相同,但是当我使用 7-Zip 工具的“文件”->“属性”选项时,它声称“物理大小”(红色圈出)大于这些分区,并且大于我指示dd
从源复制的大小。
这个“物理大小”值从何而来?它是分区表的一部分吗?还是dd
以某种方式从磁盘读取的?
有什么方法可以修改它以摆脱“意外的数据结束”错误?