使用 fdisk 实用程序扩展分区“/dev/sda1”

  1. 为了扩展物理设备分区信息,我们先删除旧分区,再新建一个。
    请注意,我们首先打印出当前分区信息,以便我们准确地知道分区开始的位置。
    我们必须从与旧分区相同的块开始覆盖新的更大的分区。
# 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: 21.5 GB, 21474836480 bytes, 41943040 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: 0x085579f4
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048      411647      204800   83  Linux
Command (m for help): d
Selected partition 1
Partition 1 is deleted
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):          ### we will press ENTER here to select default first sector 2048
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +400M
Partition 1 of type Linux and of size 400 MiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

在使用“w”命令写出更改的分区表之前,可以随时中止此步骤。
在此之前,只会更改分区表的内存副本。

关于更改分区表:物理设备上所有 LUN 的分区信息都保存在一个分区表中。
fdisk 命令只操作这个分区表。
磁盘的其余部分始终保持不变。
这意味着可以更改分区表信息,但永远不会触及分区的内容,始终保持不变。

CentOS/RHEL:如何通过扩展使用的磁盘分区来扩展 LVM 中的物理卷

这篇文章讨论了如何通过使用 fdisk 扩展物理磁盘分区来扩展 LVM 卷中的可用空间。
此示例显示如何将物理卷 /dev/sdc1 从 200MB 调整为 400MB。

潜在数据丢失警告:此步骤将删除现有分区结构并在其位置创建一个新分区。
必须在与已删除分区完全相同的来源处创建新分区,否则将发生严重的数据损坏和丢失。

更多: zhilu jiaocheng

将新分区表加载到内核

当前运行的内核不知道新的分区信息,因为 fdisk 通过直接写入设备来更改分区表。
通常,内核仅在系统启动时或者在发生热插拔事件(例如插入 USB 设备)时读取分区信息。

但是,我们可以通过让内核重新读取其分区信息,然后更新其 LVM 信息来避免不必要的重启。

# partprobe

现在内核知道更新的分区表,通知 LVM 子系统有关物理设备的更改。
默认情况下,调整大小将使用从分区表中获得的整个分区大小:

# pvresize /dev/sdc1 
  Physical volume "/dev/sdc1" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
# pvdisplay /dev/sdc1
  --- Physical volume --
  PV Name               /dev/sdc1
  VG Name               testvg
  PV Size               399.00 MiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              99
  Free PE               74
  Allocated PE          25
  PV UUID               EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv

调整逻辑卷大小(可选)

  1. 我们现在还可以扩展逻辑卷,因为我们现在在底层物理卷中有更多空间。
    使用以下命令调整 LV 的大小。
# lvresize -L +200M /dev/testvg/testlv 
  Size of logical volume testvg/testlv changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).
  Logical volume testvg/testlv successfully resized.
  1. 验证逻辑卷的新大小。
# lvscan
  ACTIVE            '/dev/testvg/testlv' [300.00 MiB] inherit

检查当前配置

  1. 检查磁盘上物理卷的当前大小。
# pvdisplay /dev/sdc1
  "/dev/sdc1" is a new physical volume of "200.00 MiB"
  --- NEW Physical volume --
  PV Name               /dev/sdc1
  VG Name               
  PV Size               200.00 MiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
  1. 获取有关当前 LVM 设置的信息。
    我们要扩展的逻辑卷是“testlv”。
# lvscan
  ACTIVE            '/dev/testvg/testlv' [100.00 MiB] inherit

停用现有的逻辑卷

  1. 在我们进行实际的 PV 和 LV 扩展之前,我们必须先停用逻辑卷。
    使用以下命令停用 LV。
# lvchange -a n /dev/testvg/testlv
  1. 验证卷是否已停用。
# lvscan
  inactive          '/dev/testvg/testlv' [100.00 MiB] inherit

现在我们知道 LVM 没有被使用,所以我们可以开始对它的扩展过程。

激活现有的逻辑卷

最后一步是使修改后的 LVM 重新上线。
一如既往,我们首先检查我们的工作:

# lvscan
  ACTIVE            '/dev/testvg/testlv' [100.00 MiB] inherit

从上面的输出可以看出,逻辑卷处于非活动状态。
所以让我们先激活它。

# lvchange -a y /dev/testvg/testlv
# /usr/sbin/lvscan
ACTIVE '/dev/vgtest/lvtest' [100.00 MB] inherit
日期:2020-09-17 00:12:15 来源:oir作者:oir