A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: umount: command not found #Debian apt-get install mount #Ubuntu apt-get install mount #Alpine apk add util-linux #Arch Linux pacman -S util-linux #Kali Linux apt-get install mount #CentOS yum install util-linux #Fedora dnf install util-linux #OS X brew install util-linux #Raspbian apt-get install loop-aes-utils #Docker docker run cmd.cat/umount umount
umount 命令用于卸载已经加载的文件系统。利用设备名或挂载点都能 umount 文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
请注意,文件系统在繁忙时无法卸载,例如,当文件系统上有打开的文件,某个进程的工作目录位于其中或正在使用交换文件时。 冒犯性的进程甚至可以自己卸载-例如,umount 打开公共 C
库,而后者又可以打开(例如)语言环境文件,如果这些语言文件位于有问题的设备上,则将阻止其卸载。 即使出现这种冲突,“惰性”卸载(请参见下面的 umount 选项部分中的 -l)也会尝试进行卸载。
umount [-hV] umount -a [-dflnrv] [-t vfstype] [-O options] umount [-dflnrv] {dir|device}...
-a:卸除/etc/mtab中记录的所有文件系统; -h:显示帮助; -n:卸除时不要将信息存入/etc/mtab文件中; -r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统; -t<文件系统类型>:仅卸除选项中所指定的文件系统; -v:执行时显示详细的信息; -V:显示版本信息。
文件系统:指定要卸载的文件系统或者其对应的设备文件名。
下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:
#通过设备名卸载 umount -v /dev/sda1 /dev/sda1 umounted #通过挂载点卸载 umount -v /mnt/mymount/ /tmp/diskboot.img umounted
如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的 shell
当前目录为挂载点里的某个目录:
umount -v /mnt/mymount/ umount: /mnt/mymount: device is busy umount: /mnt/mymount: device is busy
有时,导致设备忙的原因并不好找。碰到这种情况时,可以用 lsof 列出已打开文件,然后搜索列表查找待卸载的挂载点:
lsof | grep mymount #查找mymount分区里打开的文件 bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount
从上面的输出可知,mymount 分区无法卸载的原因在于 francois
运行的 PID 为 9341 的 bash 进程。对付系统文件正忙的另一种方法是执行延迟卸载:
umount -vl /mnt/mymount/ #执行延迟卸载
延迟卸载 lazy unmount
会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用 eject 命令。下面这条命令会卸载 cd 并弹出 CD:
eject /dev/cdrom #卸载并弹出CD
不得不说,这是个很弱的问题,其实也算个“坑”,拼写的坑:根本没有什么 unmount
,而是 umount
...
如果一定要使用 unmount
,可以设置别名 alias unmount='umount'
,但是实际上,Linux 还真有一个 unmount
命令,是计划9的应用程序端口,安装用:
#Arch Linux pacman -S plan9port #OS X brew install plan9port