目录
一、基础概念
1.1 文件系统类型
1.2 主分区、扩展分区、逻辑分区三者关系
1.3 UUID
1.4 lvm逻辑卷管理系统
二. 常用命令
2.1 查看命令
2.2 分区命令
2.3 格式化命令
1.4 挂载命令
三、扩容根目录
一、基础概念
1.1 文件系统类型
文件系统类型决定了向分区中存放、读取数据的方式和效率。
1.XFS文件系统
存放文件和目录数据的分区 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间 CenOS 7系统中默认使用的文件系统
2.EXT4(第四代扩展文件系统)
用于存放目录和数据的分区 典型的日志型文件系统 EXT4(CentOS 6系统的默认文件系统)FAT32、NTFS、LVM逻辑卷
3.Swap交换文件系统 (相当于Windows系统下的虚拟内存)
为Linux系统建立交换分区 一般设置为物理内存的1.5~2倍
1.2 主分区、扩展分区、逻辑分区三者关系
一个硬盘最多可以有4个主分区,最多1个扩展分区,逻辑分区若干个
硬盘的容量=主分区的容量+扩展分区的容量
扩展分区的容量=各个逻辑分区的容量之和
1.3 UUID
UUID是硬盘分区后的一个唯一表示符
假设机器装有两块串口硬盘,Linux会按照识别顺序对第一个识别出的硬盘命名为/dev/sda,对第二块识别出的硬盘命名为/dev/sdb,但每次机器开机读取到硬盘顺序是随机的,可能会出现sda下次开机就变成sdb,会导致系统无法启动,linux是通过UUID实现的。
-
挂载文件系统:UUID 可以用于指定要挂载的文件系统,而不必依赖于设备文件名。这样可以确保在更改硬件配置后,仍然能够正确地挂载目标文件系统。
-
文件系统标识:通过 UUID,可以唯一标识和识别文件系统。这对于在文件系统表(如/etc/fstab)中设置自动挂载或执行其他与特定文件系统相关的任务非常有用。
-
磁盘标识:对于硬盘驱动器或其他存储设备,UUID 可以用于唯一标识它们。这对于在安装系统时选择正确的磁盘或进行备份和恢复操作非常重要。
1.4 lvm逻辑卷管理系统
安装lvm2 yum install -y lvm2
用了LVM逻辑卷管理,根文件系统建立在卷组(VG)centos上的逻辑卷(LV)上,逻辑卷名是root,而不是直接建在硬盘分区上
磁盘:最基础的存在,物理磁盘
PV:physical volume 物理卷,同一磁盘可划分为多个物理卷,一个pv=磁盘的一个分区(sdb1)
VG:volume group 卷组,一个到多个PV可组成一个卷组
LV:logical volue 逻辑卷,卷组可划分为多个逻辑卷
挂载点:lv与挂载点是1:1的关系,但lv可以扩容。
综上:Linux的磁盘管理其实就是把物理磁盘先进行划分,分成一块块pv,然后对pv进行分组形成vg,再将vg分配给lv,最后将lv挂载到挂载点上进行使用。之所以进行这么多层次的划分,就是为了能灵活的对磁盘进行逻辑上的区分使用。
1.5 设备信息
二. 常用命令
2.1 查看命令
df -Th lsblk fdisk -l blkid cat /etc/fstab
df -Th
该命令用于显示文件系统的磁盘使用情况和空间信息,-T属性查看磁盘类型
[root@lgb /]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 50G 6.4G 41G 14% /
devtmpfs devtmpfs 858M 0 858M 0% /dev
tmpfs tmpfs 868M 0 868M 0% /dev/shm
tmpfs tmpfs 868M 592K 867M 1% /run
tmpfs tmpfs 868M 0 868M 0% /sys/fs/cgroup
tmpfs tmpfs 174M 0 174M 0% /run/user/1000
overlay overlay 50G 6.4G 41G 14% /var/lib/docker/overlay2/15c6f723c176dd1f204a10a2e110ab9c8c722dd4e79c84d9647f39868ef02844/merged
lsblk
该命令显示了系统中所有块设备(包括硬盘和其他存储设备)的信息,/dev/vda中的vda(Virtual Disk Adapter)虚拟磁盘适配器,因为是云主机所以是vda,如果你使用的是Vmware的虚拟机,此处应该是/dev/sda,sd表示物理scsi磁盘适配器,a表示是主机识别到的第一块物理scsi磁盘。vda1中的1表示vda磁盘的第一个分区。
disk-磁盘,part-分区,lvm-逻辑分区
[root@lgb /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
fdisk -l
查看分区信息和接入磁盘总量,“Disk /dev/vda: 53.7 GB” 表示接入的vda设备有53.7G,注意这里会对应Vmware的磁盘信息,Vmware更改虚拟机设置扩容sda或者新增sdb此处都会更新,但再分区前还不能使用,可以用来检测在物理层面是否扩容或新增成功。
[root@lgb admin]# fdisk -l
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b2d99
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 104856254 52427103+ 83 Linux
blkid
查看UUID
[root@lgb admin]# blkid
/dev/vda1: UUID="1114fe9e-2309-4580-b183-d778e6d97397" TYPE="ext4"
cat /etc/fstab
查看uuid挂载信息,此处将/dev/vda1设备挂载到根目录/
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
[root@lgb admin]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 11 02:52:01 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1114fe9e-2309-4580-b183-d778e6d97397 / ext4 defaults 1 1
2.2 分区命令
fdisk
-------------------
e 新建主分区
p 新建逻辑分区
-------------------
n 新建分区
p 显示当前磁盘分区表
-------------------
fdisk 对磁盘进行分区,会有终端提示输入
新建分区后如果想更改sdb1分区的文件类型,输入t,输入对应文件类型的代码,如果想要使用lvm逻辑卷,需要更改成8e(lvm)类型,lvm可以再/dev/sdb1的基础上再往下分出若干个逻辑区。
83表示Linux中的XFS 分区或EXT4分区,8e表示LVM逻辑卷,82表示swap分区
2.3 格式化命令
格式化sdb1分区,顺序:分区sdb1(默认类型是83,ext4或xfs,可通过fdisk更改类型) -- 格式化sdb1 -- 挂载指定目录
格式化分区(注意是分区,例如/dev/sda2指sda硬盘的第二个分区),格式化后自动生成UUID
mkfs.ext4 /dev/sdb1
1.4 挂载命令
mount /dev/sdb1 /data
将/dev/sdb1 挂载到 /data目录
注意/dev/sdb可以看做是一个独立的物理磁盘,而/dev/sdb1则是/dev/sdb磁盘下的一个分区(实际就是/dev/sdb/sdb1,但通常表达成/dev/sdb1),一个物理磁盘下可以有多个分区(类似于windows一大块硬盘分成C、D、E盘...)
新磁盘手动挂载后,需要将信息写入/etc/fstab,否则重启后挂载会失效。
三、扩容根目录
Linux系统再不指定目录的情况下数据都会存储在根目录/之下,久而久之,就会出现根目录磁盘用满的情况,那就需要在不影响已有数据的情况下扩容根目录
扩容linux根目录步骤:vmware扩容原有硬盘(注意不是添加磁盘) -- fdisk分区(注意仍然是原有磁盘,一般是sda,我们扩容sda,不是新加入sd*,注意w保存) -- 格式化新分区(一般是sda3或者sda4,不与老的sd*重复即可) -- 创建pv物理卷 -- 将pv物理卷加入名为centos的vg卷组 -- 拓展lv名为root的lv逻辑卷(lv路径为/dev/mapper/centos-root或/dev/centos/root) -- 扩容文件系统 -- df -Th查看
df -Th可以发现,/dev/mapper/centos-root 设备默认挂载在linux系统根目录,lvextent命令可以使用/dev/mapper/centos-root,也可以使用/dev/centos/root,两者是等价的。
参考文档:
磁盘与文件系统管理_linux ext4 83_Sq夏颜的博客-CSDN博客
https://www.cnblogs.com/-wenli/p/10354807.html
uuid解释
硬盘分区的UUID-CSDN博客
vg pv lv 理解centos 7磁盘扩容、扩展分区/dev/mapper/centos-root_/dev/mapper/centos-root 扩容_阿通666的博客-CSDN博客
Linux磁盘管理(磁盘、pv、vg、lv、挂载点之间的关系及常用命令)_pv lv vg_beautyofmath的博客-CSDN博客
mapper机制理解
cnblogs.com/amoyzhu/p/6626423.html
扩容根目录
VM虚拟机中Linux扩展磁盘空间的方法_wm扩展空间后_老马农的博客-CSDN博客