2023年11月25日发(作者:)

Linux磁盘分区详解(新建分区,现有分区扩容,分区减容)

⽬录

⼀、Linux⽂件系统简介

1、磁盘概念

Linux所有设备都被抽象为⼀个⽂件,保存在/dev⽬录下

设备名称⼀般为 hd[a-z]或sd[a-z]([a-z]为分区号),hda⼀般是指IDE接⼝的硬盘,sda⼀般是指SATA接⼝的硬盘,如:hda

2、分区的概念

Q:为什么要分区?可以把不同资料,放⼊不同分区中管理,降低风险;⼤硬盘搜索范围⼤,效率低;磁盘配合只能对分区做设定;经常会操

作,容易产⽣碎⽚。

Q:常⽤查看分区和⽬录命令:fdisk查看硬盘分区表;df:查看分区使⽤情况;du: 查看⽂件占⽤空间情况

5、 逻辑卷-----LV(Logical Volume)

逻辑分区:扩展分区不能直接使⽤,它必须经过第⼆次分割成为⼀个⼀个的逻辑分区,然后才可以使⽤。⼀个扩展分区中的逻辑分区可以有

任意多个。

说明:系统必须交换分区(swap),根分区(/)(其他主分区,扩展分区,逻辑分区都是在根分区⽬录上操作的):是内存交换空间。由

三、服务器新建磁盘空间

将新加的sdb磁盘(10G)分为两个区,sdb1),sdb2,共⽤⼀个卷组(vgdata01),分别挂载到mysql(4G)数据⽬录:/data;

oracle(6G)数据⽬录:/u01

其⼤概流程为:

对磁盘进⾏物理分区

将分区设置为物理卷

[root@CentOS7-0003 /]# fdisk /dev/sdb

欢迎使⽤ fdisk (util-linux 2.23.2)

更改将停留在内存中,直到您决定将更改写⼊磁盘。

使⽤写⼊命令前请三思。

Device does not contain a recognized partition table

使⽤磁盘标识符 0x4319fbfa 创建新的 DOS 磁盘标签。

命令(输⼊ m 获取帮助)n //添加第⼀个分区

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): // p是主分区,e是逻辑分区,默认是p

Using default response p

分区号 (1-4,默认 1) //分区号为1,直接回车

起始 扇区 (2,默认为 2048) //直接回车默认从2048个柱⾯开始划分,直接回车

将使⽤默认值 2048

分区 1 已设置为 Linux 类型,⼤⼩设为 5 GiB

命令(输⼊ m 获取帮助)n //添加第⼀个分区

Partition type:

p primary (1 primary, 0 extended, 3 free)

e extended

Select (default p): // p是主分区,e是逻辑分区,默认是p

Using default response p

分区号 (2-4,默认 2) //分区号为2,直接回车

起始 扇区 (10487808-20971519,默认为 10487808) //直接回车默认从10487808个柱⾯开始划分,直接回车

将使⽤默认值 10487808

Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519) //剩余空间都分配给第⼆个分区,直接回车

将使⽤默认值 20971519

分区 2 已设置为 Linux 类型,⼤⼩设为 5 GiB

命令(输⼊ m 获取帮助)p //输⼊P回车,查看添加的分区

磁盘 /dev/sdb10.7 GB, 1 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区⼤⼩(逻辑/物理)512 字节 / 512 字节

I/O ⼤⼩(最⼩/最佳)512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x4319fbfa

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 10487807 5242880 83 Linux

/dev/sdb2 10487808 20971519 5241856 83 Linux

命令(输⼊ m 获取帮助)w //输⼊w回车,保存添加的分区,这⼀步⼀定要否则不⽣效

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@CentOS7-0003 /]#

Last 扇区, +扇区 or +size{K,M,G} (2,默认为 20971519)+5G //#加空间⼤⼩,这⾥有很多种选择:+后⾯单位可以接MGK(记得要⼤写)表⽰

说明:创建完成物理分区后centos/redhat6级以下版本操作系统,需重启服务器,centos/redhat7⽆需重启

