挂载

目录:

  • 一、挂载
  • 二、挂载loop设备
  • 三、挂载网络资源
  • 四、挂载目录到另一个目录上
  • 五、挂载配置文件

一、挂载

1、什么是挂载

linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。

挂载好的文件、目录、设备以及特殊文件即可提供用户使用。除了操作系统调用的mount指令外,mount_root()会优先挂载(或称根目录) 。在这个情况下,操作系统会在调用setup前,先调用mount。

2、如何挂载

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

  • device挂载的设备:
  • 设备文件:如/dev/sda1
  • 卷标:如-L 'MYDATA'
  • UUID:如-U '0c50523c-43f1-45e7-85c0-a126711d406e'
  • 伪文件系统名称:proc, sysfs, devtmpfs, configfs
  • dir挂载点
  • 建议使用空目录,否则非目录下原来的数据会无法访问。
  • -t vsftype:指定挂载的设备上的文件系统
  • -r: readonly
  • -w: read and write 默认选择
  • -n: 不更新/etc/mtab, mount不可见
  • -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
  • -L 'LABEL': 以卷标指定挂载设备
  • -U 'UUID': 以UUID指定要挂载的设备
  • -B, --bind: 绑定目录到另一个目录上
  • -o options: (挂载文件系统的选项),多个选项使用逗号分隔
  • async:异步模式
  • sync:同步模式,内存更改时,同时写磁盘
  • atime/noatime:包含目录和文件
  • diratime/nodiratime:目录的访问时间戳
  • auto/noauto:是否支持自动挂载,是否支持-a选项
  • exec/noexec:是否支持将文件系统上运行应用程序
  • dev/nodev:是否支持在此文件系统上使用设备文件
  • suid/nosuid:是否支持suid和sgid权限
  • remount:重新挂载
  • ro:只读
  • rw: 读写
  • user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载
  • acl:启用此文件系统上的acl功能
  • loop: 使用loop设备
  • defaults:相当于rw, nosuid, dev, exec, auto, nouser, async

二、挂载文件设备(loop设备)

1、创建一个文件,大小随意,这里我创建1G

[root@CentOS6 ~]#dd if=/dev/zero of=/app/partfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 75.1955 s, 14.3 MB/s

2、对新创建的文件/app/partfile 创建文件系统

[root@CentOS6 ~]#mkfs.ext4 /app/partfile 
mke2fs 1.41.12 (17-May-2010)
/app/partfile is not a block special device.
Proceed anyway? (y,n) y

3、查看/app/partfile 的信息

[root@CentOS6 ~]#blkid /app/partfile 
/app/partfile: UUID="67047989-db3c-46cb-b5c8-b21129b76042" TYPE="ext4" 

4、把/app/partfile 挂载到一个目录下

[root@CentOS6 ~]#mount /app/partfile /mnt/part -o loop
[root@CentOS6 ~]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2      100660656 9092656  86448000  10% /
tmpfs             502056      76    501980   1% /dev/shm
/dev/sda3       50264772 1120976  46583796   3% /app
/dev/sda1         991512   34916    905396   4% /boot
[root@CentOS6 ~]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2      100660656 9092656  86448000  10% /
tmpfs             502056      76    501980   1% /dev/shm
/dev/sda3       50264772 1120976  46583796   3% /app
/dev/sda1         991512   34916    905396   4% /boot
/app/partfile     999320    1284    945608   1% /mnt/part

这样/app/partfile就可以当做一个块设备使用了。也可以当做U盘,拷贝到其他机器使用。

/etc/fstab配置格式:

/app/partfile /mnt/part  ext4 loop 0 0

三、挂载网络资源

这里我们用windows共享作为网络资源,然后挂载在Linux上。
1、配置window共享


设置window共享

2、添加windows用户,账号密码都是test


添加windows用户

3、把window共享资源挂载到Linux的/mnt/win目录上,并创建一个文件。

[root@CentOS6 ~]#mkdir /mnt/win
[root@CentOS6 ~]#mount -o username=test  //172.17.250.142/winshare /mnt/win
Password: 
[root@CentOS6 ~]#cd /mnt/win
[root@CentOS6 win]#ls
[root@CentOS6 win]#touch hello
[root@CentOS6 win]#ls
hello

4、上一步我们在共享文件夹创建了一个文件,我们到windows上看看~

image.png
image.png

/etc/fstab配置格式:

//172.17.250.142/winshare   /mnt/win cifs defaults,username=test,password=test 0 0

四、挂载目录到另一个目录上

我们把/app这个目录,挂载到/mnt/app上,就可以通过/mnt/app去访问/app的资源。

[root@CentOS6 win]#mkdir /mnt/app
[root@CentOS6 win]#mount -B /app /mnt/app
[root@CentOS6 win]#ls /mnt/app
a  apache24  partfile
[root@CentOS6 win]#ls /app
a  apache24  partfile

可以看到/mnt/app里的内容和/app一样

/etc/fstab配置格式:

/app /mnt/app   none  bind 0 0

五、挂载配置文件

  • mount命令只能临时挂载,重启系统后挂载信息会丢失。如果要保留挂载信息,需要配置/etc/fstab文件。
[root@CentOS6 ~]#vim /etc/fstab 
UUID=6baffe84-ec5a-4ea1-968a-7066a069e118 /                       ext4    defaults        1 1
UUID=ad4301e6-44a9-4494-81fc-47d69461ccf8 /app                    ext4    defaults        1 2
UUID=21e638ff-1075-43f1-85f9-295a6e5478a5 /boot                   ext4    defaults        1 2
UUID=895a55d3-407d-4c1a-9034-9ed6550b8338 swap                    swap    defaults        0 0
UUID=6b129c71-e51e-493a-92bd-34a6c27486c3 swap                    swap   defaults  0 0
#目录挂载在目录上
/app /mnt/app   none  bind 0 0
#windows共享挂载
//172.17.250.142/winshare   /mnt/win cifs defaults,username=test,password=test 0 0
#文件挂载在目录上
/app/partfile  /mnt/part               ext4   loop    0 0 
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

  • 每一行代表一个挂载点,每行从左到右共6列,每一列代表一个特性,格式如下:

|1|2 | 3 | 4 | 5| 6|
|:---:|:--------:| :--------: | :----: | :----: | :---: | :-----:|
|设备|挂载点 | 文件格式 | 挂载选项 | 转储频率| 自检次数|

  • 设备:建议使用UUID,设备UUID不会变动
  • LABEL: LABEL=""
  • UUID: UUID=""
  • 伪文件系统名称: proc, sysfs
  • 挂载选项:
    • default:相当于rw, nosuid, dev, exec, auto, nouser, async
  • 转储频率:
  • 0:不做备份
  • 1:每天转储
  • 2:每隔一天转储
  • 自检次序:
  • 0:不自检
  • 1:首先自检;一般只有rootfs才用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容