Linux mount 命令

article/2025/11/9 6:07:09

mount 命令用来挂载文件系统。其基本命令格式为:
mount -t type [-o options] device dir
device:指定要挂载的设备,比如磁盘、光驱等。
dir:指定把文件系统挂载到哪个目录。
type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。
options:指定挂载参数,比如 ro 表示以只读方式挂载文件系统。

Help

可以通过 man page 和 -h 选项来获得最直接的帮助文档:

$ man mount
$ mount -h

文件系统的类型

虽然多数情况下我们不用指定 -t 参数显式地说明文件系统的类型,但文件系统的类型对 mount 命令来说确实是非常重要的。原因是假如你要挂载一个当前系统不支持的文件系统,它是没办法工作的。当前系统支持的文件系统类型是由内核来决定的,比如 ext2、ext3、ext4、sysfs 和 proc 等常见的文件系统默认都是被支持的。我们可以通过查看 /proc/filesystems 文件来观察当前系统具体都支持哪些文件系统:

$ cat /proc/filesystems

第一列说明文件系统是否需要挂载在一个块设备上, nodev 表明后面的文件系统不需要挂接在块设备上。 第二列是内核支持的文件系统。

看懂输出的文件系统信息

通过 mount 命令查看已挂载的文件系统,会输出丰富的信息,如下图所示:

让我们先来解释一下输出信息的格式和含义。输出中的每行代表挂载的一个文件系统,其格式为:
fs_spec on fs_file type fs_vfstype (fs_mntopts)
fs_spec:挂载的块设备或远程文件系统
fs_file:文件系统的挂载点
fs_vfstype:文件系统的类型
fs_mntopts:与文件系统相关的更多选项,不同的文件系统其选项也不太一样
比如上图中的第一行含义为:挂载的设备为 sysfs,挂载点为 /sys,文件系统的类型为 sysfs。括号中的 rw 表示以可读写的方式挂载文件系统,noexec 表示不能在该文件系统上直接运行程序。

与 mount 命令相关的文件

/etc/fstab
/etc/mtab
/proc/mounts

mount -a 会将 /etc/fstab 中定义的所有挂载点都挂上(一般是在系统启动时的脚本中调用,自己最好别用!)。

mount 和 umount 命令会在 /etc/mtab 文件中维护当前挂载的文件系统的列表,这个文件在目前的系统中还是被支持的。但是更好的方式是用链接文件 /proc/mounts 代替 /etc/mtab 文件。这是因为在用户空间中维护的普通文件 /etc/mtab 很难稳定可靠的与 namespaces、containers 等 Linux 的高级功能协作。在 ubuntu 16.04 上, /etc/mtab 和  /proc/mounts 一样,都是指向 /proc/self/mounts 的链接文件。

下面我们介绍一些 mount 命令的常见用例。

查看挂载的文件系统

输出系统挂载的所有文件系统
如果执行 mount 命令时不加任何参数,就会输出系统挂载的所有文件系统:

$ mount

输出指定类型的文件系统
通过 -t 参数可以只输出指定类型的文件系统,比如下面的命令只会输出 tmpfs 类型的文件系统:

$ mount -t tmpfs

格式化并挂载磁盘

对于一个磁盘分区,我们可以使用 mkfs 命令把磁盘分区格式化为指定的文件系统,比如 ext4:

$ sudo mkfs -t ext4 /dev/sdb1

然后把该分区挂载到 /mnt 目录:

$ sudo mount /dev/sdb1 /mnt

挂载光驱

现在偶尔还还需要使用一下光驱,挂载光驱的命令如下:

$ sudo mount /dev/cdrom /mnt

该命令把设备 /dev/cdrom 挂载在 /mnt 目录中,然后我们就可以在 /mnt 目录下访问光驱中的内容了。

以只读的方式挂载

可以把文件系统挂载为只读模式,从而保护数据。比如将 /dev/sdb1 用只读模式挂在 /mnt 目录:

$ sudo mount -o ro /dev/sdb1 /mnt

