如何挂载与卸载文件系统在Linux

mount是在Linux和UNIX操作系统中的命令。 在用户访问类Unix机器上的文件系统之前,需要使用mount命令挂载其文件系统

6 min read
By myfreax
如何挂载与卸载文件系统在Linux

mount是在Linux和UNIX操作系统中的命令。在用户访问类Unix机器上的文件系统之前,需要使用mount命令挂载其文件系统。

可用于SD卡,USB存储器,DVD和其他可移动存储设备文件系统的挂载。mount命令也可在EFI shell中使用。

常见的方式是使用mount挂载文件系统到指定的目录中,也就是挂载点。对应的umount命令则从目录树中分离已挂载的文件系统,通常称为卸载。

列出已挂载的文件系统。如果在没有任何参数的情况下运行mount命令将显示当前已挂载的文件系统‌。

默认情况下,输出所有文件系统,包括虚拟文件系统,如cgroup,sysfs等。每行包含设备名称,设备挂载目录,文件系统类型和挂载选项的信息。

如果需要仅打印某些类型的文件系统的挂载信息,可以mount的-t选项指定文件系统类型。例如命令mount -t ext4仅打印ext4文件系统类型的挂载信息。

挂载文件系统。要在指定挂载点挂载文件系统,请以mount [OPTION...] DEVICE_NAME DIRECTORY格式的运行mount命令。

OPTION是挂载选项,DEVICE_NAME是设备名称,DIRECTORY顾名思义也就是目录,也称为挂载点。挂载文件系统后,挂载点将成为已挂载文件系统的目录。

sudo mount /dev/sdb1 /mnt/media命令将磁盘分区设备/dev/sdb1文件系统挂载到/mnt/media‌。

通常在挂载常见文件系统,如ext4或xfs的设备时,mount命令将自动检测文件系统类型。但是,有些文件系统无法识别,需要明确指定文件系统类型。

你可使用mount的-t选项指定文件系统类型,你可能还需要指定其他挂载选项,请使用mount的-o选项指定。

sudo mount -t ntfs -o uid=64055,gid=108 /dev/sdb1 /mnt/media命令将磁盘分区设备/dev/sdb1文件系统挂载到/mnt/media‌,指定文件系统类型是NTFS,挂载选项是uid=64055,gid=108

可以提供多个选项,使用逗号分隔,不要在逗号后插入空格,您可在终端中键入man mount获取所有挂载选项的列表。

使用/etc/fstab挂载。当只为mount命令提供一个参数时,可以只是一个挂载点或设备名称,它将读取/etc/fstab配置文件的内容检查是否有指定设备或者挂载点的信息。

如果/etc/fstab包含有指定设备或者挂载点的信息,mount命令将自动填写另一个参数的值,并使用fstab文件中指定的挂载选项进行挂载。

/etc/fstab文件字段包含的信息包括,文件系统File System,通常是设备名称。挂载点Mount Point,文件系统类型[File System Type,选项Options,Dump,Pass。

挂载USB设备

在大多数Linux发行版中,例如Ubuntu。当USB设备在插入时会自动挂载,但有时您可能需要手动挂载USB设备。

如需要手动挂载USB设备,首先创建挂载点使用mkdir命令sudo mkdir -p /media/usb

假设USB驱动器设备是/dev/sdd1,你可运行命令sudo mount /dev/sdd1 /media/usb将其挂载到目录/media/usb

如果usb设备不是Linux可以自动检测文件系统类型,你需要查找设备的文件系统类型使用sudo fdisk -l。在挂载请使用-t选项指定文件系统类型。

如果需要挂载windows下的exFAT,NTFS文件系统格式或者exFAT格式的USB驱动器,您需要安装FUSE exFAT模块和工具

挂载ISO文件

我们可以使用循环设备挂载ISO文件。循环设备是一种特殊的伪设备,它使文件可作为块设备访问。

在挂载ISO文件之前首先创建挂载点,它可以是您想要的任何位置。在本教程我们使用挂载点的目录/media/iso,运行命令sudo mkdir -p /media/iso创建它。

sudo mount /path/to/image.iso /media/iso -o loop命令将ISO文件挂载到指定的目录,不要忘记将/path/to/image.iso替换为你的ISO文件的路径。

挂载NFS

要挂载NFS系统,您需要在系统上安装NFS客户端软件。

如果要在基于Debian的Linux发行版装NFS客户端,例如Ubuntu,Linux mint等。请运行命令sudo apt update && apt install nfs-common

要在基于Redhat的Linux发行版上安装NFS客户端,例如CentOS和Fedora等。请运行命令sudo yum install nfs-utils。挂载远程系统的NFS目录

接下来运行命令sudo mkdir /media/nfs创建一个目录作为nfs共享的挂载点。

通常,您需要在启动时自动挂载远程NFS共享。请使用你喜欢的文本编辑器打开文件/etc/fstab。在本教程我们使用vim打开文件,运行命令sudo vim /etc/fstab

将以下行添加到文件中/etc/fstab中, remote.server:/dir替换为NFS服务器IP地址以及导出的目录。

最后运行命令sudo mount /media/nfs挂载NFS共享目录。

# <file system>    <dir>       <type>   <options>   <dump>	<pass>
remote.server:/dir /media/nfs  nfs      defaults    0       0
/etc/fstab

卸载

要卸载已挂载的文件系统,使用umount命令后面跟已挂载的目录即挂载点。或者设备名称。可以是umount DIRECTORY或者umount DEVICE_NAME

如果文件系统正在使用,umount命令将无法卸载文件系统。在这些情况下,您可以使用fuser命令找出正在访问挂载点的进程。

fuser -m DIRECTORY命令将查找正在访问挂载点的进程,DIRECTORY是挂载点。然后你就可以停止进程并卸载文件系统。

除此之外你还可以使用-l/--lazy选项可以文件系统不再被访问时立即卸载它。‌终极选项是使用-f/--force选项强制卸载。

此选项通常用于卸载无法访问的NFS系统。强制卸载通常不是一个好主意,因为它可能会破坏文件系统上的数据。

到目前为止,您应该很好地理解如何使用mount命令将各种文件系统挂载到目录树并使用umount命令卸载已挂载的文件系统。