目录:
- 1、CentOS挂载详解
- 2、centos新服务器的分区挂载
- 3、centos单目录挂载多块硬盘
- 4、centos7 添加硬盘 挂载硬盘
- 5、centos 四步搞定磁盘挂载
CentOS挂载详解
接前文, CentOS下ext4、vfat文件系统创建、修改 ,以及 swap分区管理
在Linux中,存储设备的使用一般分三步,分区,创建文件系统(格式化),挂载。
什么是挂载?个人理解,Linux通过倒树形的根文件系统来管理所有的文件,内核只能识别并管理根目录 / 所在的文件系统及其下的目录和文件。因此其他文件系统想要使用,都需要为其指定在现存目录下的访问地址。
将额外的文件系统,与现存的Linux能够识别的目录,建立起映射关系,实现 将现存目录作为访问额外文件系统的地址 的功能,这个过程称为 挂载 ;用于访问额外文件系统的,现存文件系统中的指定目录,称为 挂载点 。
挂载的逆过程,解除额外的文件系统与现存Linux能够识别的目录之间的映射关系,称为 卸载 。
挂载需要两个参数,挂载的设备或文件系统,挂载点;
1. 挂载点,是现有文件系统下的某个目录,是由我们自己指定的;
2. 要挂载的设备或文件系统,其信息要如何获得?
1. 如果要挂载的是磁盘,可以尝试用 fdisk -l 命令配合 df 和 free 命令
为了更直观的比较,可以加上grep以过滤显示结果,例如:
从结果中可以看到,swap分区只有sda3,并且大小和现有swap大小基本一样,可知swap分区已全部挂载。
已挂载磁盘只有sda1和sda2,sdb1没有挂载。
2. 使用 blkid -o format 命令
在format的多个值中比较推荐list或full,full模式下会显示设备名称、UUID和文件系统的类型
而list模式更便于我们阅读,此时会显示设备名称、文件系统类型、表现名称、挂载点(会显示挂载点或未挂载状态)和UUID。如下图,根据提示很容易可以看得出 /dev/sdb1 和 /dev/sr0 处于未挂载状态。
3. 使用 lsblk 命令
例如, lsblk -fmp ,不指定设备则显示所有块设备信息,很容易看到sbd1和sr0没有挂载点,说明他们处于未挂载状态。
通过上面三种方法,我们可以了解到目前尚未挂载的设备信息,即有哪些设备可以挂载。
1,挂载和卸载命令的参数:
挂载使用 mount 命令,设备、挂载点 两者都需要指明
卸载使用 umount 命令,设备、挂载点 两者只需要指明其一
2,一般挂载
命令格式:mount [-nrw] [-t vfstype] [-o options] device dir
device :指明要挂载的设备或文件系统,可以通过以下方式指定
1)设备文件名称:例如/dev/sda5,默认使用这种方式
2)卷标:-L 'LabelName',例如 -L 'MYDATA'
3)UUID:-U UUID,即使设备名称或者卷标改了,也不影响识别
4)伪文件系统(暂不介绍):proc,sysfs,devtmpfs,configfs
dir :挂载点
1)事先存在,并建议使用空目录,
2)如果是长期挂载,尽量不要使用mnt和media目录
3)处于busy状态(例如正在被访问的目录)的设备无法被卸载
mount命令本身选项 :
-r:readonly,只读挂载(整个分区只读);
-w:read and write, 读写挂载;
-n:默认情况下,设备挂载或卸载的操作会同步更新至 /etc/mtab 文件中;
-n用于禁止此特性:挂载但不更新 /etc/mtab 文件;
-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;
-L LABEL:挂载时以卷标的方式指明设备;
mount -L LABEL dir
-U UUID:挂载时以UUID的方式指明设备;
mount -U UUID dir
-o options :挂载选项,多用于定义挂载时文件系统的特性
sync/async:同步/异步操作;
atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
diratime/nodiratime:目录在被访问时是否更新其访问时间戳;
remount:重新挂载;
acl:支持使用facl功能;
# mount -o acl device dir
# tune2fs -o acl device
# mount -o remount,acl device dir #重新挂载并增加acl特性
ro:只读,-o ro 等效于 -r
rw:读写,-o rw 等效于 -w
dev/nodev:此设备上是否允许创建设备文件;
exec/noexec:是否允许运行此设备上的程序文件;
auto/noauto:是否支持自动挂载,即是否支持 mount -a ,如果是 noauto ,那么即使在 fstab 中加入记录,启动时也不会自动挂载该设备;
user/nouser:是否允许普通用户挂载此文件系统;
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:使用默认挂载特性: rw, suid, dev, exec, auto, nouser, async, relatime(默认特性和CentOS版本及内核版本有关)
特别的,如果指定的特性与defaults的默认特性冲突,以额外指定的特性为准,例如 mount -o defaults,noauto device dir ,默认特性是 auto ,额外指定 noauto ,device实际表现的挂载特性是 noauto 。
3,挂载可移动设备或回环设备
4,设置开机后自动挂载
修改配置文件 /etc/fstab ,该文件中每一行定义一个要挂载的文件系统及相关属性,每一行的内容分为6个字段:
(1) 要挂载的设备,可以是以下内容:
设备文件的名称,如/dev/sda1
设备的LABEL
设备的UUID,CentOS 7中较多使用此种方式
伪文件系统:如sysfs, proc, tmpfs等
(2) 挂载点路径
如果是swap类型的设备,挂载点就是 swap ;
(3) 文件系统类型,如ext4,xfs,btrfs,vfat等等;
(4) 挂载选项,也就是 mount -o 命令的那些选项:
defaults:使用默认挂载选项;
如果要同时指明多个挂载选项,彼此间以逗号分隔,如:defaults,acl,noatime,noexec
(5) 转储频率,已经很少使用:
0:从不备份;
1:每天备份;
2:每隔一天备份;
(6) 自检次序:
0:不自检;
1:首先自检,通常只能是根文件系统可用1;
2:次级自检;
1. 使用 findmnt 命令
findmnt 命令将列出所有已挂载的文件系统或者搜索出某个文件系统,是查看文件系统时很常用的命令之一。findmnt 命令能够在 /etc/fstab 、 /etc/mtab 或 /proc/self/mountinfo 这几个文件中进行搜索。
命令常用选项:
-l:表示采用列表形式输出结果,默认采用树形输出结果
--df 或 -D:以df类型输出结果,显示文件系统及设备空间使用情况
-t TYPE:只输出文件类型为TYPE的结果
参数:
findmnt可以指定设备或挂载点,输出相关结果,不带任何参数则输出所有结果,例如:
findmnt /dev/sda1
findmnt /
2. 使用 blkid 命令
blkid -o list ,在第一部分已经简单介绍过该命令的用法,这里不再重复。
3. 使用 lsblk 命令
lsblk -fp [device] ,第一部分也已经介绍过,这里不再重复。
4. 使用 df 命令
常用 df -hT 来查看 已挂载 设备的文件系统及其空间使用情况, -T 表示查看文件类型, -h 表示以方便识别的方式输出空间情况。
更多用法请看man手册。
5. 使用 mount 命令
直接使用 mount 命令,不带选项和参数,会输出所有已挂载的系统信息,里面可能有很多我们不需要的信息,常和grep一起使用以查看我们关注的内容。
如: mount | grep -E "(sd)|(sr)"
6. 使用 fdisk -l 命令
该命令是分区命令,因此只能看到能够进行分区操作的设备信息(比如光盘就不会显示),同时无论分区有没有挂载都会显示。
上面的命令可以简单分为
可以查看 设备信息: blkid , lsblk , fdisk
只能查看 设备信息: findmnt , df , mount
卸载使用命令 umount ,设备或挂载点任意指定其中之一即可: umount device|dir
卸载时有可能会遇到挂载点正在被其他进程访问,无法卸载的情况:
解决办法有2个:
1. 终止所有正在访问某挂载点的进程,比如使用命令 fuser -km /test (这个命令有可能导致其他进程出问题,生产环境慎用),或者kill掉访问挂载点的进程,然后再卸载。
2. 强制卸载: umount -l /test , umount -l 会等到挂载点空闲后再卸载,相对让人放心一些。
centos新服务器的分区挂载
购买新服务器后有数据盘,需要我们自己来挂载的。我们给服务器添加新的硬盘的时候都需要进行挂载操作,本文简要记录挂载操作过程。
查看硬盘信息
首先我们使用命令df -TH查看当前系统挂载的情况:
我们看到并没有挂载新的数据盘,数据盘是200多G的。
然后通过命令fdisk -l查看硬盘信息。
可以看到有两块硬盘/dev/vda和/dev/vdb,启动vda是系统盘,vdb是我们新增的数据盘。也就是说系统发现了新增的数据盘/dev/vdb,但并没有挂载。注意有时候新增数据盘不叫vdb,它有可能叫vde。
执行挂载命令
1、执行命令fdisk /dev/vdb,进入fdisk模式,开始对新增数据盘执行分区操作。
在回显信息中,输入n后回车,接下来的操作全部回车默认即可。在上图中最后回车回显的信息中告诉我们有一个200G的硬盘分区以及建立好了。
2、接下来输入p,回车,查看新建分区的详细信息。
如上图,接着输入w保存,将分区结果写入分区表中。
如回显信息如下,则说明分区成功:
3、执行命令partprobe,将新的分区表变更同步至操作系统。
4、执行以下命令,将新建分区文件系统设为系统所需格式。
mkfs -t ext4 /dev/vdb1
5、将新建的分区挂载到/mnt/datadisk挂载点,/mnt/datadisk是我们系统新建的一个挂载点,即目录,如果目录不存在要提前新建好,可以自己定义挂载目录。
mount /dev/vdb1 /mnt/datadisk
6、使用命令df -Th查看磁盘挂载情况。
上图中表示新的磁盘/dev/vdb1已经成功挂载到/mnt/datadisk。
开机自动挂载
挂载好的磁盘需要设置开机自动挂载,我们不采用/etc/fstab直接指定 /dev/vdb1的方法,而推荐使用UUID来配置自动挂载数据盘。
先执行命令blkid /dev/vdb1,查询磁盘分区的UUID:
/dev/vdb1: UUID="1d4e1d9d-d15c-1273-8442-2303b05b96ad" TYPE="ext4"
然后编辑/etc/fstab,在末尾增加一行:
UUID=1d4e1d9d-d15c-1273-8442-2303b05b96ad /mnt/datadisk ext4 defaults 1 1
把UUID和目录换成你自己的即可。
最后,重启机器,使用df -TH查看挂载情况,如果能看到新增的磁盘挂载信息则大功告成。
qq群:311602501
centos单目录挂载多块硬盘
同一目录无法重复挂载,后挂载的会覆盖之前挂载的磁盘。但是现在需要将2块磁盘并行挂载到同一目录。
使用 fdisk -l 查看是否有空余的磁盘可用。可以看到有二块4T磁盘分别为:/dev/sdb 、/dev/sdc
分别为2块硬盘创建分区,需要注意的是,与挂载单块磁盘不同,创建分区后需要修改分区类型。
fdisk -l 查看分区类型为Linux LVM则表示成功。
lvm_data是vg组的名字,可以自定义
-L是指定大小(可以从fdisk -l中查看每个硬盘大小累加)、-n是自定义lv的名称
到这里分区就创建完成了,后面的步骤和挂载单块磁盘一样
将分区挂载到需要保存文件的目录即可。
centos7 添加硬盘 挂载硬盘
本文仅适用于使用 fdisk 命令对一个不大于 2 TB 的数据盘执行分区操作。如果需要分区的数据盘大于 2 TB
服务器安装centos的时候,通常linux系统分区默认为3个分区,主分区最多4个,其他可根据自己的需要挂载。
/ 根分区,通常10-100G左右(根据总磁盘大小情况)
/boot 系统操作分区(100-500MB 足矣)
/swap 虚拟内存暂存分区(通常是内存的2倍,根据自己装系统的习惯会有所差异)
1、首先查看未指派的分区名称,有的不一样,我的分别是/dev/sda和/dev/sdb,sda是系统分区,sdb是存储数据分区。
[root@huoshi-111 ~]# fdisk -l
3、分区完成。输入fdisk -l查看信息
6.挂载分区
7.设置开机自动挂载
8.确认是否挂载成功
centos 四步搞定磁盘挂载
centos挂载磁盘是经常遇到的需求,比如新增了一块磁盘,需要通过命令挂载后才能使用。下面通过四步讲解一下,如何挂载磁盘。
第一步: 查看磁盘信息
第二步: 磁盘分区,看到上面的结果:/dev/vdb
第三步: 磁盘格式化
第四步: 挂载磁盘(建议永久挂载)
1.临时挂载: 重启后失效
2.永久挂载:重启自动挂载