这样 /mnt 目录下的文件都是只读的。

把只读的挂载重新挂载为读写模式

当系统出现故障进入单用户模式时,通常 / 根目录会以只读方式挂载,这时如果想要修改文件,会发现所有文件都是只读状态,无法修改。好在 Linux 下的 mount 命令支持一个remount 选项,只需要执行如下命令:

$ mount / -o rw,remount

就可以将根分区重新挂载为读写状态。

除了根目录,重新挂载其它挂载点也是一样的,比如我们把前面挂载的 sdb1 分区重新挂载为读写模式:

$ sudo mount /mnt -o rw,remount

挂载 windows 共享文件

局域网中一般都是 windows 系统和 Linux 系统共存的,如果能轻松的从 Linux 系统中访问 windows 的文件共享将是一件很开心的事情。其实这也很简单,在 windows 上共享文件时指定一个本机的用户,然后在 mount 命令中指定这个用户及其密码就可以了:

$ sudo mount -t cifs -o username=nick,password=Test123456 //10.32.2.30/doc /mnt

注意,-t cifs 是可以省略的,mount 命令能够自动识别。一定要使用 IP 代替 windows 主机的名称。

挂载虚拟文件系统

proc、tmpfs、sysfs、devpts 等都是 Linux 内核映射到用户空间的虚拟文件系统,它们不和具体的物理设备关联,但它们具有普通文件系统的特征,应用层程序可以像访问普通文件系统一样来访问他们。
比如内核的 proc 文件系统默认被挂载到了 /proc 目录,当然我们也可以再把它挂载到其它的目录,比如 /mnt 目录下:

$ sudo mount -t proc none /mnt

由于 proc 是内核虚拟的一个文件系统,并没有对应的设备,所以这里的 -t 参数不能省略。由于没有对应的源设备,这里的 none 可以是任意字符串,取个有意义的名字就可以了,因为用 mount 命令查看挂载点信息时第一列显示的就是这个字符串。

在 Linux 上我们还可以通过 tmpfs 文件系统轻松地构建出内存磁盘来。比如在内存中创建一个 512M 的 tmpfs 文件系统,并挂载到 /mnt 下,这样所有写到 /mnt 目录下的文件都存储在内存中,速度非常快,不过要注意,由于数据存储在内存中,所以断电后数据会丢失掉:

$ sudo mount -t tmpfs -o size=512m tmpfs /mnt

挂载 loop 设备

在 Linux中,硬盘、光盘、软盘等都是常见的块设备,他们在 Linux 下的目录一般是 /dev/sda1、/dev/cdrom、 /dev/fd0 这样的。而 loop device 是虚拟的块设备,主要目的是让用户可以像访问上述块设备那样访问一个文件。 loop device 设备的路径一般是 /dev/loop0、dev/loop1 等,具体的个数跟内核的配置有关。

挂载 ISO 文件
需要用到 loop device 的最常见的场景是挂载一个 ISO 文件。比如将 /tmp/test.iso 这个光盘镜像文件使用 loop 模式挂载到 /mnt 下,这样就不需要把 ISO 文件刻录到光盘上了,当然也不需要光驱了。
下面的命令把 projects 目录下的内容打包到 test.iso 文件中:

$ mkisofs -o test.iso projects/

然后把这个 ISO 文件挂载到 /mnt 目录下:

$ sudo mount test.iso /mnt

挂载 test.iso 文件使用了虚拟设备 /dev/loop0,并且是只读的模式。

虚拟硬盘
loop 设备另一种常见的用法是虚拟一个硬盘,比如我想玩儿一下 btrfs 这个文件系统,但系统中目前的所有分区都已经用了,里面都是有用的数据,不想格式化他们,这时虚拟硬盘就有用武之地了。

我们先通过 dd 命令创建一个 512M 的文件:

$ dd if=/dev/zero bs=1M count=512 of=./vdisk.img

然后在这个文件里面创建 btrfs 文件系统:

$ sudo apt install btrfs-progs
$ mkfs.btrfs vdisk.img

