Linux入门之磁盘管理文件系统挂载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux入门之磁盘管理文件系统挂载相关的知识,希望对你有一定的参考价值。

Linux入门之磁盘管理(3)文件系统挂

当磁盘建立了分区,创建了文件系统,只是说明该设备可以用来存储,但是要想访问设备,就需要通过建立一个或多个挂载点,来提供给用户进行访问,在linux中,提供了强大的命令来用于实现文件系统的挂载及管理。


挂载命令的使用

mount 命令

用法:

mount  [option]    DEVICE  mountdir

DEVICE(要挂载的设备)

 设备名:如/dev/sdb1 /dev/hda2

 卷标名:-L  LABLE    -L mydata

 UUID -U  UUID

 伪文件系统:proc  sysfs  tmpfs  devpts

mountdir(挂载点):

 一般使用一个空目录,如果目录有内容,挂载此目录,内容被隐藏

option:

-t  vfstype :指定文件系统用于识别,比如ISO9660表示为镜像文件

-a  :安装/etc/fstab中指定的设备及挂载点进行挂载

-n  :挂载时不更新/etc/mtab

-r   : 只读挂载

-w  : 读写挂载

-L  LABEL :指定卷标名为挂载设备

-U  UUID :指定对应UUID的挂载设备

-B 或者 --bind :将一个目录当作设备进行挂载

-o OPTIONS:额外的挂载选项

async  :异步挂载

sync   :同步挂载

noatime/atime :不更新/更新挂载中所有文件(包含目录)的访问时间

nodiratime/diratime :不更新目录的访问时间/更新目录访问时间

auto/noauto :是否支持自动挂载,就是是否支持mount -a

exec/noexec :是否支持在此挂载点上运行程序文件

dev/nodev  :是否支持在此挂载点上使用设备文件

suid/nosuid  :是否支持此挂载点上suid 和 sgid权限位

remount    : 重新挂载

ro          :只读挂载

rw         :读写挂载

acl         :启用acl功能

user/nouser  :是否支持普通用户挂载此设备,默认为管理员才能使用

Defaults(一般默认挂载选项,这里排除tune2fs中使用 -o选项添加的额外挂载):

rw, suid, dev, exec , suid, nouser, async


卸载命令 

umount 命令

umount DEVICE | MOUNT_POINT  :指明挂载点目录或者挂载设备都可以卸载


命令使用案例:

查看挂载点列表

使用mount命令

mount      #直接输入mount表示查看当前系统所有挂载点

技术分享

使用findmnt命令

findmnt    #默认为查看所有,可以查看指定设备挂载状态
findmnt  /dev/sdb1  #查看/dev/sdb1的挂载信息

技术分享

可以通过查看系统文件映射文件来查看

cat  /proc/mounts     #查看所有被挂载的文件系统

技术分享


挂载设备

mount  /dev/sdb1  /mnt/sdb1  

#直接挂载
[[email protected] ~]# mount /dev/sdb1 /mnt/sdb1

解析:不指定挂载选项,且默认挂载选项没有额外的功能,是没有什么提示的

#查看/dev/sdb1的挂载属性
[[email protected] ~]# mount | grep ‘^/dev/sdb1‘
/dev/sdb1 on /mnt/sdb1 type ext2 (rw)
#查看更详细的信息
[[email protected] ~]# cat /proc/mounts | grep ‘^/dev/sdb1‘
/dev/sdb1 /mnt/sdb1 ext2 rw,seclabel,relatime,errors=continue,acl 0 0


卸载设备

umount  /dev/db1    #一般没有消息说明卸载成功,卸载时要停止对其文件使用,否则无法卸载


使用特定选项来挂载

#挂载为只读挂载点
[[email protected] ~]# mount -r /dev/sdb1 /mnt/sdb1
#再次写入数据,显示了错误提示:只读的文件系统
[[email protected] ~]# echo "data" >> /mnt/sdb1/file.log
-bash: /mnt/sdb1/file.log: Read-only file system
#重新挂载为可读可写
[[email protected] ~]# mount -o remount,rw /dev/sdb1
#查询挂载设备信息,多了rw
[[email protected] ~]# findmnt /dev/sdb1
TARGET    SOURCE    FSTYPE OPTIONS
/mnt/sdb1 /dev/sdb1 ext2   rw,relatime,seclabel,errors=continue,acl

注意:重新挂载不要再指明挂载点,因为上次挂载操作后,默认会在/etc/mtab保存列表信息,重新挂载会读取相应信息


挂载目录 

#将一个文件夹当设备挂载
[[email protected] ~]# mount --bind /boot /mnt/boot
#df查看的只是系统内核支持的文件系统类型,所有无法识别
[[email protected] ~]# df | grep ‘/boot‘
/dev/sda1         194241   34107    149894  19% /boot
#使用mount查看所有挂载点并找出/boot相关挂载,发现2个
[[email protected] ~]# mount | grep ‘/boot‘
/dev/sda1 on /boot type ext4 (rw)
/boot on /mnt/boot type none (rw,bind)

然后用ls分别查看两个挂载点信息:

技术分享

解析:发现两个挂载点的文件内容一样,这时因为,/boot本事是一个挂载点,设备为/dev/sda1

这时再使用挂载点挂载对应的目录,只是提供了两个访问入口


禁止普通用户在指定挂载点运行程序文件

#切换到/dev/sdb1的挂载点
[[email protected] ~]# cd /mnt/sdb1/
[[email protected] sdb1]# pwd
/mnt/sdb1
#创建一个脚本文件
[[email protected] sdb1]# echo "echo xxxx" > hello.sh
#添加所有用户有执行权限
[[email protected] sdb1]# chmod +x hello.sh 
#切换到普通用户
[[email protected] sdb1]# su hadoop
#因为普通用户为其它人,所有有执行权限可以执行
[[email protected] sdb1]$ ./hello.sh 
xxxx
#退出普通用户
[[email protected] sdb1]$ exit
exit
#挂载为禁止普通用户运行程序、脚步文件
[[email protected] sdb1]# mount -o remount,noexec /dev/sdb1
#再次切换
[[email protected] sdb1]# su hadoop
#即使对文件有执行权限,但是挂载点禁止了普通用户运行程序文件的行为
[[email protected] sdb1]$ ./hello.sh
bash: ./hello.sh: Permission denied


本文出自 “神剑特兰克斯” 博客,请务必保留此出处http://mengzhaofu.blog.51cto.com/10085198/1843600

以上是关于Linux入门之磁盘管理文件系统挂载的主要内容,如果未能解决你的问题,请参考以下文章

Linux入门之磁盘管理文件系统

linux入门--磁盘管理之分区格式化与挂载

Linux入门到放弃之六《磁盘配额3》

Linux入门之磁盘管理磁盘配额

linux 从入门到跑路

linux之磁盘管理,查看识别设备,磁盘的挂载卸载分区配额管理,文件系统