是否可以以阻塞方式强制从磁盘完全重新读取已安装的文件系统(EXT4)?我有一种潜在的情况,独立的外部硬件可以修改 Linux 上已经安装和使用的文件系统。
我认为简单地卸载和重新安装文件系统的问题是,进程可能会在卸载文件系统之后但重新安装之前尝试使用文件系统。
我想以不妨碍任何期望利用文件系统的进程(即在卸载和重新安装之间阻塞)的方式重新读取/重新安装整个文件系统(包括超级块)。
这有可能以任何方式实现吗?
答案1
我有一种潜在的情况,独立的外部硬件可以修改 Linux 上已经安装和使用的文件系统。
对于像 Ext4 这样的本地文件系统来说这是不可能的。它并不是为了处理它自己没有处理的更改而设计的,它无法将它们与它自己的(基于内存的)磁盘上的视图相协调。
即使您的 Ext4 文件系统以只读方式安装并且您的外部硬件修改了它,它也不会工作。从架构的角度来看,它可以工作的唯一方法是需要显式卸载 ext4 文件系统,让外部硬件修改它,然后再次安装它 - 并且只能按照这个顺序。没有办法解决这个问题。
@Mark Plotnick 有一个很好的建议:你有一个分布式问题,用处理并发访问的文件系统来解决它,最简单的一个是 NFS。它仍然存在令人讨厌的缓存/一致性问题,您必须了解它们并根据您的喜好配置 NFS。