2、创建物理卷(PV

将新创建的分区转化成物理卷,主要是添加LVM属性信息并划分PE存储单元,多个⼀起设置 pvcreate /dev/sdb{1,2,3,4,5}

[root@CentOS7-0003 /]# pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created.

[root@CentOS7-0003 /]# pvcreate /dev/sdb2

Physical volume "/dev/sdb2" successfully created.

[root@CentOS7-0003 /]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos_centos7-0003 lvm2 a-- <19.00g 0

/dev/sdb1 lvm2 --- 5.00g 5.00g

/dev/sdb2 lvm2 --- <5.00g <5.00g

[root@CentOS7-0003 /]#

查看系统中的物理卷pvs、pvdisplay、pvscan 这三个命令都可以查看系统中有哪些物理卷PV

3、创建卷组(VG

创建卷组vgdata ,并将刚才创建好的物理卷加⼊该卷组.默认PE⼤⼩为4MB,PE是卷组的最⼩存储单元.可以通过 –s参数修改⼤⼩。

[root@CentOS7-0003 /]# vgcreate vgdata /dev/sdb1 //创建卷组vgdata,并将/dev/sdb1添加到卷组

Volume group "vgdata" successfully created

[root@CentOS7-0003 /]# vgextend vgdata /dev/sdb2 ///dev/sdb2添加到vgdata卷组

Volume group "vgdata" successfully extended

[root@CentOS7-0003 /]# vgs //查看卷组信息

VG #PV #LV #SN Attr VSize VFree

centos_centos7-0003 1 2 0 wz--n- <19.00g 0

vgdata 2 0 0 wz--n- 9.99g 9.99g

[root@CentOS7-0003 /]#

4、创建逻辑卷(LV

创建逻辑卷,将卷组vgdata上⾯分割4G给新的逻辑卷lvdata1,将卷组vgdata上剩余空间分配给新的逻辑卷lvdata2

[root@CentOS7-0003 /]# lvcreate -L 4G -n lvdata01 vgdata //vgdata4G分配给新建的逻辑卷lvdata01

Logical volume "lvdata01" created.

[root@CentOS7-0003 /]# lvcreate -l 100%FREE -n lvdata02 vgdata //vgdata上剩余空间分配给新建的逻辑卷lvdata02

Logical volume "lvdata02" created.

[root@CentOS7-0003 /]# lvs //查看逻辑卷信息

[root@CentOS7-0003 /]# 4 /dev/vgdata/lvdata01 //在逻辑卷lvdata01上创建⽂件系统ext4

mke2fs 1.42.9 (28-Dec-2013)

⽂件系统标签=

OS type: Linux

块⼤⼩=4096 (log=2)

分块⼤⼩=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

262144 inodes, 1048576 blocks

52428 blocks (5.00%) reserved for the super user

第⼀个数据块=0

Maximum filesystem blocks=1073741824

32 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成

正在写⼊inode: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

[root@CentOS7-0003 /]# 4 /dev/vgdata/lvdata02 //在逻辑卷lvdata02上创建⽂件系统ext4

mke2fs 1.42.9 (28-Dec-2013)

⽂件系统标签=

[root@CentOS7-0003 /]# mkdir -p /u01 /data //新建挂载⽬录/data /u01

[root@CentOS7-0003 /]# mount /dev/vgdata/lvdata01 /data //挂载⽂件系统lvdata01/data⽬录

[root@CentOS7-0003 /]# mount /dev/vgdata/lvdata02 /u01 //挂载⽂件系统lvdata01/u01⽬录

[root@CentOS7-0003 /]# df -h

⽂件系统 容量 已⽤ 可⽤ 已⽤% 挂载点

devtmpfs 908M 0 908M 0% /dev

tmpfs 920M 0 920M 0% /dev/shm

tmpfs 920M 8.6M 911M 1% /run

tmpfs 920M 0 920M 0% /sys/fs/cgroup

/dev/mapper/centos_centos7--0003-root 17G 1.2G 16G 7% /

/dev/sda1 1014M 149M 866M 15% /boot

tmpfs 184M 0 184M 0% /run/user/0

/dev/mapper/vgdata-lvdata01 3.9G 16M 3.6G 1% /data

/dev/mapper/vgdata-lvdata02 5.8G 24M 5.5G 1% /u01

[root@CentOS7-0003 /]#

6、设置开机⾃动挂载

修改/etc/fstab最后⼀⾏加⼊,保证开启挂载,若编辑错误,服务器会出现重启故障/

/dev/mapper/vgdata-lvdata01 /data ext4 defaults 0 0

/dev/mapper/vgdata-lvdata02 /u01 ext4 defaults 0 0

⾄此新建磁盘以及磁盘分区已经处理完成。

四、删除分区操作

⼀定谨慎操作,会导致数据丢失,仅限于磁盘和系统盘没有任何关联的磁盘上操作,否则稍不慎会导致服务器⽆法启动

1、删除⾃动挂载

删除/etc/fstab配置⾥⾯的⾃动挂载命令

2、卸载⽬录挂载

[root@CentOS7-0003 mapper]# umount /u01/

3、删除逻辑分区(LV

[root@CentOS7-0003 mapper]# lvremove /dev/vgdata/lvdata01

Do you really want to remove active logical volume vgdata/lvdata01? [y/n]: y

Logical volume "lvdata01" successfully removed

[root@CentOS7-0003 mapper]# lvdisplay //查看逻辑卷

4、删除卷组(VG

[root@CentOS7-0003 mapper]# vgremove vgdata

Volume group "vgdata" successfully removed

[root@CentOS7-0003 mapper]# vgdisplay //查看卷组

6、删除分区(PP

[root@CentOS7-0003 mapper]# fdisk /dev/sdb

欢迎使⽤ fdisk (util-linux 2.23.2)

更改将停留在内存中,直到您决定将更改写⼊磁盘。

使⽤写⼊命令前请三思。

命令(输⼊ m 获取帮助)d

分区号 (1,2,默认 2)

分区 2 已删除

命令(输⼊ m 获取帮助)d

已选择分区 1

分区 1 已删除

命令(输⼊ m 获取帮助)w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@CentOS7-0003 mapper]#

五、分区扩容

给现有分区扩容,将新加的sdc磁盘(10G)【需要先在虚拟机中加⼊新的磁盘】,全部分配给现有oracle数据⽬录:/u01

其⼤概流程为:

对磁盘进⾏物理分区

将分区设置为物理卷

将物理卷添加到vgdata卷组

[root@CentOS7-0003 ~]# fdisk /dev/sdc

欢迎使⽤ fdisk (util-linux 2.23.2)

更改将停留在内存中,直到您决定将更改写⼊磁盘。

使⽤写⼊命令前请三思。

Device does not contain a recognized partition table

使⽤磁盘标识符 0x6b3d2f07 创建新的 DOS 磁盘标签。

命令(输⼊ m 获取帮助)n

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p):

Using default response p

分区号 (1-4,默认 1)

起始 扇区 (2,默认为 2048)

将使⽤默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2,默认为 20971519)

将使⽤默认值 20971519

分区 1 已设置为 Linux 类型,⼤⼩设为 10 GiB

命令(输⼊ m 获取帮助)p

磁盘 /dev/sdc10.7 GB, 1 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区⼤⼩(逻辑/物理)512 字节 / 512 字节

I/O ⼤⼩(最⼩/最佳)512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x6b3d2f07

设备 Boot Start End Blocks Id System

/dev/sdc1 2048 20971519 10484736 83 Linux

命令(输⼊ m 获取帮助)w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@CentOS7-0003 ~]#

2、创建物理卷(PV

将分区/dev/sdbc设置成物理卷

[root@CentOS7-0003 ~]# pvcreate /dev/sdc1

Physical volume "/dev/sdc1" successfully created.

[root@CentOS7-0003 ~]#

3、物理卷添加到现有卷组(VG

将新建的物理卷/dev/sdc1添加到/u01所在卷组vgdata

[root@CentOS7-0003 ~]# df -h //查看u01所在的卷组

⽂件系统 容量 已⽤ 可⽤ 已⽤% 挂载点

devtmpfs 908M 0 908M 0% /dev

tmpfs 920M 0 920M 0% /dev/shm

tmpfs 920M 8.6M 911M 1% /run

tmpfs 920M 0 920M 0% /sys/fs/cgroup

/dev/mapper/centos_centos7--0003-root 17G 1.2G 16G 7% /

/dev/sda1 1014M 149M 866M 15% /boot

tmpfs 184M 0 184M 0% /run/user/0

/dev/mapper/vgdata-lvdata01 3.9G 16M 3.6G 1% /data

/dev/mapper/vgdata-lvdata02 5.8G 24M 5.5G 1% /u01

[root@CentOS7-0003 ~]# vgextend vgdata /dev/sdc1 //将物理卷sdc1添加到vgdata卷组

Volume group "vgdata" successfully extended

[root@CentOS7-0003 ~]#

4、将卷组空间分配给需要增加空间的逻辑卷(LV

将卷组vgdata上的剩余空间分给配/u01所在的逻辑卷

[root@CentOS7-0003 ~]# lvextend -l +100%FREE /dev/mapper/vgdata-lvdata02

Size of logical volume vgdata/lvdata02 changed from <10.00 GiB (2559 extents) to <15.99 GiB (4093 extents).

Logical volume vgdata/lvdata02 successfully resized.

[root@CentOS7-0003 ~]#

5、更新/u01对应的⽂件系统

[root@CentOS7-0003 ~]# resize2fs /dev/mapper/vgdata-lvdata02

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/mapper/vgdata-lvdata02 is mounted on /u01; on-line resizing required

old_desc_blocks = 1, new_desc_blocks = 2

The filesystem on /dev/mapper/vgdata-lvdata02 is now 4191232 blocks long.

[root@CentOS7-0003 ~]# df -h

⽂件系统 容量 已⽤ 可⽤ 已⽤% 挂载点

devtmpfs 908M 0 908M 0% /dev

tmpfs 920M 0 920M 0% /dev/shm

2 卷组命令

vgscan #检测系统中所有磁盘

vgck [卷组名] #⽤于检查卷组中卷组描述区域信息的⼀致性。

vgdisplay [卷组名] #显⽰卷组的属性信息

5、块信息命令

lsblk