我尝试卸载 sdfs 磁盘,但只能使用命令卸载它umount -l
。
该命令mount
返回当前占用的磁盘。我需要一些帮助来理解该umount -l
命令的含义。
答案1
当您尝试卸载文件系统时,内核会检查是否没有进程仍在使用它。也就是说,如果有某个进程仍在该挂载点上读取或写入文件,或者有一个目录作为其当前目录,或者类似的情况,那么您无法卸载该文件系统,因为它仍在使用中。
umount -l
不实际上卸载文件系统;它只是“隐藏”挂载,直到所有打开文件或目录的进程停止打开它们。到那时,文件系统终于真正卸载了。
这对于断开“挂起”的网络挂载等很有用,以避免额外的进程尝试从挂起的网络挂载读取;否则,当系统等待网络挂载再次开始工作时,这些额外的进程都会被阻塞,这不是一个有用的状态。
对于其他一切,-l
选项umount
通常是非常馊主意。如果您尝试卸载本地磁盘以便可以将其从系统中删除,因为umount -l
直到稍后才真正卸载磁盘,因此在umount -l
命令完成后删除磁盘将导致磁盘在仍在使用时被删除,并可能导致数据丢失。
相反,如果您希望在磁盘仍在使用时卸载该磁盘,则应确保没有进程正在使用该安装点。您可以通过运行来了解这些进程的概述fuser -m <mountpoint>
;例如,如果您的磁盘安装为/mnt/disk
,则运行fuser -m /mnt/disk
以获取仍在使用它的进程列表。然后,您可以停止这些进程,或者指示它们关闭在文件系统上打开的文件,或者其他什么,然后再尝试一次umount
。