linux基本功系列之mount命令实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基本功系列之mount命令实战相关的知识,希望对你有一定的参考价值。

前言

大家好,又见面了,我是沐风晓月,本文主要介绍mount命令的使用,更多内容请关注我的主页,后续会持续更新

一. mount命令的介绍

linux操作系统是一个树状结构,所有的文件从上往下,最上面是/ , 所有的文件都是挂载在不同的设备上的。 而mount命令就是用于将设备进行挂载,umount是用于将设备进行卸载。

直接访问分区无法使用,所以我们利用一个目录和分区挂载起来,只需要登录目录,就等同于登录了分区。也就可以对分区进行操作了。

这里需要了解两个概念:

  • 挂载 : 想要访问Linux中的根目录以外的文件,需要将它“关联”到根目录下的某一个目录来实现,这种关联操作就叫做“挂载”
  • 挂载点: 在挂载的概念中,被关联的目录就是挂载点

“挂载点”的目录有3个要求: (1)可以用mkdir命令新建目录(目录事先存在)。 (2)挂载点目录不可被其他进程使用到。 (3)挂载点下原有文件被隐藏。

二. 语法格式及常用选项

依据惯例,我们还是先查看帮助,使用 mount --help

[root@mufenggrow ~]# mount --help

用法:
 mount [-lhV]
 mount -a [选项]
 mount [选项] [--source] <源> | [--target] <目录>
 mount [选项] <源> <目录>
 mount <操作> <挂载点> [<目标>]

选项:
 -a, --all               挂载 fstab 中的所有文件系统
 -c, --no-canonicalize   不对路径规范化
 -f, --fake              空运行;跳过 mount(2) 系统调用
 -F, --fork              对每个设备禁用 fork(和 -a 选项一起使用)
 -T, --fstab <路径>      /etc/fstab 的替代文件
 -h, --help              显示此帮助并退出
 -i, --internal-only     不调用 mount.<类型> 助手程序
 -l, --show-labels       列出所有带有指定标签的挂载
 -n, --no-mtab           不写 /etc/mtab
 -o, --options <列表>    挂载选项列表,以英文逗号分隔
 -O, --test-opts <列表>  限制文件系统集合(和 -a 选项一起使用)
 -r, --read-only         以只读方式挂载文件系统(同 -o ro)
 -t, --types <列表>      限制文件系统类型集合
     --source <源>       指明源(路径、标签、uuid)
     --target <目标>     指明挂载点
 -v, --verbose           打印当前进行的操作
 -V, --version           显示版本信息并退出
 -w, --rw, --read-write  以读写方式挂载文件系统(默认)

 -h, --help     显示此帮助并退出
 -V, --version  输出版本信息并退出

源:
 -L, --label <标签>      同 LABEL=<label>
 -U, --uuid <uuid>       同 UUID=<uuid>
 LABEL=<标签>            按文件系统标签指定设备
 UUID=<uuid>             按文件系统 UUID 指定设备
 PARTLABEL=<标签>        按分区标签指定设备
 PARTUUID=<uuid>         按分区 UUID 指定设备
 <设备>                  按路径指定设备
 <目录>                  绑定挂载的挂载点(参阅 --bind/rbind)
 <文件>                  用于设置回环设备的常规文件

操作:
 -B, --bind              挂载其他位置的子树(同 -o bind)
 -M, --move              将子树移动到其他位置
 -R, --rbind             挂载其他位置的子树及其包含的所有挂载
 --make-shared           将子树标记为 共享
 --make-slave            将子树标记为 从属
 --make-private          将子树标记为 私有
 --make-unbindable       将子树标记为 不可绑定
 --make-rshared          递归地将整个子树标记为 共享
 --make-rslave           递归地将整个子树标记为 从属
 --make-rprivate         递归地将整个子树标记为 私有
 --make-runbindable      递归地将整个子树标记为 不可绑定


参数超多,实际上我们有些是用不到的,这里来做一下汇总:

挂载语法格式:

命令格式:mount [-t vfstype] [-o options] device dir

参数 解释
-r 以只读的形式挂载
-L 将含有特定标签的硬盘分割挂上
-t 指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-a 全部挂载,这个参数会读取/etc/fstab文件,然后将文件中的所有挂载操作执行一遍
-o 要用来描述设备或档案的挂接方式
-w 将文件系统安装为可写

这里重点说明一下 -t和-o参数

刚刚提到-t是指定档案的系统类型,一般有哪些类型呢?

类型 写法
光盘或者镜像 iso9660
文件网络共享 nfs
DOS fat16文件系统 msdos
auto 自动检测文件系统

接下来我们看看-o参数后面跟的选项

  • loop :用来把一个文件当成硬盘分区挂接上系统
  • ro :采用只读方式挂接设备
  • rw :采用读写方式挂接设备
  • iocharset :指定访问文件系统所用字符集,例如iocharset=utf8
  • remount :重新挂载

三. 参考案例

3.1 将iso镜像挂载到/mnt上

在vmware虚拟机上我们经常用mount命令挂载分区,比如将iso镜像挂载到/mnt上

[root@mufenggrow ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载

挂载完成后,我们可以进行查看:

3.2 把某个分区挂载到/sdb1上

有时候我们新加了一块分区,需要把/dev/sdb1分区挂载到/sdb1上,这时候要先创建./sdb1 。 并且要先把/dev/sdb1分区进行格式化然后才能挂载:

[root@mufenggrow ~]# mount /dev/sdb1 /sdb1

3.3 用只读的形式把/dev/sdb2挂载到/sdb2上

这里和刚才3.2的挂载方式一样,只要涉及到只读的形式,所以需要使用 -o 参数来指定只读的模式 也就是ro模式

[root@mufenggrow ~]# mount  -o ro  /dev/sdb2 /sdb2

3.4 设置自动挂载

想要设置自动挂载,我们只需要在配置文件写好配置,然后执行mount -a即可

比如: 要把iso镜像设置为自动挂载。

vim /etc/fstab

在配置文件中写入内容:

/dev/sr0  /mnt  iso9660  defaults,ro,loop  0 0 

然后保存退出,之后重新启动,或者使用mount -a进行测试,若测试完发现自动挂载了即可。

有时候会出现提示 type错误,这时候一般是镜像文件的格式不对,有可能不是默认的iso9660的格式,需要手动挂载后查看是什么类型。

df -T命令可以查看文件类型:

以前我们还用这个命令来挂载移动硬盘,U盘等,现在已经很少有这些操作了。

四. umount命令

卸载分区需要使用命令umount :

参数 解释
-a 卸除/etc/mtab中记录的所有文件系统;
-h 显示帮助;
-n 卸除时不要将信息存入/etc/mtab文件中;
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
-t <文件系统类型>:仅卸除选项中所指定的文件系统;
-v 执行时显示详细的信息; -V:显示版本信息。

常见用法:

umount -v /dev/sda1 通过设备名卸载 umount -v /mnt/mymount/ 通过挂载点卸载 umount -vl /mnt/mymount/ 延迟卸载

要注意的是: 在卸载分区的时候一定不能登陆分区卸载,否则会提示busy

这时候只要退出/mnt即可。

总结

mount 命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。