`resize2fs` 如何改变文件系统的大小?

`resize2fs` 如何改变文件系统的大小?

根据https://unix.stackexchange.com/a/501454/674,

parted 的 resizepart 根本不关心文件系统。它只是更改分区表以指定分区现在结束的新位置。它不会覆盖该位置或附近的任何内容。修改分区表后,它会向内核发出分区表已更改的信号。内核将读取新表并应用它(如果可能)。

如何resize2fs更改文件系统的大小?它也以类似的方式做到这一点吗parted resizepart?特别:

https://unix.stackexchange.com/a/231623/674说它扩展了文件系统,通过

将额外的文件系统元数据写入新的可用存储。

它会将哪些文件系统元数据写入“新可用存储”?写入“新可用存储”是否意味着在“新可用存储”上写入零?或者它是否仅更改存储在文件系统超级块中的某些值?

https://unix.stackexchange.com/a/231623/674说它缩小了文件系统

通过移动文件系统元数据和数据。

它不会将一些“文件系统元数据”写入某个地方吗?

谢谢。

答案1

它会将哪些文件系统元数据写入“新可用存储”?

无论该特定文件系统需要什么才能使空间可用。

例如ext4,文件系统被分成块组,每个组包含多个数据块,加上一些 inode,加上块和 inode 的空闲/已用位图。 (也许还有一些其他簿记数据。)

然后,需要了解文件系统的主要数据结构,以了解文件系统有多大等。它们也需要更新。

写入“新可用存储”是否意味着在“新可用存储”上写入零?

可能不会。尽管mkfs.ext4确实会丢弃文件系统上未使用的块,但对于文件系统扩展到的部分也可能会执行相同的操作。

相关内容