“mount -o remount,ro”是否刷新文件系统缓冲区?

“mount -o remount,ro”是否刷新文件系统缓冲区?

在Linux上,是否mount -o remount,ro刷新文件系统缓冲区/缓存,或者我也应该运行sync来实现这一点?

答案1

应该刷新缓存,是的。

可以说,这段代码路径存在一些脆弱性。它不是在一处实施的;它在每个单独的文件系统中实现。例如ext2_remount() 必须调用sync_filesystem()

此外,在我所知道的所有用例中,它都与系统sync()调用一起使用。因此,如果您依赖于此,并且内核出错,您可能拥有第一个发现问题的“特权”。

如果您想格外小心,可以使用sync -f /my/mounted/filesystem/.这是更可取的,sync因为它可以避免与任何其他文件系统的干扰。它使用Linux系统调用syncfs()

答案2

维基百科

当文件系统以只读方式卸载或重新安装时(例如在系统关闭之前),缓冲区也会被刷新。

相关内容