首先先说一下在Linux中一切皆文件(硬件设备也是文件),所有文件都是存放在以根目录为树形目录结构中;下面来说说一下什么是挂载
挂载:指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
注意:并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录
下面举个例子:
想通过命令行的方式访问某个U盘中的数据,如图所示为Linux系统文件目录和U盘的文件系统目录,
从图中我们可以看出,目前Linux和U盘文件系统分属两个文件系统,无法使用命令去找到U盘中的文件,此时则需要将两个系统挂载:在根目录下创建一个新的目录/sdb-u(sdb1),挂载效果如图如下图:
可以看到,U 盘文件系统已经成为 Linux 文件系统目录的一部分,此时访问 /sdb-u/ 就等同于访问 U 盘。
当 U 盘插入 Linux 后,系统给 U 盘分配一个目录文件(比如 sdb1),就位于 /dev/ 目录下(/dev/sdb1),但无法通过 /dev/sdb1/ 直接访问 U 盘数据,访问此目录只会提供给你此设备的一些基本信息(比如容量)
/dev:设备文件保存位置;根目录下的 /dev/ 目录文件负责所有的硬件设备文件,
总之,Linux 系统使用任何硬件设备,都必须将设备文件与已有目录文件进行挂载
将文件系统挂载到 Linux 系统上,就需要使用 mount 挂载命令
mount 命令的常用格式有以下三种:
[root@localhost ~]# mount [-l] 单纯使用 mount 命令,会显示出系统中已挂载的设备信息,使用 -l 选项,会额外显示出卷标名称
[root@localhost ~]# mount -a a 选项的含义是自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作; /etc/fstab 文件是文件自动挂载文件
[root@localhost ~]# mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
-t 系统类型:指定欲挂载的文件系统类型。Linux 常见的支持类型有 EXT2、EXT3、EXT4、iso9660(光盘格式)、vfat、reiserfs 等。如果不指定具体类型,挂载时 Linux 会自动检测。
-L 卷标名:除了使用设备文件名(例如 /dev/hdc6)之外,还可以利用文件系统的卷标名称进行挂载。
-n:在默认情况下,系统会将实际挂载的情况实时写入 /etc/mtab 文件中,但在某些场景下(例如单人维护模式),为了避免出现问题,会刻意不写入,此时就需要使用这个选项;
-o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值(defaults)
例如:查看系统中已经挂载的文件系统,注意有虚拟文件系统,
<--含义是,将 /devpts/分区挂载到了 /dev 目录上,文件系统是 devpts,具有读写权限。
挂载分区(直观的看出挂载的方式)
[root@localhost ~]# mkdir /mnt/disk1
#建立挂载点目录
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1
#挂载分区