如何在 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 中挂载和卸载文件系统 的相关文章

  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm
  • 如何取消 Postgres 中的错误命令(从终端)?

    我在尝试编写函数时写了一个错误的命令 我在函数中犯了一个错误 并且想在没有完成函数的情况下退出它 并且我想退出它 但是终端的命令提示符不允许我退出 我试过这个 https unix stackexchange com questions 4
  • 从 pod 安装库时出现错误

    我收到未定义的方法squish for
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 生成一个新终端并写入其标准输出

    我有一个应用程序 它使用 GUI 来完成与用户的大部分界面 不过 我想要一个单独的终端窗口 我可以写入一些错误检查 原始值等 我知道我可以使用以下命令生成一个新终端system 命令 但我不知道是否可以进行交互 在最好的情况下 我希望有一个
  • 如何在 Visual Studio Code 中从集成终端引用当前文件

    我想知道是否可以 使用内置变量 直接使用集成终端在 Visual Studio 中打开的当前文件 例如 gt some command current file Where current file would be a built in
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 在AWS EC2上挂载NVME磁盘

    所以我在每个节点上使用 NVME 磁盘创建了 i3 large 这是我的过程 lsblk gt nvme0n1 检查 nvme 是否尚未安装 sudo mkfs ext4 E nodiscard dev nvme0n1 sudo mount
  • 如何在 Vim 中创建行号和文本之间的边框

    我希望在行号右侧和文本左侧有一条细边框线 您可以使用不同的颜色来突出显示LineNr 例如 hi LineNr cterm bold ctermbg gray ctermfg black gui bold guibg gray guifg
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • 如何使用 exec.Command 在 golang 中执行 Mysql 脚本

    您好 我正在尝试执行一个脚本以使用 Golang 将数据填充到数据库中 func executeTestScript cmd exec Command usr local mysql bin mysql h127 0 0 1 P3333 u
  • 如何使用 ANSI 转义序列捕获 bash 中终端窗口的标题?

    我在 OSX 中使用 bash 命令行 我知道 ANSI 转义序列 033 21t 将检索当前终端窗口的标题 因此 例如 echo ne 033 21t sandbox Where sandbox is the title of the c
  • OSX 终端在启动时无法识别 ~/.bashrc 和 ~/.bash_profile

    OSX 识别我的 bashrc 和 bashprofile 的唯一方法是我在终端的首选项中指定启动时要定位的文件 他们没有按应有的方式工作有什么原因吗 这是我的 bashrc 的内部 s HOME rvm scripts rvm sourc
  • 如何通过双击使该 file.sh 可执行?

    首先我用的是Mac 接下来 我需要执行这个 file sh 我们将调用它 每次我需要执行它时 我都必须打开终端并输入 cd Users Jacob Documents folderWithFileInIt bash file sh 这没关系
  • Linux 从设备本身运行的脚本卸载设备

    我在路径中安装了一个 iso 映像 mnt iso 在这个 iso 中我有一个安装脚本 install sh 我从 iso 运行安装脚本 最后脚本询问用户是否要卸载 iso 本身 如果用户按 y 脚本将执行以下代码 cd umount mn
  • 在 Haskell 命令行应用程序中提示输入密码

    以下 Haskell 程序提示用户在终端中输入密码 如果输入正确则继续 main do putStrLn Password password lt getLine case hash password member database of
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 终端关闭时 bash 收到的信号

    使用 trap 来捕获信号 如下所示 i 1 while i lt 33 do trap echo i gt gt log txt i done 并强行关闭终端 那么log txt中的内容就是 redhat linux下 1 18 1 17

随机推荐

  • 如何在 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命令从目录树中分离 卸载 已安装的文件系统 在本教程中 我们将介