炸鱼薯条德里克 Asked: 2019-02-24 04:39:58 +0800 CST2019-02-24 04:39:58 +0800 CST 2019-02-24 04:39:58 +0800 CST 当某个进程有其工作目录或根目录时,我可以卸载或重新安装文件系统吗? 772 如果某个进程在已挂载的文件系统上有其当前工作目录或根目录,我可以卸载/重新挂载该文件系统吗? 如果某个进程在已挂载的文件系统上具有文件的读/写文件描述符或读/写/共享 mmap,我可以将该文件系统重新挂载为只读吗?如果是,当您写入这些文件描述符和 mmap 时,它们会发生什么情况? linux mount 1 个回答 Voted Best Answer sourcejedi 2019-02-24T04:49:13+08:002019-02-24T04:49:13+08:00 进程的工作目录和根目录被视为对文件系统的活动引用,与打开文件相同。因此,它们会阻止文件系统被卸载。内核返回“忙碌”错误。 EBUSY 目标无法卸载,因为它很忙。 --man umount 如果没有文件打开以供写入,则可以将文件系统重新挂载为只读文件。进程的工作目录和根目录不计入可写文件;它们不会阻止文件系统以只读方式重新挂载。 EBUSY 源不能以只读方式重新挂载,因为它仍然保持打开的文件以供写入。 man mount 还有另一种情况:至少在某些文件系统上,如果打开了未链接的文件,即使读取也不能重新挂载为只读。关闭未链接的文件可以回收空间,但这可能需要更新磁盘上的文件系统元数据块。 该命令umount -l(使用umount2(..., MNT_DETACH))能够从挂载树中分离繁忙的文件系统。文件系统保持活动状态。一旦关闭最后一个打开的文件,它将被关闭。该文档没有说明关闭是否发生在后台,或者您是否可以依赖文件系统在最后一次 close() 调用返回后完全关闭。
进程的工作目录和根目录被视为对文件系统的活动引用,与打开文件相同。因此,它们会阻止文件系统被卸载。内核返回“忙碌”错误。
如果没有文件打开以供写入,则可以将文件系统重新挂载为只读文件。进程的工作目录和根目录不计入可写文件;它们不会阻止文件系统以只读方式重新挂载。
还有另一种情况:至少在某些文件系统上,如果打开了未链接的文件,即使读取也不能重新挂载为只读。关闭未链接的文件可以回收空间,但这可能需要更新磁盘上的文件系统元数据块。
该命令
umount -l
(使用umount2(..., MNT_DETACH)
)能够从挂载树中分离繁忙的文件系统。文件系统保持活动状态。一旦关闭最后一个打开的文件,它将被关闭。该文档没有说明关闭是否发生在后台,或者您是否可以依赖文件系统在最后一次 close() 调用返回后完全关闭。