目录
1. 设置启动挂载
手动处理挂载不是很人性化,我们总需要让系统自动在启动时就进行挂载
直接去 /etc/fstab 内进行修改
1.1 启动挂载 /etc/fstab 及 /etc/mtab
【/etc/fstab】是启动时的配置文件,实际文件系统的挂载是记录到【/etc/mtab】与 【/proc/mounts】 这两个文件中
系统挂载限制:
- 根目录( / )是必须挂载的,而且一定要先于其他挂载点被挂载
- 其他挂载点必须为已建立的目录(可任意指定)但一定要遵守必需的系统目录架构原则(FHS)
- 所有挂载点在同一时间内,只能挂载一次
- 所有硬盘分区在同一时间内,只能挂载一次
- 如若进行卸载,必须先将工作目录(当前所处目录)移到挂载点(及其子目录)之外
查看 /etc/fstab 中的内容
[root@study ~] cat /etc/fstab
[设备 / UUID等] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]
范例:
假设我们每次启动都将【/dev/vda4】自动挂载到【/data/xfs】该如何操作?
1.首先,用nano编辑器将下面一行写入到【/etc/fstab】的最后面
[root@study ~] nano /etc/fstab
UUID = "e0fa7252-b374-4a06-987a-3cb14f415488" /data/xfs xfs defaults 0 0
2.观察【/dev/vda4】是否已经挂载,如已经挂载,请先将其卸载
[root@study ~] df
Filesystem 1K-blocks Used Available Use% Mounted On
/dev/vda4 1038336 32864 1005472 4% /data/xfs
[root@study ~] umount /dev/vda4
3.测试刚刚写入【/etc/fstab】的语法有无错误,如果此文件写错,可能导致Linux无法顺利启动完成。
[root@study ~] mount -a
[root@study ~] df /data/xfs
最终看到【/dev/vda4】被挂载起来的信息代表挂载成功,以后每次启动都会顺利地将此文件系统挂载起来。
4.万一【/etc/fstab】输入地数据错误,导致无法顺利启动成功,而进入单人维护模式中,可利用以下命令:
[root@study ~] mount -n -o remount,rw /
1.2 特殊设备 loop 挂载(镜像文件不刻录就挂载使用)
无需将文件刻录成光盘或 DVD 就能够读取内部的数据
1.2.0 挂载CD/DVD镜像文件
范例:
将CentOS 7.x 的DVD镜像文件进行挂载
[root@study ~] ll -h /tmp/CentOS-7.0-1406-x86-64-DVD.iso #查看镜像文件
-rw-r--r-- 1 root root 3.9G Jul 7 2014 /tmp/CentOS-7.0-1406-x86-64-DVD.iso
[root@study ~] mkdir /data/centos_dvd #建立空目录作为挂载点
[root@study ~] mount -o loop /tmp/CentOS-7.0-1406-x86-64-DVD.iso /data/centos_dvd #利用 loop 设备将镜像文件挂载到空目录/data/centos_dvd(挂载点是文件系统的入口)
[root@study ~] df /data/centos_dvd
Filesystem 1K-blocks Used Available Use% Mounted On
/dev/loop0 4050860 4050860 0 100% /data/centos_dvd
[root@study ~] ll /data/centos_dvd
total 607
-rw-r--r-- 1 500 502 14 Jul 5 2014 CentOS_BuildTag #DVD 内容
......
[root@study ~] umount /data/centos_dvd #卸载挂载点
无需将文件刻录成光盘或 DVD 就能够读取内部的数据,也可以在此文件中去修改文件,这也就是为什么许多镜像文件提供后,还得提供验证码(MD5)给用户确认该镜像文件没有问题
1.2.1 建立大文件以制作loop设备文件
解决系统的分区不合理情况
举例:
如果当初分区时,只划分了一个根目录( / )假设没有多余的容量进行额外分区,但根目录容量很大。此时制作出一个大文件,然后将这个文件挂载,如此一来感觉上就会多一个分区
1.建立大型文件
【dd】可用来建立空文件,假设要在【/srv/loopdev】建立一个空文件
[root@study ~] dd if=/dev/zero of=/srv/loopdev bs=1M count=512
512+0 records in #读入512条数据
512+0 records out #输出512条数据
536870912 Bytes (537 MB) copied, 12.3484 seconds, 43.5 MB/s
# if : input file,输入文件,/dev/zero 是会一直输出 0 的设备
# of : output file,将一堆 0 写入到后面的文件中(这里是/srv/loopdev)
# bs : 是block的size,就像文件系统那样的block意义
# count : 总共bs的个数,文件容量=bs*count
[root@study ~] ll -h /srv/loopdev
-rw-r--r-- 1 root root 512M Jun 25 19:46 /srv/loopdev #512M=1M*512
2.大型文件的格式化
默认xfs是不能格式化文件的,所以格式化文件要加入特别的参数:
[root@study ~] mkfs.xfs -f /srv/loopdev
[root@study ~] blkid /srv/loopdev
/srv/loopdev: UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" TYPE="xfs"
3.挂载
[root@study ~] mount -o loop UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" /mnt
[root@study ~] df /mnt
Filesystem 1K-blocks Used Available Use% Mounted On
/dev/loop0 520876 26372 494504 6% /mnt
4.将这个文件系统永远地自动挂载起来
[root@study ~] nano /etc/fstab #nano文本编辑器编辑【etc/fstab】启动时的配置文件
/srv/loopdev /data/file xfs defaults,loop 0 0
[root@study ~] umount /mnt #卸载临时挂载点
[root@study ~] mkdir /data/file #建立空目录作为新挂载点
[root@study ~] mount -a #挂载
[root@study ~] df /data/file #读取该目录中的数据
Filesystem 1K-blocks Used Available Use% Mounted On
/dev/loop0 520876 26372 494504 6% /data/file