根据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
确实会丢弃文件系统上未使用的块,但对于文件系统扩展到的部分也可能会执行相同的操作。