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

2023-11-08

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

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

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

如何列出已安装的文件系统#

当不带任何参数使用时,mount命令将显示所有当前附加的文件系统:

mount

默认情况下,输出将包括所有文件系统,包括虚拟文件系统,例如 cgroup、sysfs 等。每行包含有关设备名称、设备安装目录、文件系统类型和安装选项的信息,格式如下:

device_name on directory type filesystem_type (options)

要仅显示某些文件系统,请使用-t option.

例如,要仅打印 ext4 分区,您可以使用:

mount -t ext4

挂载文件系统#

要将文件系统挂载到给定位置(挂载点),请使用mount命令格式如下:

mount [OPTION...] DEVICE_NAME DIRECTORY

附加文件系统后,挂载点将成为已挂载文件系统的根目录。

例如,要安装/dev/sdb1文件系统到/mnt/media您将使用的目录:

sudo mount /dev/sdb1 /mnt/media

通常在挂载具有通用文件系统的设备时,例如ext4 or xfs the mount命令将自动检测文件系统类型。但是,某些文件系统无法识别,需要显式指定。

Use the -t指定文件系统类型的选项:

mount -t TYPE DEVICE_NAME DIRECTORY

指定额外的安装选项, 使用-o option:

mount -o OPTIONS DEVICE_NAME DIRECTORY

可以以逗号分隔的列表形式提供多个选项(请勿在逗号后插入空格)。

您可以通过键入获取所有安装选项的列表man mount在您的终端中。

使用 /etc/fstab 挂载文件系统#

当只提供一个参数(目录或设备)时mount命令,它将读取内容/etc/fstab配置文件来检查指定的文件系统是否列出。

If the /etc/fstab包含有关给定文件系统的信息,mount命令使用其他参数的值以及在fstab file.

The /etc/fstab文件包含以下形式的条目列表:

/etc/fstab
[File System] [Mount Point] [File System Type] [Options] [Dump] [Pass]

Use the mount以下列形式之一的命令来附加指定的文件系统/etc/fstab file:

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 驱动器,请安装免费的 FUSEexFAT 模块和工具 .

挂载 ISO 文件#

您可以使用循环设备挂载 ISO 文件,循环设备是一种特殊的伪设备,可以将文件作为块设备进行访问。

  1. 首先创建挂载点,它可以是您想要的任何位置:

    sudo mkdir /media/iso
  2. 通过键入以下命令将 ISO 文件挂载到挂载点:

    sudo mount /path/to/image.iso /media/iso -o loop

    别忘了更换/path/to/image.iso与您的 ISO 文件的路径。

安装 NFS#

To 挂载 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

    将以下行添加到文件中,替换remote.server:/dir使用 NFS 服务器 IP 地址或主机名以及导出的目录:

    /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 DIRECTORYumount DEVICE_NAME

如果文件系统正在使用umount命令将无法分离文件系统。在这些情况下,您可以使用fuser命令找出哪些进程正在访问文件系统:

fuser -m DIRECTORY

一旦确定了进程,您就可以停止它们并卸载文件系统。

延迟卸载#

Use the -l (--lazy) 选项,用于在繁忙的文件系统不再繁忙时立即卸载该系统。

umount -l DIRECTORY

强制卸载#

Use the -f (--force) 强制卸载的选项。此选项通常用于卸载无法访问的 NFS 系统。

umount -f DIRECTORY

通常强制卸载不是一个好主意,因为它可能会损坏文件系统上的数据。

结论#

现在您应该已经很好地了解了如何使用mount命令将各种文件系统附加到目录树并使用umount命令。

