像 ext4 这样的文件系统是块对齐的,这意味着文件与预定义大小的块对齐,对于 ext4 来说,通常为 4 KB。如果.img
从这样的文件系统创建文件,我是否可以假设创建的文件中的各个文件是 4k 对齐的.img
,就像它们在实际文件系统中一样?
换句话说,假设我们有两个名为foo
和的 1 KB 文件bar
,它们在物理驱动器上的显示如下所示,每个 [] 代表 1 KB。
[foo][][][][bar][][][]
在这种情况下,foo
和bar
是 4k 对齐的。现在,如果我们为这个文件系统创建一个文件,和.img
的内容是否仍然从 img 文件的起始位开始 4k 对齐?foo
bar
答案1
定义“一个 img 文件”。如果如果你指的是简单的副本(例如来自、、、、cp /dev/sdx1 file.img
…… ),那么你就不必考虑“从文件系统创建的 img 文件”。它是文件系统的副本,因此dd if=/dev/sdx1 of=file.img
cat /dev/dsx1 > file.img
pv …
A文件系统也是如此。
唯一的区别是原始文件系统(通常)存在于块设备上,而副本则以常规文件的形式存在,您称之为“img 文件”。但它是相同的字节序列(直到其中一个文件系统被安装并因此被更改)。您可以安装副本并使用它。
所以是的,原始的每个结构或对齐(相对于原始块设备的开头)也存在于副本中(这次是相对于常规文件的开头)。