📜  umount: mnt: 目标正忙. - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:35:27.621000             🧑  作者: Mango

umount: mnt: 目标正忙.

当您尝试卸载一个文件系统时,若文件系统仍在使用中,则会出现上述错误。这是因为在运行程序或进行其他操作时,该文件系统已经被挂载(mount)并在使用中,因此无法执行卸载(unmount)操作。

有以下几种常见的情况会导致文件系统被占用:

  1. 终端或其他程序仍在访问目标文件系统的文件或目录。
  2. 文件系统的某个文件处于打开状态,并且有进程持有对它的引用。
  3. 您已在目标文件系统上打开了一个 shell,它的当前工作目录位于该文件系统下。

要解决这个问题,您需要先停止使用文件系统,然后才能卸载它。

以下是一些可能有用的命令:

  1. 查看挂载:mount命令可以列出所有挂载点及其状态。找到目标文件系统并记录它的挂载点(mount point)路径。

  2. 查看进程:lsof命令可以列出所有打开的文件和哪个进程或用户打开了它们。 lsof \<mount_point\>将列出使用目标文件系统的进程。杀死这些进程/用户,以关闭文件系统的所有引用。

  3. 更改当前工作目录:如果您是在目标文件系统上打开的 shell,则必须更改当前工作目录才能卸载。首先用 cd 命令切换到另一个目录,然后尝试卸载。

如果您已经停止了所有对文件系统的使用,但仍然无法卸载文件系统,则可能是因为某个进程已经挂起。在这种情况下,您可以使用 fuser 命令查找并杀死这些进程:

fuser -cuk \<mount_point\>; umount \<mount_point\>

-fuser 命令列出使用目标文件的进程或用户。选项-c 将输出显示成(进程编号)。选项-u 将输出显示成用户名。

-k 选项可用于杀死找到的进程。

-如果有需要,-u 选项可以组合使用。-k 选项立即结束进程。当您添加这个选项时,不会询问用户是否想要立即结束进程。

当您解决了文件系统的占用问题并成功地卸载文件系统后,您可以再次尝试挂载文件系统并重新开始使用它。