如何在Linux中挂载和卸载文件系统
在Linux和UNIX操作系统中,你可以使用mount
命令在目录树中的特定挂载点附加(挂载)文件系统和可移动设备,如USB闪存驱动器等。
umount
命令从目录树中分离(卸载)已挂载的文件系统。
在本教程中,我们将介绍使用mount
和umount
命令附加和分离各种文件系统的基本知识。
如何列出已挂载的文件系统
在没有任何参数的情况下使用时,mount
命令将显示所有当前连接的文件系统。
mount
默认情况下,输出将包括所有的文件系统,包括虚拟文件系统,如cgroup、sysfs等。每一行都包含设备名称、设备挂载的目录、文件系统的类型和挂载选项等信息,其形式如下。
device_name on directory type filesystem_type (options)
要想只显示某些文件系统,请使用-t
选项。
例如,要想只打印ext4分区,可以用以下方法
mount -t ext4
挂载一个文件系统
要在给定的位置(挂载点)挂载一个文件系统,请使用以下形式的mount
命令。
mount [OPTION...] DEVICE_NAME DIRECTORY
一旦文件系统被连接,挂载点就会成为被挂载的文件系统的根目录。
例如,要把/dev/sdb1
文件系统挂载到/mnt/media
目录下,你将使用。
sudo mount /dev/sdb1 /mnt/media
通常在使用ext4
或xfs
等通用文件系统挂载设备时,mount
命令会自动检测文件系统类型。但是,有些文件系统无法识别,需要明确指定。
使用-t
选项指定文件系统类型:
mount -t TYPE DEVICE_NAME DIRECTORY
指定额外的挂载选项
,使用-o
选项:
mount -o OPTIONS DEVICE_NAME DIRECTORY
多个选项可以作为逗号分隔的列表提供(不要在逗号后插入空格)。
您可以通过在终端中输入 man mount
来获取所有挂载选项的列表。
使用/etc/fstab挂载一个文件系统
当只给mount
命令提供一个参数(目录或设备)时,它会读取/etc/fstab
配置文件的内容来检查是否列出了指定的文件系统。
如果/etc/fstab
包含有关给定文件系统的信息,则mount
命令使用其他参数的值和fstab
文件中指定的挂载选项。
/etc/fstab
文件包含以下形式的条目列表:
[File System] [Mount Point] [File System Type] [Options] [Dump] [Pass]
使用下列形式之一的mount
命令来附加在/etc/fstab
文件中指定的文件系统。
mount [OPTION...] DIRECTORY
mount [OPTION...] DEVICE_NAME
安装USB驱动器
在大多数现代Linux发行版(如Ubuntu)上,当你插入USB驱动器时,它会自动安装,但有时你可能需要手动安装驱动器。
要手动挂载一个USB设备,请执行以下步骤。
创建挂载点。
sudo mkdir -p /media/usb
假设USB驱动器使用的是
/dev/sdd1
设备,你可以通过键入将其挂载到/media/usb
目录。sudo mount /dev/sdd1 /media/usb
要找到设备和文件系统的类型,你可以使用以下任何一条命令。
fdisk -l
ls -l /dev/disk/by-id/usb*
dmesg
lsblk
要安装exFAT格式化的USB驱动器,请安装免费的FUSE exFAT模块和工具 。
装载ISO文件
你可以使用循环设备挂载ISO文件,循环设备是一种特殊的伪设备,它使一个文件可以作为一个块设备来访问。
从创建挂载点开始,它可以是你想要的任何位置。
sudo mkdir /media/iso
通过键入以下命令将ISO文件挂载到挂载点。
sudo mount /path/to/image.iso /media/iso -o loop
不要忘记用你的ISO文件的路径替换
/path/to/image.iso
。
安装NFS的情况下
要挂载一个NFS共享,你需要在你的系统中安装NFS客户端软件包。
在Ubuntu和Debian上安装NFS客户机。
sudo apt install nfs-common
在CentOS和Fedora上安装NFS客户机。
sudo yum install nfs-utils
使用下面的步骤,在你的系统上挂载一个远程NFS目录。
创建一个目录,作为远程文件系统的挂载点。
sudo mkdir /media/nfs
一般来说,你会希望在启动时自动挂载远程NFS共享。要做到这一点,用你的文本编辑器打开
/etc/fstab
文件。sudo nano /etc/fstab
在文件中添加以下一行,用NFS服务器的IP地址或主机名和导出的目录替换
remote.server:/dir
。/etc/fstab# <file system> <dir> <type> <options> <dump> <pass> remote.server:/dir /media/nfs nfs defaults 0 0
通过运行下面的命令挂载NFS共享。
sudo mount /media/nfs
卸载文件系统
要分离一个被挂载的文件系统,请使用umount
命令,后面跟上它被挂载的目录(挂载点)或设备名称。
$ umount DIRECTORY
$ umount DEVICE_NAME
如果文件系统正在使用中,umount
命令将无法分离文件系统。在这些情况下,你可以使用fuser
命令来找出哪些进程在访问文件系统。
fuser -m DIRECTORY
一旦你确定了这些进程,你就可以停止它们,并解除对文件系统的挂载。
懒惰的卸载
使用-l
(--lazy
)选项,一旦一个繁忙的文件系统不再繁忙,就可以立即卸载它。
umount -l DIRECTORY
强制解挂
使用 -f
(--force
) 选项来强制卸载。这个选项通常用于卸载一个无法到达的NFS系统。
umount -f DIRECTORY
一般来说,强制卸载不是一个好主意,因为它可能会破坏文件系统上的数据。
总结
现在,你应该已经很好地理解了如何使用mount
命令将各种文件系统附加到你的目录树上,并使用umount
命令将挂载分离。
要了解更多关于mount
和umount
命令选项的信息,请看它们各自的手册页面。