目录:
- 一、挂载
- 二、挂载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共享
2、添加windows用户,账号密码都是test
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上看看~
/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才用