卸载文件系统

所有安装的文件系统,通常是在系统重新引导或关闭时自动卸载的。当一个文件系统卸载后,在内存中缓存的所有文件系统数据都被刷新到磁盘中。

您也可以手动卸载文件系统。事实上,当删除可写入介质比如,磁盘、U 盘或存储键)时,您应该这样做。

使用 umount 命令来卸载文件系统,指定设备名或者挂载点作为参数。清单 10 展示了如何卸载 /dos,然后重新安装,接着用设备名再次卸载。

清单 10. 卸载文件系统


[root@echidna ~]# umount /dos
[root@echidna ~]# mount /dev/sda9 /dos
[root@echidna ~]# umount /dev/sda9 

当一个文件系统被卸载之后,作为挂载点的目录下的那些文件会再次出现。

如果您想卸载一个文件系统,而此时进程已打开了该文件系统上的文件,将会出现一个错误消息。卸载文件系统之前,您应当确认没有进程正在该文件系统的文件上运行。使用 lsoffuser 命令确定哪个文件是打开的,或哪个进程打开了文件。您可能需要 lsof 上的 -w 选项来避免与 Gnome Virtual File 系统gvfs)相关的警告消息。查阅手册页,学习关于安装选项和 lsof 的其他信息。如果您检查整个设备,您可以指定设备名或挂载点。您也可以检查是否一个独立的文件正在使用。

为了解释这些命令,我创建了一个 /etc/fstab on /dos 副本,用一个小的脚本来从 stdin 逐行读取,然后打印到 stdout,每行之间有 10 秒的停顿。清单 11 显示了当文件正在使用时 umount 出现的错误消息,以及使用 lsoffuser 在 /dos 或基础设备 /dev/sda9 上检查打开文件的结果。

清单 11. 检查打开文件


[root@echidna ~]# umount /dos
umount: /dos: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@echidna ~]# lsof -w /dos
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
slowread. 2560  ian    0r   REG    8,9      899  123 /dos/fstab
sleep     2580  ian    0r   REG    8,9      899  123 /dos/fstab
[root@echidna ~]# lsof -w /dev/sda9
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
slowread. 2560  ian    0r   REG    8,9      899  123 /dos/fstab
sleep     2580  ian    0r   REG    8,9      899  123 /dos/fstab
[root@echidna ~]# fuser -m /dos
/dos:                 2560  2586
[root@echidna ~]# fuser -m /dev/sda9
/dev/sda9:            2560  2588

这时,您可以选择等待,直至文件系统不再繁忙,或者您也可以通过指定 -l 选项进行一个懒卸载lazy unmount)。懒卸载直接从文件系统树分离文件系统,然后,在文件系统空闲时,清理文件系统附加项。


相关内容

    暂无相关文章