最后把它挂载到 /mnt :

$ sudo mount vdisk.img /mnt

把多个设备挂载到同一个目录

在 Linux 中可以把多个设备挂载到同一个目录。默认后面挂载的内容会让前面挂载的内容隐藏掉,只有 unmount 了后面挂载的内容,才会显示原来的内容。

挂载一个设备到多个目录

我们也可以把同一个设备挂载到不同的目录,这样在不同的目录中看到的是同样的内容。还可以在不同的目录中控制挂载的权限,比如以只读方式挂载:

$ sudo mount -o ro vdisk.img ./testdir

这样从不同的目录访问相同的文件系统时就具有了不同的访问权限。

总结

mount 是 Linux 系统中非常重要的一个命令,因为离开 mount 挂载的文件系统我们几乎什么也干不了。本文介绍了一些 mount 命令的基础用法 ,日常使用应该是够了。mount 命令还有一些相关的复杂概念和用法,比如 bind mount 和 shared subtree 等。


http://chatgpt.dhexx.cn/article/v0VDdZId.shtml

相关文章

Linux挂载命令mount 详解

在Linux操作系统中,mount命令是用于加载文件系统到指定的加载点。此命令最常用于挂载cdrom,使我们可以访问cdrom中的数据,当你将光盘插入cdrom中时,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。在这里…

Linux命令之mount命令

一、命令简介 Unix系统中可访问的所有文件都排列在一棵大树中,即文件层次结构,根在/。这些文件可以分布在多个设备上。mount命令用于将某些设备上的文件系统附加到大文件树。相反,umount命令将再次将其分离。mount是Linux下常用命令&#xff…

Linux中挂载详解以及mount命令用法

挂载概念 Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除次关联关系的过程称之为“卸载”。 注意:“挂载点”的目录需要以…

如何查看键盘上面的键值?

有同学问我如何查看某一个键值,于是我专门写这篇博客分享一个工具,对于学习C/C初级简单制作某一个游戏还是可以的。 下载地址: https://dearbear.lanzoui.com/i8QKqhbfv5e

从键盘输入数据并显示

从键盘输入数据并显示实验 编写程序,将键盘接收到的四位十六进制数按"Enter"回车键转化为二进制数,再显示 在屏幕上, 按"空格键"结束!。若输入的不是 0-F 间的数字,则显示出错信息,并要求 重新输入。 …

jquery 界面显示软键盘

需求&#xff1a;客户端界面需要一个软键盘进行操作 做了一个简易的例子进行展示。 html代码&#xff1a; <div id"container"> <div class"print-right"><div id"right-top" class"right-top"><div class&quo…

ubuntu 显示键盘按键

前言 在看一些主播玩游戏时&#xff0c;他们屏幕上会有一个虚拟键盘&#xff0c;可以显示按键 当时觉得很神奇&#xff0c;就想着给ubuntu也弄一个 庆幸的是&#xff0c;ubuntu的确有这种软件 文章目录 前言一、KeyMon简介二、安装步骤三、自定义设置总结 一、KeyMon简介 这…

PS/2键盘显示感叹号 报(代码10)错误

PS/2键盘显示感叹号 报&#xff08;代码10&#xff09;错误具体步骤如下&#xff1a; 1、开始-》控制面板-》轻松访问中心&#xff0c;打开屏幕键盘。 2、点开始-》运行-》使用屏幕键盘输入regedit&#xff0c;然后点回车&#xff0c;打开注册表编辑器 &#xff08;计算机\H…

Android软键盘(五)如何判断软键盘是否显示

前几次分析了软键盘自动弹出的现象&#xff0c;以及布局上移上移等问题&#xff0c;这次记录一下&#xff0c;如何判断软键盘是否在显示。 先来看一下网上比较流行的答案&#xff1a; 一&#xff1a; if(getWindow().getAttributes().softInputMode WindowManager.LayoutPar…

IOS 键盘的显示与关闭

