1 | umount
|
2 | ===
|
3 |
|
4 | 用于卸载已经加载的文件系统
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **umount命令** 用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | umount(选项)(参数)
|
14 | ```
|
15 |
|
16 | ### 选项
|
17 |
|
18 | ```shell
|
19 | -a:卸除/etc/mtab中记录的所有文件系统;
|
20 | -h:显示帮助;
|
21 | -n:卸除时不要将信息存入/etc/mtab文件中;
|
22 | -r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
|
23 | -t<文件系统类型>:仅卸除选项中所指定的文件系统;
|
24 | -v:执行时显示详细的信息;
|
25 | -V:显示版本信息。
|
26 | ```
|
27 |
|
28 | ### 参数
|
29 |
|
30 | 文件系统:指定要卸载的文件系统或者其对应的设备文件名。
|
31 |
|
32 | ### 实例
|
33 |
|
34 | 下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:
|
35 |
|
36 | 通过设备名卸载
|
37 |
|
38 | ```shell
|
39 | umount -v /dev/sda1
|
40 | /dev/sda1 umounted
|
41 | ```
|
42 |
|
43 | 通过挂载点卸载
|
44 |
|
45 | ```shell
|
46 | umount -v /mnt/mymount/
|
47 | /tmp/diskboot.img umounted
|
48 | ```
|
49 |
|
50 | 如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:
|
51 |
|
52 | ```shell
|
53 | umount -v /mnt/mymount/
|
54 | umount: /mnt/mymount: device is busy
|
55 | umount: /mnt/mymount: device is busy
|
56 | ```
|
57 |
|
58 | 有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:
|
59 |
|
60 | ```shell
|
61 | lsof | grep mymount 查找mymount分区里打开的文件
|
62 | bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount
|
63 | ```
|
64 |
|
65 | 从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。
|
66 |
|
67 | 对付系统文件正忙的另一种方法是执行延迟卸载:
|
68 |
|
69 | ```shell
|
70 | umount -vl /mnt/mymount/ 执行延迟卸载
|
71 | ```
|
72 |
|
73 | 延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:
|
74 |
|
75 | ```shell
|
76 | eject /dev/cdrom 卸载并弹出CD
|
77 | ```
|
78 |
|
79 |
|