mount 命令用来挂载文件系统。其基本命令格式为:mount -t type [-o options] device dirdevice:指定要挂载的设备,比如磁盘、光驱等。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://www.jszja.com/contents/79/1468.html

您的支持将是我们前进的动力!如对本篇文章有疑问或建议,请通过本站下方邮箱联系我们,让技术之家每天进步一点点!(●'◡'●)

linux挂载安卓手机命令,难得好文Linux mount 命令详解相关推荐

  1. 怎样进入android模式,安卓手机如何进入Recovery模式的通用方式详解

    2014-12-12 15:24:16 安卓手机如何进入Recovery模式的通用方式详解 标签:安卓 Recovery模式 教程 Recovery模式是什么?这里说的Recovery模式主要指的是安 ...

  2. linux挂载安卓手机,总结安卓手机挂载NFS与SMB的各种软件 含apk

    本帖最后由 510819776 于 2020-3-17 23:54 编辑 网络共享文件系统比较突出的就是windows的SMB协议与linux的NFS协议 但是一般的手机部分内核编译了cifs支持功能 ...

  3. linux连安卓手机版下载速度慢,解决 linux下载速度超级慢 的问题

    来源:https://zhidao.baidu.com/question/104273557.html (但是并没有解决我的问题!) 问题:linux下载速度超级慢 我安装了ubuntu linux ...

  4. android 4.0.4 usb调试,安卓手机4.0怎么打开usb调试?图文详解附视频

    安卓手机更新换代的太快,系统每次升级多少会有点不同 总会有那么点不适应,就连如何调试USB都不知道怎么设置了? 下面就来就讲讲目前主流品牌手机4.0手机USB调试. 大部分Android设备打开&qu ...

  5. android配置参数详解,安卓手机CPU与GPU等配置参数含义详解【详细介绍】

    我们在关注一些手机配置信息的时候,很多手机配置表上常常会标识CPU,GPU,RAM,ROM以及GSM,WCDMA等一系列英文配置参数的数据,而这一些相似的英文配置都代表了什么意思呢?关于这个问题,一起 ...

  6. linux挂载安卓手机,安卓USB设备U盘挂载工具(StickMount Pro)

    安卓USB设备挂载软件(StickMount Pro) 能在多台设备上通过OTG功能自动挂载和卸载USB大容量存储设备,例如Galaxy Nexus.Nexus 7和Nexus 10.当您使用OTG数 ...

  7. windows远程android传输文件,电脑(Linux/Windows)使用SSH远程登录安卓(Android)手机实现无线传输和管理文件(图文详解)-Go语言中文社区...

    电脑(Linux/Windows系统)使用SSH远程登录安卓(Android)手机实现无线传输和管理文件(图文详解) 温馨提示 本文只针对安卓(Android)手机!iPhone或者WP的手机用户,请 ...

  8. 安卓手机刷机liunx服务器_安卓手机跑起完整的Linux系统

    安卓手机现在大家几乎是人手一部,更新换代之后,旧手机除了长眠储藏室之外,是否还可以有别的用途呢?这里给大家一个新的选择,用废置的安卓手机跑起完整的Linux,作为学习和装逼之用也无不可. 最近在网上看 ...

  9. 安卓手机访问 linux系统文件下载,安卓手机跑起完整的Linux系统

    安卓手机现在大家几乎是人手一部,更新换代之后,旧手机除了长眠储藏室之外,是否还可以有别的用途呢?这里给大家一个新的选择,用废置的安卓手机跑起完整的Linux,作为学习和装逼之用也无不可. 最近在网上看 ...

最新文章

  1. 【生成函数基础题】hdu1085 hdu1028
  2. Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
  3. 单元格自适应宽度_最详细的Excel模块Openpyxl教程(二)-单元格操作详解
  4. 小程序底部弹窗css_微信小程序之animation底部弹窗动画(两种方法)
  5. DataWorks百问百答01:数据同步该用什么资源组
  6. 用python怎么下载_如何使用python下载视频
  7. mysql8和php7不能连接_php无法连接mysql8.x
  8. SpringCloud整合Hmily实现TCC分布式事务案例详解
  9. mockplus 原型设计工具
  10. 电脑分屏没有声音_Win10笔记本增加双屏显示器及解决没有声音的问题
  11. React-Redux 学习,转载
  12. chmod 777命令_实用的linux 命令(上)
  13. python-列表元素绝对值排序
  14. Python 书籍 搜索
  15. 计算机怎么设置java环境_怎么设置java环境变量
  16. java iw_java知识回顾 - osc_iwr5mti2的个人空间 - OSCHINA - 中文开源技术交流社区
  17. AMD 双核CPU补丁下载及安装方法
  18. 【教程】H5匿名信匿名短信一封来信程序去掉站长广告联盟方法
  19. matlab非线性整数优化,fmincon整数优化
  20. docker GraphDriver

热门文章

  1. 中国人工智能城市排名榜TOP 10公布;宁德时代将授权现代摩比斯使用CTP技术 | 美通社头条...
  2. git 常用命令及基本用法
  3. mac用完移动硬盘后 windows识别不出 解决方案
  4. 2016猴年春节有感,android基础面试题
  5. 转载:C# IO读取文件问题:正由另一进程使用
  6. qmui android导入项目,QMUI 学习一: 入门,如何添加QMUI框架到 android项目 ,并引入QMUI的主题Theme:...
  7. itextpdf读取PDF文件流报Rebuild failed: trailer not found at file pointer 846942
  8. 约瑟夫问题的几种解决方法
  9. HHVM 4.2 发布,加速计划释出的第一个版本
  10. 字符0、数字0和‘\0’