Liunx硬盘挂载和分区以及扩容
Linux上的硬盘和window的硬盘使用还是有区别的,Linux的磁盘空间必须要挂载到目录上才能使用
对Linux新增一块磁盘基本的操作步骤如下:
df -h
查看当前Linux系统上磁盘使用情况
lsblk
查看还没有挂载的磁盘
mount
进行挂载
vim /etc/fstab
设置开机自动挂载
对磁盘进行分区和扩展都相对麻烦一点
一、挂载新磁盘
1、新磁盘不做分区
-
查看Linux下的硬盘挂载的空间和使用空间
df -h
确认没有看到需要新挂载的盘 -
查看需要新挂载的盘是否安装在系统中
lsblk
-
进行挂载
-
先对新盘进行格式化为ext4格式,即创建ext4格式的文件系统(假设要挂载的新盘是/dev/vdb)
mkfs -t ext4 /dev/vdb
-
创建一个要挂载的目录
mkdir /u01
-
进行挂载
mount /dev/vdb /u01
-
配置开机启动挂载
vim /etc/fstab
添加:
/dev/vdb /u01 ext4 defaults 0 0
-
2、对新硬盘进行分区后挂载
-
说明
- 磁盘分区主要有MBR和GPT两种类型,通常情况下,我们的磁盘都是采用MBR分区表,但是MBR磁盘最大仅支持2T的空间,那么对于2T以上的空间就需要采用GPT分区表。本例中说明的是MBR类型。
- 对磁盘进行分区主要有两种方法,fdisk和parted,本例中是以fdisk来说明。
- 磁盘分区主要由主分区、扩展分区和逻辑分区组成,对于MBR分区类型,它的主分区最多只能有4个,或者3个主分区和1个扩展分区,在扩展分区上我们可以创建多个逻辑分区;主分区编号为1到4,逻辑分区5及之后;逻辑分区必须建立在扩展分区智商,而不是建立在主分区上。
-
对磁盘使用fdisk方式进行分区
-
fdisk的基本用法
-
fdisk -l
查看系统上的磁盘,找到需要分区的磁盘,比如说:/dev/vdb -
fdisk /dev/vdb
进入该设备,进行分区操作:
命令(输入m获取帮助):m
然后:输入n # 添加分区
然后:输入p # 添加主分区,默认主分区
然后:输入2 # 给分区编号
然后:直接回车 # 分区开始位置,默认就是接着前面一个分区的结束位置
然后:直接回车或者输入+10G # 指定分区大小,直接回车代表剩下的所有空间都作为此分区,+10G是指定大小为10G -
再次
fdisk -l
查看下添加了分区之后的磁盘情况 -
修改新增分区的类型
fdisk /dev/vdb
输入:t # 指定分区类型
然后输入:2 # 指定要改变哪个分区的类型
然后输入:L # 输入L可以查看分区类型的id了
然后输入:83 # 通过L查看到了83代表System为Linux类型
-
-
完成了分区之后,后续挂载操作与之前一样,先格式化新增的分区
mkfs -t ext4 /dev/vdb2
然后完成挂载
二、对磁盘进行扩容
1、LVM
针对于CentOS7来说(对于其他Linux系统没有实际操作,就不做表述),磁盘管理有LVM的形式,即逻辑盘卷管理,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。
- LVM是 Logical Volume Manager(逻辑卷管理)的简写
- PV:是物理的磁盘分区
- VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库统一管理了几个大的硬盘,形成了一个统一虚拟的存储资源池。
- LV:也就是从VG中划分的逻辑分区
2、非LVM的磁盘扩容
若是LVM管理的磁盘扩容主要是使用pvcreate、vgcreate、lvcreate等命令来进行,本例中主要是对非LVM管理的磁盘扩容来做说明,主要是使用fdisk、e2fsck、resize2fs等命令进行(可能还会用到growpart扩容工具,yum install cloud-utils-growpart下载)。
1. 扩展系统盘(根目录)
-
查看操作系统的内核版本,本例是针对于内核版本高于3.6.0的操作系统,一般CentOS7都满足,CentOS6可能不满足。
uname -a
-
下载扩容工具
yum install cloud-utils-growpart
可以用growpart
来检查自己系统中是否已经安装了扩容工具
-
查看目前系统盘总容量
fdisk -l
-
查看系统盘分区(根目录)“/dev/sda3”的容量
df -h
-
使用如下命令扩容系统盘分区
growpart 系统盘 分区编号
如:
growpart /dev/sda 3
[NOTE]
有如图所示的报错,可以先执行LANG=en_US.UTF-8
-
确认好原有分区文件系统,选择对应的命令扩展磁盘分区文件系统的大小
- ext*文件系统使用:
resize2fs 磁盘分区
命令,如:resize2fs /dev/sda3
- xfs文件系统使用:
xfs_growfs 磁盘分区
命令,如:xfs_growfs /dev/sda3
[NOTE]
可用blkid 磁盘分区
命令查看文件系统,如:blkid /dev/sda3
,其中TYPE显示的结果为文件系统
- ext*文件系统使用:
-
完成操作之后再次检查确认
df -Th
确认根目录的大小已经完成扩容
-
对于内核版本低于3.6.0的主要是在扩容磁盘分区之后,做磁盘分区文件系统的扩展之前需要重启下服务器,具体的操作可以自行尝试一下。
2. 扩展数据盘(非根目录)
还是以CentOS7和MBR分区为例,扩展数据盘主要可以分为新增MBR分区和扩大已有的MBR分区。
-
新增MBR分区
- 使用fdisk命令新增一个主分区,操作步骤与对新磁盘进行分区类似
- 执行
partprobe
命令将新的分区表变更同步至操作系统 - 为新建的分区设置文件系统,建议与已有的文件系统一样,命令为
mkfs -t 文件系统 磁盘分区
如:mkfs -t ext4 /dev/vdb2
,mkfs -t xfs /dev/vdb2
- 进行挂载,若需要挂载到一个非空的目录,例如挂载到现有的目录下,直接挂载会使得该目录下原本的子目录和文件被隐藏,所以,可以该目录下的文件先做迁移,新分区挂载成功后再迁移回来
-
扩大已有的MBR分区
- 需要先卸载磁盘分区,所以生产环境下是会影响业务的使用的,需要注意
umount 磁盘分区
- 使用fdisk命令,先删除待扩大的分区,然后重新建立分区,编号与原分区编号一致
[NOTE]
新建分区时需要注意,选择的起始磁柱值与原分区的要一直,选择的截止磁柱值不能小于原分区的值,新分区的编号要与原分区的标号一直,不然可能会导致原数据的丢失。 - 执行
partprobe
命令将新的分区表变更同步至操作系统 - 根据磁盘的文件系统的不同,分别执行一下操作
若磁盘文件系统为ext*,则先用e2fsck -f 磁盘分区
命令检查磁盘分区文件系统的正确性,然后用resize2fs 磁盘分区
命令来扩展磁盘分区系统的大小,然后对扩大后的分区进行挂载
若磁盘文件系统为xfs,则先对扩大后的分区进行挂载,然后使用xfs_growfs 磁盘分区
的命令来扩展磁盘分区文件系统的大小 - 用
df -Th
命令来检查数据盘的扩展是否成功完成
- 需要先卸载磁盘分区,所以生产环境下是会影响业务的使用的,需要注意
三、设置开机自动挂载磁盘分区
新增了磁盘或者新建了分区后进行了临时挂载,服务器重启后就需要再次挂载,这里可以设置开机自动挂载磁盘分区,主要是修改“/etc/fstab”文件,为了避免一些情况下服务器重启后磁盘分区名称发生变化(例如一些云服务器在重启后云中设备的顺序编码可能发生改变),推荐使用UUID来配置自动挂载磁盘分区。
-
查询磁盘分区
blkid 磁盘分区
结果中有UUID的部分 -
修改“/etc/fstab”文件
vim /etc/fstab
在文件末尾处添加如“UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /mnt/sdc ext4 defaults 0 2”的内容[NOTE
第一列为UUID
第二列为磁盘分区的挂载目录
第三列为磁盘分区文件系统格式
第四列为磁盘分区的挂载选项,此处通常设置为defaults即可
第五列为Linux dump备份的选项,0表示不使用,1表示使用,现在通常不使用dump备份,此处设置为0即可。
第六列为fsck选项,即开机时是否使用fsck检查磁盘,0表示不检查,挂载点为根目录的分区,此处必须填写1,其他的分区只能从2开始,系统为按照数字从小到大依次检查下去 -
修改完成后可以
mount -a
来检查一下。