Windows系统mount挂载,给磁盘分区提供一个盘符(C,D,E,…)。比如插入移动硬盘后系统自动分配给了它I:这个过程其实就是挂载,退出移动硬盘后的时候进行安全弹出,其实就是卸载unmount。
Linux系统和Windows不同,win可以有C,D…多个目录,Linux只有一个根目录/。在按装Linux系统时,自定义创建的所有分区都在/下的某个位置,比如/run等等。
linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
如:插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中对CD中的内容进行管理。
参考文献:什么是挂载
[root@CncLucZK ~]# mount [-l]
#单纯使用 mount 命令,会显示出系统中已挂载的设备信息,使用 -l 选项,会额外显示出卷标名称
命令测试:
[root@CncLucZK test]# mount -l
/dev/vda1 on / type ext4 (rw,relatime)
...
[root@localhost ~]# mount -a
-a 选项的含义是自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。简单介绍一下 /etc/fstab 文件,此文件是自动挂载文件,系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据该文件的配置,系统会自动挂载指定设备。
[root@CncLucZK ~]# mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
选项 | 功能 |
---|---|
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@CncLucZK test]# mount #查看系统中已经挂载的文件系统,注意有虚拟文件系统
#含义是,将 /dev/sda3 分区挂载到了 / 目录上,文件系统是 ext4,具有读写权限
/dev/sda3 on / type ext4 (rw)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=923060k,nr_inodes=230765,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext4 (rw)
[root@CncLucZK ~]# mount -o remount noexec /boot
#重新挂载 /boot 分区,并使用 noexec 权限
[root@CncLucZK sh]# cd /boot
#写一个 shell 脚本,看是否会运行
[root@localhost boot]#vim demo1.sh
#!/bin/bash
n=10
str1=HelloWorld${n} str2="linux \"shell\"${n}"
str3='string ${n}'echo $str1
echo $str2
echo $str3[root@CncLucZK boot]# chmod 755 demo1.sh
[root@CncLucZK boot]# . demo1.sh
-bash:./demo1.sh:权限不够
#虽然赋予了demo1.sh执行权限,但是仍然无法执行
[root@CncLucZK ~]# mount -o remount exec /boot
#记得改回来,否则会影响系统启动
对于特殊选项的修改,除非特殊场景下需要,否则不建议大家随意修改,非常容易造成系统出现问题,而且还找不到问题的根源。
root@CncLucZK ~]# mkdir /mnt/disk1
#建立挂载点目录
[root@CncLucZK ~]# mount /dev/sdb1 /mnt/disk1
#挂载分区
[root@www ~]# df /mnt #显示mnt目录下的分区信息
Filesystem 1K-blocks Used Available Use% Mounted on
.....中间省略.....
/dev/sdb1 1976312 42072 1833836 3% /mnt/disk1
[root@CncLucZK ~]# vi /etc/fstab
通过命令 : vim /etc/fstab 来查看永久挂载的配置文件 , /dev/mapper/centos-root / 表示的是我们之前在 df 命令下看到的逻辑卷的那个 , UUID=52b169f8-e31e-44e3-ac26-3bc74fe9e3e9 /boot 0 0 这个表示的是启动目录的挂载点 , mpper/centos-swap 这个表示的虚拟内存的挂载 , 默认情况下是挂载了三块硬盘 , 现在我们来把那块 sdb1 硬盘也挂碍上去 .
该文件由六个部分组成
1:要使用的设备—可以使用UUID,也可以使用设备文件.可以使用blkid命令查看设备的UUID号
2.可以看到上面的 sdb1的信息 , 使用命令 : vim /etc/fstab 来对永久挂载的配置文件进行编辑 .
vim /etc/fstab
...
/dev/sdb1 /mnt/disk1 ext4 default 0 0
1 2 3 4 5 6
第二部分:写挂载点,已经存在直接写,不存在使用mkdir来创建
第三部分:文件系统类型
第四部分:挂载时,应用于设备的自定义选项,defaults是必须的
第五和第六部分:转存标志和fsck顺序
转存标志:用于生成设备内容的备份,
0:表示不需要备份
1:表示需要备份
fsck:当有多个文件系统需要检查时,检查的顺序。
0表示不需要检查,开机直接挂载
1表示检查后第一个挂载
2表示检查后第二个挂载
使用mount -a命令 检查书写格式是否有误 , 如果 mount -a 没有什么报错 , 则是表示配置文件书写正确 , 如果报错则书写错误 , 记得写完配置文件后wq(保存退出后一定要使用 mount -a 来检查) , 不然配置文件写错了后 , 再来开机是开不了机的 .
然后我们来重启一下这个操作系统 , 使用命令 : reboot
然后再来使用命令 df 命令查看 sdb1 是否挂载上去了 。
参考文献:Linux使用fdisk进行分区
[root@CncLucZK ~]# umount [-fn] 设备文件名或挂载点
注意,卸载命令后面既可以加设备文件名,也可以加挂载点,不过只能二选一,比如:
[root@CncLucZK ~]# umount /mnt/usb
#卸载U盘挂载点
[root@CncLucZK ~]# umount /mnt/cdrom
#卸载光盘挂载点
[root@CncLucZK ~]# umount /dev/sr0
#命令加设备文件名,同样是可以卸载的[root@CncLucZK ~]# mount /dev/sr0 /mnt/cdrom/
如果加了两个(如下所示),从理论上分析,会对光驱卸载两次,当然,卸载第二次的时候就会报错。
[root@CncLucZK ~]# cd /mnt/cdrom/
#进入光盘挂载点
[root@CncLucZK cdrom]# umount /mnt/cdrom/
umount: /mnt/cdrom: device is busy.
#报错,设备正忙
这种报错是因为我们已经进入了挂载点,因此,如果要卸载某硬件设备,在执行 umount 命令之前,用户须退出挂载目录。
卸载硬件设备成功与否,除了执行 umount 命令不报错之外,还可以使用 df 命令或
mount -l
来查看目标设备是否还挂载在系统中。
参考文献:
Linux umount命令:卸载文件系统
Linux 磁盘管理