要了解更多有关mount and umount命令选项请参见各自的手册页。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Linux 中挂载和卸载文件系统 的相关文章

  • linux终端动画-延迟打印“帧”的最佳方法(C语言)

    我正在为终端开发一个简单的 pong 克隆 并且需要一种方法来延迟 帧 的打印 我有一个二维数组 screen ROWS COLUMNS 以及打印屏幕的函数 void printScreen int i 0 int j while i lt
  • VS Code 刷新集成终端环境变量,无需重新启动/注销

    如果您在 Windows 上添加 更改某些环境变量 例如 PATH 即使重新启动 VS Code 后 它也不会在 VS Code 集成终端中可用 但是 如果您从 Windows 命令提示符 Powershell 打开该终端 它将具有这些新的
  • 如何在终端中显示图像?

    是否有任何类型的实用程序可以用来将图像转换为 ASCII 然后在我的终端中打印 我寻找过 但似乎没有找到 一个名为cacaview http linux die net man 1 cacaview允许您执行此操作 它是交互式的 允许您平移
  • Emacs 退出终端

    在 Emacs 中运行终端模式时使用M x term using C x C o我无法切换到另一个缓冲区来继续处理事情 我知道这是可能的M x shell但使用此命令时 shell 的某些方面不起作用 less more 手册页等 我想知道
  • 使用通配符在 .zshrc 中获取多个文件

    我通过 oh my zsh 使用 z shell 我想从 zshrc 文件中获取多个别名文件 这样我就可以让事情井井有条 我已经为别名文件添加了前缀 alias 这样我就可以通配符加载它们 但是 打电话给source alias 只加载第一
  • 我忘记了分号“;”在 MySQL 终端查询中。我该如何退出?

    有时我忘记用分号 结束 SQL 查询 在我的 Mac 终端中 发生这种情况时 终端会设置一个 gt 一开始我无法退出此命令或运行任何其他 SQL 命令 我该如何退出 你不知道mysql终端有5种不同的报价模式 我建议你回顾一下它们 http
  • 无法打开本地终端

    我尝试在 Android Studio 中初始化我的终端 但它给了我错误 它说 无法打开本地终端 java io IOException 无法创建 PTY 我的电脑运行的是 Windows 10 如何解决这个问题 当您从 Github 存储
  • 从 pod 安装库时出现错误

    我收到未定义的方法squish for
  • 如何在 Visual Studio Code 中从集成终端引用当前文件

    我想知道是否可以 使用内置变量 直接使用集成终端在 Visual Studio 中打开的当前文件 例如 gt some command current file Where current file would be a built in
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • VS Code 即使关闭也使用 100% CPU

    即使未打开 VS Code 也会占用 100 的 CPU 使用率 我跑了ps aux grep PID命令查看详细信息但什么也看不懂 这是输出 tawhid 27099 100 0 0 1 447352160 11856 R 7 18PM
  • 如何在 bash 上运行 MySQL 命令?

    以下代码在命令行上运行 mysql user myusername password mypassword database mydatabase execute DROP DATABASE myusername CREATE DATABA
  • Linux 仅使用时间/日期戳重命名文件

    我有一个文件 我想将 mv 重命名为year month day h m s 最好的方法是什么 我已尝试以下操作 但它不会动态添加正确的标记 原始文件名称中实际上有一个反斜杠 mv getnw myfilename txt Y m d H
  • linux命令中括号的用途是什么[重复]

    这个问题在这里已经有答案了 我在 Linux 终端中运行以下命令 谁能告诉我 Linux 终端中括号和以下命令的用途是什么 echo GET HTTP 1 0 echo 主机 www google com echo 数控 www googl
  • 在AWS EC2上挂载NVME磁盘

    所以我在每个节点上使用 NVME 磁盘创建了 i3 large 这是我的过程 lsblk gt nvme0n1 检查 nvme 是否尚未安装 sudo mkfs ext4 E nodiscard dev nvme0n1 sudo mount
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • Dpkg:警告:包“x”的文件列表文件丢失;假设 Ubuntu 16.04 中当前没有安装包

    我使用 Ubuntu 16 04 和 lubunut 桌面环境 当我这样做时 我遇到了以下问题超过3天apt get upgrade 我不知道问题是什么以及如何解决 注意 3天前我尝试升级Linux header 4 4 66 但显示错误
  • 为 CocoaPods 插件设置 Xcode

    我正在尝试设置终端 Xcode 以便正确工作Xcode CocoaPods 插件 https github com kattrali cocoapods xcode plugin 当我从插件运行集成 cocoapods 选项时 我收到一条消

