在Linux系统中“一切皆文件”,所有文件都放置在以“/
”为根目录的树形目录结构中。在Linux看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。因此要在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用,这个合二为一的过程称为“挂载”。如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,通过命令行方式是无法找到。
挂载,指的就是将设备文件中的顶级目录连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
需要注意的是,并非根目录下的任意一个目录都可以作为挂载点,因为挂载操作会使得原有目录中文件被隐藏。因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。
- 我们通过mount命令进行挂载,mount命令的常用格式如下:
- mount [-l]
使用mount命令,会显示出系统中已挂载的设备信息,使用-l选项,会额外显示出卷标名称。
root@DESKTOP-FRA3DA2:~# mount -l
rootfs on / type wslfs (rw,noatime)
none on /dev type tmpfs (rw,noatime,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
...
C:\ on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)
D:\ on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000,case=off)
...
- mount -a
-a选项的含义是自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。
/etc/fstab 文件,此文件是自动挂载文件,系统开机时会主动读取/etc/fstab中的内容,根据该文件的配置,系统会自动挂载指定设备。
- mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
-t 系统类型:指定欲挂载的文件系统类型。Linux常见的支持类型有EXT2、EXT3、EXT4、iso9660(光盘格式)、vfat、reiserfs 等。如果不指定具体类型,挂载时Linux会自动检测。
-L 卷标名:除了使用设备文件名(例如 /dev/hdc6)之外,还可以利用文件系统的卷标名称进行挂载。
-n:在默认情况下,系统会将实际挂载的情况实时写入/etc/mtab文件中,但在某些场景下(例如单人维护模式),为了避免出现问题,会刻意不写入,此时就需要使用这个选项;
-o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值(defaults)。
特殊选项如下:
参数 | 含义 |
---|---|
rw/ro | 是否对挂载的文件系统拥有读写权限,rw为默认值,表示拥有读写权限;ro表示只读权限。 |
async/sync | 此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async。 |
dev/nodev | 是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 nodev。 |
auto/noauto | 是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。 |
suid/nosuid | 设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。 |
exec/noexec | 设定在文件系统中是否允许执行可执行文件,默认是允许。 |
user/nouser | 设定此文件系统是否允许让普通用户使用mount执行实现挂载,默认是不允许(nouser),仅有 root 可以。 |
defaults | 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。 |
remount | 重新挂载已挂载的文件系统,一般用于指定修改特殊权限。 |
root@DESKTOP-FRA3DA2:~# mkdir /mnt/disk1 #建立挂载点目录
root@DESKTOP-FRA3DA2:~# mount /dev/sdb1 /mnt/disk1 #挂载分区,将/dev/sdb1挂载到/mnt/disk1上
- 我们可以通过unmont命令进行卸载设备,命令如下:
unmount 设备文件名/挂载点
要卸载某硬件设备,在执行umount命令之前,用户需退出挂载目录。