Centos硬盘挂载fdisk
一、Linux文件系统的
1、磁盘概念
①linux的所有设备都被抽象为一个文件,保存在/dev目录下
②设备名称
一般为 hd[a-z]或sd[a-z]([a-z]为分区号),hda一般是指IDE接口的硬盘,sda一般是指SATA接口的硬盘,如:hda
2、分区的概念
①为什么要分区
把不同资料,放入不同分区中管理,降低风险;大硬盘搜索范围大,效率低;磁盘配合只能对分区做设定;经常会操作,容易产生碎片
②查看分区和目录命令
fdisk
查看硬盘分区表
df
查看分区使用情况
du
查看文件占用空间
- 一个磁盘可以分为几个分区,每个分区当独立的磁盘,方便使用管理
- 任何有一个分区必须挂在某一个目录才能实现读写操作
- 设备名+分区号;如sda1,sda2,物理设备/dev/sdb,物理分区/dev/sdb1
3、LVM管理命令
**逻辑卷
**管理器(Logical Volume Manager,LVM):LVM将一个或者多个硬盘的分区在逻辑上的集合,当硬盘空间不够使用的时候,可以将其他的硬盘分区加入其中,实现磁盘的动态管理
4、基础术语
①物理存储介质–PM(The physical media)
这里指系统的存储设备:硬盘。是存储系统最低层的存储单元
②物理分区–PP(Physical Partions)
逻辑上相当于win中的C盘,D盘,物理上是一块硬盘的一部分。在机械硬盘中,本质是多个连续的柱面。一个物理分区,又称主分区,可以分成多个逻辑分区。
③物理卷—pv(Physical Volume)
物理卷在逻辑卷中处于最底层,他可以是实际物理硬盘上的分区,也可以是整个物理硬盘
④卷组–VG(Volumne Group)
PV的集合卷组建立在物理卷之上,是由一个或者多个物理卷组成的存储池,在卷组上创建一个或者多个逻辑卷,一个卷组中至少包含一个物理卷,在卷组建立后可以动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
⑤逻辑卷–LV(Logical Volume)
VG中划出来的一块逻辑磁盘,逻辑卷建立在卷组之上,是一个标准的块设备。卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组,在逻辑卷上可以建立文件系统。
⑥物理区域–PE(Physical Extent)
物理区域是物理卷中可分配的最小处理单元,每个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。物理区域的大小可以根据实际情况建立物理卷时指定,默认为4MB。物理区的大小一旦确定不能更改。同一卷组中的所有物理卷的物理区域大小一致
由VG是多个PE块组成,每个VG块的PE最大数是65534,每个PE大小4m*6553=256G, PE的值可以是4,8,16,32,64,PE越小,硬盘 的利用率越高
⑦逻辑区域–LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小,跟PE类似。
⑧卷组的描述区域**–(Volume Group Descriptor Area)**
卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。
⑨分区的架构
⑩磁盘的分区格式
电脑的分区格式一共两种:
- 是GUID(GTP)分区,最多支持128主分区,没有扩展分区和逻辑盘,支持2.2T容量以上的硬盘分区
- MBR分区,最多四个分区,支持2.2T一下的硬盘分区,一般用MBR分区
⑪MBR分区
主分区:最多只能创建4个,是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件,如果一个硬盘上需要超过 4 个以上的磁盘分区,那么就需要使用扩展分区。
扩展分区:一个扩展分区会占用一个主分区位置,如果使用扩展分区,那么一个物理硬盘上最多只能划分 3 个主分区和 1 个扩展分区。
逻辑分区:扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。一个扩展分区中的逻辑分区可以有任意多个。
说明:系统必须交换分区(swap),根分区(/)(其他主分区,扩展分区,逻辑分区都是在根分区目录上操作的)swap:是内存交换空间。由于swap并不会使用到目录树的挂载,因此用swap就不需要指定挂载点(cd不进去)
二、增加磁盘
1、虚拟机添加新的硬盘
2、查看新加的磁盘
fdisk -l
三、服务器新建磁盘空间
将新加的sdb磁盘分为两个分区sdb1,sdb2,公用一个卷组(vgdata01),分别改在到mysql(4G)数据目录:/data;oracle(6G) 数据目录:/u01
操作流程:
- 最磁盘进行物理分区
- 将分区设置为物理卷
- 将设置好的物理卷添加到现有的某一卷组或者创建新卷组
- 将卷组上的空间分配给逻辑卷
- 在逻辑卷上创建文件系统
- 将逻辑卷挂载到某一个目录进行使用
- 挂载信息写入/etc/fstab,每次启动后自动挂载硬盘四、
1、新建分区(PP)
[root ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xc54d922b 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):m //获取帮助
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):n //创建第一个分区
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): // 选择分区类型 --默认p直接回车
将使用默认回应 p。
分区号 (1-4, 默认 1): // 分区号--默认1 回车
第一个扇区 (2048-20971519, 默认 2048): //直接回车默认从2048个柱面开始划分,直接回车
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-20971519, 默认 20971519): +5G //设置第一个分区的大小
创建了一个新分区 1,类型为“Linux”,大小为 5 GiB。
命令(输入 m 获取帮助):n //创建分区
分区类型
p 主分区 (1个主分区,0个扩展分区,3空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): // 主分区 ---默认p 回车
将使用默认回应 p。
分区号 (2-4, 默认 2): //分区号 默认2 会策划
第一个扇区 (10487808-20971519, 默认 10487808): //直接回车默认从10487808个柱面开始划分,直接回车
上个扇区,+sectors 或 +size{K,M,G,T,P} (10487808-20971519, 默认 20971519): //剩余空间默认全部给当前创建分区
创建了一个新分区 2,类型为“Linux”,大小为 5 GiB。
命令(输入 m 获取帮助):p // 打印分区表信息
Disk /dev/sdb:10 GiB,10737418240 字节,20971520 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc54d922b
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 10487807 10485760 5G 83 Linux
/dev/sdb2 10487808 20971519 10483712 5G 83 Linux
命令(输入 m 获取帮助):w //保存添加的分区 将分区表写入磁盘并退出
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
2、创建物理卷(PV)
将新建的分区转化成物理卷,主要是添加LVM属性的信息并划分PE存储单元,多个一起设置pvcreate /dev/sdb{1,2,3,4,5}
[root ~]# pvcreate /dev/sdb
sdb sdb1 sdb2
[root ~]# pvcreate /dev/sdb
sdb sdb1 sdb2
[root ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cs lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 5.00g 5.00g
/dev/sdb2 lvm2 --- <5.00g <5.00g
[root ~]#
3、创建卷组(VG)
创建卷组vgdata,并将刚才的创建好的物理卷加入在卷组,默认PE的大小4MB,PE是卷组的最小存储单元,可以通过-s
参数修改大小
[root ~]# vgcreate vgdata /dev/sdb1 //创建卷组vgdata 将sdb1加入卷组
Volume group "vgdata" successfully created
[root ~]# vgextend vgdata /dev/sdb2 //将sdb2加入卷组
Volume group "vgdata" successfully extended
[root ~]# vgs //查看卷组信息
VG #PV #LV #SN Attr VSize VFree
cs 1 2 0 wz--n- <19.00g 0
vgdata 2 0 0 wz--n- 9.99g 9.99g
4、创建逻辑卷(LV)
创建逻辑卷,将卷组vgdata上面分割4G给新的逻辑卷lvdata1 ,将剩余的给新的逻辑卷lvdata2
[root ~]# lvcreate -L 4G -n lvdata01 vgdata //将vgdata卷组分4G给逻辑卷lvdata01
Logical volume "lvdata01" created.
[root ~]# lvcreate -l 100%FREE -n lvdata02 vgdata //将剩余的分配给lvdata02
Logical volume "lvdata02" created.
[root ~]# lvs //查看逻辑卷信息
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cs -wi-ao---- 17.00g
swap cs -wi-ao---- <2.00g
lvdata01 vgdata -wi-a----- 4.00g
lvdata02 vgdata -wi-a----- 5.99g
5、创建文件系统
使用命令mkfs.ext4
在逻辑卷lvdata01上创建ext4文件系统,操作之前用df -Th
查看当前系统文件系统,若为ext4,mkfs.ext4, 若为xfs, mkfs.xfs
[root ~]# mkf
mkfadumprd mkfontscale mkfs.ext2 mkfs.fat mkfs.vfat
mkfifo mkfs mkfs.ext3 mkfs.minix mkfs.xfs
mkfontdir mkfs.cramfs mkfs.ext4 mkfs.msdos
[root ~]# mkfs.xfs /dev/vgdata/lvdata01 //在逻辑卷lvdata01上创建文件系统xfs
meta-data=/dev/vgdata/lvdata01 isize=512 agcount=4, agsize=262144 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=1048576, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 334M 0 334M 0% /dev
tmpfs tmpfs 364M 0 364M 0% /dev/shm
tmpfs tmpfs 364M 5.8M 358M 2% /run
tmpfs tmpfs 364M 0 364M 0% /sys/fs/cgroup
/dev/mapper/cs-root xfs 17G 6.1G 11G 36% /
/dev/sda1 xfs 1014M 273M 742M 27% /boot
tmpfs tmpfs 73M 12K 73M 1% /run/user/42
tmpfs tmpfs 73M 4.0K 73M 1% /run/user/0
[root ~]# mkfs.xfs /dev/vgdata/lvdata01
mkfs.xfs: /dev/vgdata/lvdata01 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root ~]# mkfs.xfs /dev/vgdata/lvdata02 //在逻辑卷lvdata02上创建文件系统xfs
meta-data=/dev/vgdata/lvdata02 isize=512 agcount=4, agsize=392704 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=1570816, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
6、挂载逻辑卷
将新建的系统文件挂载到对应的目录上
[root ~]# mkdir -p /u01 /data
[root ~]# mount /d
data/ dev/
[root ~]# mount /dev/vgdata/lvdata01 /data
[root ~]# mount /dev/vgdata/lvdata02 /u01/
[root ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 334M 0 334M 0% /dev
tmpfs 364M 0 364M 0% /dev/shm
tmpfs 364M 5.8M 358M 2% /run
tmpfs 364M 0 364M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 6.1G 11G 36% /
/dev/sda1 1014M 273M 742M 27% /boot
tmpfs 73M 12K 73M 1% /run/user/42
tmpfs 73M 4.0K 73M 1% /run/user/0
/dev/mapper/vgdata-lvdata01 4.0G 61M 4.0G 2% /data
/dev/mapper/vgdata-lvdata02 6.0G 75M 6.0G 2% /u01
7、设置开机自动挂载
修改/etc/fstab 最后一行加入,保证开启挂载,编辑错误,服务器会出现重启故障
四、删除分区操作
删除需谨慎,会导致数据丢失,仅限于磁盘和系统没有任何关联的磁盘上操作,否则会导致服务器无法运行
1、删除自动挂载
删除/etc/fstab配置里的自动挂载命令
2、卸载目录挂载
[root ~]# umount /u01
3、删除逻辑分区
[root ~]# lvremove /dev/vgdata/lvdata01
Logical volume vgdata/lvdata01 contains a filesystem in use.
[root ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vgdata/lvdata01
LV Name lvdata01
VG Name vgdata
LV UUID BUujcK-yXpD-nQif-b9Ek-GMHv-JQIj-RQkQQb
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-10-12 03:56:26 -0400
LV Status available
# open 1
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/vgdata/lvdata02
LV Name lvdata02
VG Name vgdata
LV UUID NIyGf5-RN1y-Z5id-kW9X-TULL-f7zu-zIV7zR
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-10-12 03:57:26 -0400
LV Status available
# open 0
LV Size 5.99 GiB
Current LE 1534
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
--- Logical volume ---
LV Path /dev/cs/root
LV Name root
VG Name cs
LV UUID x3GVYY-nGCF-wrYf-IxJh-WfYr-paiF-VXnViH
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-10-08 06:58:20 -0400
LV Status available
# open 1
LV Size 17.00 GiB
Current LE 4352
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/cs/swap
LV Name swap
VG Name cs
LV UUID LsSXDG-qDL6-5neJ-PiIf-6A3d-94b0-fO3EXw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-10-08 06:58:20 -0400
LV Status available
# open 2
LV Size <2.00 GiB
Current LE 511
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
[root ~]# lvremove /dev/vgdata/lvdata01
Do you really want to remove active logical volume vgdata/lvdata01? [y/n]: y
Logical volume "lvdata01" successfully removed.
4、删除卷组
[root ~]# vgremove vgdata
Volume group "vgdata" successfully removed
[root ~]# vgd
vgdb vgdisplay
[root ~]# vgdisplay
--- Volume group ---
VG Name cs
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID zX4e5p-DXNx-J7Od-VTVI-hJqr-BuyG-OmEI1i
5、删除物理卷
[root ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):d
分区号 (1,2, 默认 2):
分区 2 已删除。
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
五、分区的扩容
给现有的分区扩容,将新加的sdc(10G) 全部分给/data
流程:
- 对磁盘进行物理分区
- 将分区设置为物理卷
- 将物理卷加到vgdata卷组
- 将卷组的空间分配给/data对应的逻辑卷
1、新建分区(PP)
对磁盘/dev/sdbc进行分区,分一个区
[root ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x28da6968 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-20971519, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-20971519, 默认 20971519):
创建了一个新分区 1,类型为“Linux”,大小为 10 GiB。
命令(输入 m 获取帮助):p
Disk /dev/sdc:10 GiB,10737418240 字节,20971520 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x28da6968
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 20971519 20969472 10G 83 Linux
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
2、创建物理卷(PV)
将分区设置为物理卷
[root ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
[root ~]#
3、物理卷添加到现有的卷组(VG)
将新建的物理卷/dev/sdc1添加到/u01所在卷组vgdata
[root ~]# df -h //查看u01所在的卷组
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 334M 0 334M 0% /dev
tmpfs 364M 0 364M 0% /dev/shm
tmpfs 364M 11M 353M 3% /run
tmpfs 364M 0 364M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 6.1G 11G 36% /
/dev/mapper/vgdata-lvdata01 4.0G 61M 4.0G 2% /data
/dev/mapper/vgdata-lvdata02 6.0G 75M 6.0G 2% /u01
/dev/sda1 1014M 273M 742M 27% /boot
tmpfs 73M 12K 73M 1% /run/user/42
tmpfs 73M 4.0K 73M 1% /run/user/0
[root ~]# vgextend vgdata /dev/sdc1 //将物理卷sdc1添加到vgdata卷组
Volume group "vgdata" successfully extended
4、将卷组空间分配给需要增加空间的逻辑卷(LV)
将卷组vgdata上剩余的空间分配给/u01所在卷
[root ~]# lvextend -l +100%FREE /dev/mapper/vgdata-lvdata01
Size of logical volume vgdata/lvdata01 changed from 4.00 GiB (1024 extents) to <14.00 GiB (3583 extents).
Logical volume vgdata/lvdata01 successfully resized.
5、更新/data对应的文件系统
[root ~]# xfs_growfs /dev/mapper/vgdata-lvdata01
meta-data=/dev/mapper/vgdata-lvdata01 isize=512 agcount=4, agsize=262144 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=1048576, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1048576 to 3668992
[root ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 334M 0 334M 0% /dev
tmpfs 364M 0 364M 0% /dev/shm
tmpfs 364M 11M 353M 3% /run
tmpfs 364M 0 364M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 6.1G 11G 36% /
/dev/mapper/vgdata-lvdata01 14G 133M 14G 1% /data
/dev/mapper/vgdata-lvdata02 6.0G 75M 6.0G 2% /u01
/dev/sda1 1014M 273M 742M 27% /boot
tmpfs 73M 12K 73M 1% /run/user/42
tmpfs 73M 4.0K 73M 1% /run/user/0
[root ~]#