转自&#xff1a;http://my.oschina.net/hmj/blog/99489 在每一个IOS应用中&#xff0c;几乎不可避免的要进行文本输入操作&#xff0c;例如要求用户填写登陆注册信息&#xff0c;进行话题的评论回复&#xff0c;等等。用到的文本输入组件有UITextField,UITextView,对于这两个…

如何在屏幕实时显示键盘操作(独家分享)

能够在屏幕上实时显示键盘操作&#xff0c;对于录制操作教程视频需求的人来说&#xff0c;可以达到事半功倍的效果&#xff0c;尤其对于比较大型的软件&#xff0c;如Photoshop&#xff0c;After effect等&#xff0c;有非常复杂多样的快捷键&#xff0c;&#xff08;小型软件也…

实时显示键盘按键

本文转载于&#xff1a;Keyviz - 开源按键可视化工具&#xff1a;实时显示键盘按键[Windows] - 小众软件 Keyviz 是一款开源、免费的按键可视化工具&#xff0c;它可以实时显示用户当前按下的按键&#xff0c;可自定义显示按键风格、样式&#xff0c;非常适合录屏、演示等场合…

键盘按键显示软件nohboard

作为一名主播为了自证明游戏中的天秀操作是自己打出来的&#xff0c;不是外挂或代打 亦或者录制一段教学视频&#xff0c;需要实时显示你的按键操作&#xff0c;都需要如下一款软件&#xff1a; nohboard 下载地址&#xff1a; https://obsproject.com/forum/resources/no…

如何在屏幕实时显示自己键盘的输入字符?

请先看这篇文章&#xff1a; 本博打开方式&#xff01;&#xff01;&#xff01;请详读&#xff01;&#xff01;&#xff01;请详读&#xff01;&#xff01;&#xff01;请详读&#xff01;&#xff01;&#xff01;_Cat-CSDN博客 大家在观看…

PowerBuilder 9日历控件展示,下载(附带源码)

下载地址&#xff1a;https://download.csdn.net/download/weixin_37914760/11444539 1、pb9日历控件&#xff0c;支持多个日期选择

C# scottplot插件下载安装(工具箱中无控件问题)

前言 ScottPlot - 可交互的 .NET 图表库 (coderbusy.com)https://scottplot.coderbusy.com/软件版本&#xff1a;VS2015 参考&#xff1a;(3条消息) C# 使用 ScottPlot.WinForms 实现示波器的波形显示_张世争的博客-CSDN博客_winform 示波器https://blog.csdn.net/tcjy1000/a…

WinCC数据报表控件

1、背景 WinCC实现报表历来是老大难&#xff0c;自带的报表功能不好使&#xff0c;又没有好用的第三方控件。虽然网上也有很多实现报表的方法&#xff0c;但是毫无例外的要求使用者具有脚本编程功底&#xff0c;HwDataReport的出现将终结这一现象。您无需一行脚本即可完成…

QT学习之自定义控件

一 、自定义控件封装 1、 添加新文件 - Qt – 设计师界面类 (smallwidget.h smallwidget.cpp smallwidget.ui) 2、在添加的新 smallwidget.ui中 设计 QSpinBox和QSlider 两个控件&#xff0c;组合在一起 3、 主UI界面中使用自定义控件&#xff0c;拖拽一个Widget&#xff0c;…

pyqt qtdesinger 自定义控件

自定义控件包括3部分&#xff0c;自定义控件,提升控件和修改py文件。 1.自定义控件 在新建窗体时选择Widget。 这时这个窗体整个就是一个控件。 随便拖入些控件完成创建。保存。 命名为try_widget。 把ui文件转化为py文件。 自定义控件部分完成。 2.提升控件 新建一个QMain…

Microsoft Barcode控件详解

1、电脑无Microsoft BarCode插件&#xff0c;下载安装&#xff1a;&#xff08;链接已失效&#xff09;https://www.microsoft.com/zh-cn/download/details.aspx?id8913 2、安装后还是没有显示Microsoft BarCode插件&#xff0c;可以去下载MSBCODE9.OCX&#xff0c;通过CMD注…