如何在Linux中挂载和卸载文件系统

评论 0 浏览 0 2018-11-09

在Linux和UNIX操作系统中,你可以使用mount命令在目录树中的特定挂载点附加(挂载)文件系统和可移动设备,如USB闪存驱动器等。

umount命令从目录树中分离(卸载)已挂载的文件系统。

在本教程中,我们将介绍使用mountumount命令附加和分离各种文件系统的基本知识。

如何列出已挂载的文件系统

在没有任何参数的情况下使用时,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

通常在使用ext4xfs 等通用文件系统挂载设备时,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 文件包含以下形式的条目列表:

/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设备,请执行以下步骤。

  1. 创建挂载点。

    sudo mkdir -p /media/usb
  2. 假设USB驱动器使用的是/dev/sdd1设备,你可以通过键入将其挂载到/media/usb目录。

    sudo mount /dev/sdd1 /media/usb

    要找到设备和文件系统的类型,你可以使用以下任何一条命令。

    fdisk -lls -l /dev/disk/by-id/usb*dmesglsblk

要安装exFAT格式化的USB驱动器,请安装免费的FUSE exFAT模块和工具

装载ISO文件

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

  1. 从创建挂载点开始,它可以是你想要的任何位置。

    sudo mkdir /media/iso
  2. 通过键入以下命令将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目录。

  1. 创建一个目录,作为远程文件系统的挂载点。

    sudo mkdir /media/nfs
  2. 一般来说,你会希望在启动时自动挂载远程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
  3. 通过运行下面的命令挂载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命令将挂载分离。

要了解更多关于mountumount命令选项的信息,请看它们各自的手册页面。

最后更新2023-05-12
0 个评论