解决linux下因无法创建新分区不能扩容lvm问题

有一个/dev/sdc的盘,上面划分了3个主分区/dev/sdc1-3,一个扩展分区/dev/sdc4,在扩展分区上划分了一/dev/sdc5。问题来了,想扩容这个/dev/sdc硬盘,怎么新建分区或者扩容分区呢?

解决linux下因无法创建新分区不能扩容lvm问题

解决思路


可能由于是处女座的原因(都怪处女座),在工作中也要力争有条理。不太喜欢在虚拟机中添加一堆磁盘”sdb,sdc,sdd…..”总觉得不太好管理。

碰到知识盲区以后,也咨询过很几个2000人运维群,遗憾的是”这里突然静悄悄””顾左右而言他”,于是,在这里再次申明”并非是争论面红耳赤的Lvm扩容问题”。

那么,上面这个问题该怎么解决呢?

思路一:使用gparted等磁盘管理工具,来扩容扩展分区。

思路二:使用linux系统工具来执行扩容操作。

解决方案


思路一的方法,在没办法的情况可以试验下,本文重点介绍第二种方式。我们在虚拟化环境中,将/dev/sdc的盘从10G增大到12G并保存配置。

解决linux下因无法创建新分区不能扩容lvm问题

重新扫描/dev/sdc的磁盘,并且识别到12G。

echo 1 > /sys/class/scsi_device/0\:0\:2\:0/device/rescan

再解释清楚点,这个问题。扩容lvm首先pv需要扩容。在这里已经无法再创建分区了,也就无法给pv扩容。

解决linux下因无法创建新分区不能扩容lvm问题

问题清楚了,在操作前先备份,我在这里只做了快照。我们需要删除扩容分区并且重建,

这个操作需要记录起始位置的sectors,(fdisk -l )只有这样数据才不会丢失。

解决linux下因无法创建新分区不能扩容lvm问题

卸载/dev/sdc5挂载,我这里使用的是lvm,所以卸载命令为:

解决linux下因无法创建新分区不能扩容lvm问题

  1. umount /dev/sdc_1/sdc1

开始删除,并重建/dev/sdc4以及/dev/sdc5。

[root@gcdr-test ~]# fdisk /dev/sdc

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): p

Disk /dev/sdc: 12.9 GB, 12884901888 bytes, 25165824 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: 0x00076296

Device Boot Start End Blocks Id System

/dev/sdc1 2048 4194303 2096128 8e Linux LVM

/dev/sdc2 4194304 8388607 2097152 8e Linux LVM

/dev/sdc3 8388608 12582911 2097152 8e Linux LVM

/dev/sdc4 12582912 20971519 4194304 5 Extended

/dev/sdc5 12584960 20971519 4193280 8e Linux LVM

Command (m for help): d

Partition number (1-5, default 5): 5

Partition 5 is deleted

Command (m for help): d

Partition number (1-4, default 4): 4

Partition 4 is deleted

Command (m for help): n

Partition type:

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

e extended

Select (default e): e

Selected partition 4

First sector (12582912-25165823, default 12582912):

Using default value 12582912

Last sector, +sectors or +size{K,M,G} (12582912-25165823, default 25165823):

Using default value 25165823

Partition 4 of type Extended and of size 6 GiB is set

Command (m for help): n

All primary partitions are in use

Adding logical partition 5

First sector (12584960-25165823, default 12584960):

Using default value 12584960

Last sector, +sectors or +size{K,M,G} (12584960-25165823, default 25165823):

Using default value 25165823

Partition 5 of type Linux and of size 6 GiB is set

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

End

 

接着需要扩容lvm(有可能需要重启服务器)。

[root@gcdr-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 rhel lvm2 a– 15.51g 0

/dev/sdb swapvg lvm2 a– 8.00g 0

/dev/sdc1 sdc_1 lvm2 a– 2.00g 0

/dev/sdc2 sdc_1 lvm2 a– 2.00g 0

/dev/sdc3 sdc_1 lvm2 a– 2.00g 0

/dev/sdc5 sdc_1 lvm2 a– 4.00g 0

[root@gcdr-test ~]# pvresize /dev/sdc5

Physical volume “/dev/sdc5” changed

1 physical volume(s) resized / 0 physical volume(s) not resized

[root@gcdr-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 rhel lvm2 a– 15.51g 0

/dev/sdb swapvg lvm2 a– 8.00g 0

/dev/sdc1 sdc_1 lvm2 a– 2.00g 0

/dev/sdc2 sdc_1 lvm2 a– 2.00g 0

/dev/sdc3 sdc_1 lvm2 a– 2.00g 0

/dev/sdc5 sdc_1 lvm2 a– 6.00g 2.00g

[root@gcdr-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

rhel 1 1 0 wz–n- 15.51g 0

sdc_1 4 1 0 wz–n- 11.98g 2.00g

swapvg 1 1 0 wz–n- 8.00g 0

[root@gcdr-test ~]# lvextend -l +100%free /dev/sdc_1/sdc1

Size of logical volume sdc_1/sdc1 changed from 9.98 GiB (2556 extents) to 11.98 GiB (3068 extents).

Logical volume sdc1 successfully resized

[root@gcdr-test ~]# e2fsck -f /dev/sdc_1/sdc1

e2fsck 1.42.9 (28-Dec-2013)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/sdc_1/sdc1: 402/655360 files (0.0% non-contiguous), 83136/2617344 blocks

[root@gcdr-test ~]# resize2fs /dev/sdc_1/sdc1

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/sdc_1/sdc1 to 3141632 (4k) blocks.

The filesystem on /dev/sdc_1/sdc1 is now 3141632 blocks long.

扩容完成,挂载检查。

Bash

[root@gcdr-test ~]# mount /dev/sdc_1/sdc1 /sdc1/

[root@gcdr-test ~]# ll /sdc1/

total 20

drwxr-xr-x. 21 root root 4096 Jul 25 09:48 dev

drwx——. 2 root root 16384 Jul 25 09:50 lost+found

结束


以上就是在3个主分区一个扩展分区下,如何扩容lvm的全部步骤。感谢@袁麟技术指导。

人已赞赏
笔记

Windows2003访问samba及Linux不能挂载共享文件夹中NTLMv2的作用

2020-10-12 13:38:26

笔记

etcd部署及常见问题

2020-10-12 13:40:14

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索