随机推荐

  • 如何在 Ubuntu 20.04 上安装 Steam

    Steam是由 Valve 公司开发的用于购买和玩视频游戏的跨平台娱乐平台 它使您可以访问数千种游戏并结识新朋友 本文介绍如何在 Ubuntu 20 04 上安装 Steam 客户端 先决条件 您需要以以下身份登录具有 sudo 权限的用户
  • 如何创建 MySQL 用户帐户并授予权限

    MySQL 是最流行的开源关系数据库管理系统 MySQL服务器允许我们创建大量的用户帐户并授予适当的权限 以便用户可以访问和管理数据库 本教程介绍如何创建 MySQL 用户帐户并授予权限 在你开始之前 我们假设您的系统上已经安装了 MySQ
  • 如何在 Debian 10 上安装 PostgreSQL

    PostgreSQL 通常简称为 Postgres 是一个开源通用对象关系数据库管理系统 它具有在线备份 时间点恢复 嵌套事务 SQL和JSON查询 多版本并发控制 MVCC 异步复制等许多强大的功能 本教程将引导您完成在 Debian 1
  • 如何在 Ubuntu 18.04 上安装和使用 Docker

    Docker 是一种容器化技术 可让您快速构建 测试应用程序并将其部署为几乎可以在任何地方运行的可移植 自给自足的容器 Docker 已经成为容器部署事实上的标准 它是 DevOps 工程师及其持续集成和交付管道的必备工具 在本教程中 我们
  • 如何在 CentOS 8 上安装和使用 Curl

    curl是一个功能强大的命令行工具 用于从远程服务器传输数据或向远程服务器传输数据 和curl您可以使用各种网络协议下载或上传数据 例如HTTP HTTPS SCP SFTP and FTP 如果您收到一条错误消息说curl command
  • 如何在 CentOS 7 上使用 Apache 安装和配置 Nextcloud

    下一云是一个开源 自托管的文件共享和协作平台 类似于 Dropbox 它捆绑了媒体播放器 日历和联系人管理 Nextcloud 可通过应用程序进行扩展 并拥有适用于所有主要平台的桌面和移动客户端 本教程将引导您完成在 CentOS 7 系统
  • Linux ifconfig 命令

    ifconfig 界面配置 是一个网络管理工具 它用于配置和查看Linux操作系统中网络接口的状态 和ifconfig 您可以分配 IP 地址 启用或禁用接口 管理 ARP 缓存 路由等 在本文中 我们将探讨如何使用ifconfig命令 如
  • Linux 中的差异命令

    diff是一个命令行实用程序 允许您逐行比较两个文件 它还可以比较目录的内容 The diff命令最常用于创建包含一个或多个文件之间差异的补丁 可以使用patch命令 如何使用diff命令 语法为diff命令如下 diff OPTION F
  • Bash 退出命令和退出代码

    通常 在编写 Bash 脚本时 您需要在满足特定条件时终止脚本或根据命令的退出代码采取操作 在本文中 我们将介绍 Bashexit内置命令和已执行命令的退出状态 退出状态 每个 shell 命令在成功或失败终止时都会返回退出代码 按照约定
  • 如何在 Vim / Vi 中搜索

    本文介绍如何在 Vim Vi 中执行搜索操作 Vim 或其前身 Vi 预装在 macOS 和大多数 Linux 发行版上 搜索文本是处理文件时最常见的任务之一 当您遇到您最喜欢的编辑器不可用的情况时 了解 Vim 的基础知识可能会非常有用
  • 如何在 Ubuntu 22.04 上安装 Tomcat 10

    本文介绍如何在 Ubuntu 22 04 上安装和配置 Tomcat 10 Apache Tomcat 是一个开源 Web 服务器和 Java Servlet 容器 它是构建基于 Java 的网站和应用程序的最流行的选择之一 Tomcat
  • 如何在 Debian 10 Linux 上更改主机名

    本教程介绍如何在 Debian 10 Buster 上更改主机名而不重新启动系统 主机名是在安装 Debian 操作系统时设置的 或者如果您正在启动虚拟机 则主机名会在启动时动态分配给实例 先决条件 为了能够更改系统主机名 您需要以 roo
  • 如何在 Debian 10 Linux 上安装 Java

    在本教程中 我们将解释如何在 Debian 10 Linux 上安装 Java OpenJDK Java 是最流行的编程语言之一 用于构建不同类型的应用程序和系统 用 Java 开发的应用程序具有可扩展性 灵活性和可维护性 在你开始之前 J
  • 如何在 Ubuntu 18.04 上安装 PyCharm

    PyCharm是一个功能齐全的 IDEPython和网络开发 它具有内置的调试支持 Docker and Vagrant支持 嵌入式Git控制 Anaconda支持 语法高亮 代码完成 ssh终端 代码重构和丰富的导航功能 PyCharm
  • Linux 中的 apt 命令

    apt是一个命令行实用程序 用于在 Ubuntu Debian 和相关 Linux 发行版上安装 更新 删除和以其他方式管理 deb 软件包 它结合了最常用的命令apt get and apt cache某些选项的默认值不同的工具 apt专
  • 如何在 Debian 10 上安装 CouchDB

    Apache CouchDB 是由 Apache 软件基金会开发的免费开源 NoSQL 数据库 它可以用作单节点或集群数据库 CouchDB 服务器将其数据存储在命名数据库中 其中包含具有以下内容的文档JSON结构 每个文档由许多字段和附件
  • ​如何将 Debian 9 Stretch 升级到 Debian 10 Buster

    经过两年多的开发 新的 Debian 稳定版本 代号 Buster 的 Debian 10 于 2019 年 7 月 6 日发布 并将支持 5 年 此版本附带了大量新软件包和主要软件升级 Debian 10 buster 附带 Linux
  • 如何在 CentOS 8 上安装 GCC(开发工具)

    GNU 编译器集合 GCC 是 C C Objective C Fortran Ada Go D 编程语言 很多开源项目 包括Linux内核和GNU工具 都是使用GCC编译的 本文介绍如何在 CentOS 8 上安装 GCC 在 CentO
  • 你应该知道的 Nginx 命令

    Nginx 发音为 engine x 是一个免费 开源 高性能的 HTTP 和反向代理服务器 负责处理互联网上一些最大网站的负载 它可以用作独立的 Web 服务器 也可以用作反向代理适用于 Apache 和其他 Web 服务器 如果您是开发
  • 如何在 Linux 中挂载和卸载文件系统

    在 Linux 和 UNIX 操作系统上 您可以使用mount用于在目录树中的特定安装点附加 安装 文件系统和可移动设备 例如 USB 闪存驱动器 的命令 The umount命令从目录树中分离 卸载 已安装的文件系统 在本教程中 我们将介