如何使用 LVM 及其包含的物理卷和逻辑卷扩展分区?

如何使用 LVM 及其包含的物理卷和逻辑卷扩展分区?

在我的 240 GB SSD 上,我最初有两个分区,一个包含 Linux Mint 的逻辑卷,另一个包含与 Windows 共享的 NTFS 分区。

现在我删除了 NTFS 分区,并希望扩展我的逻辑卷组以使用释放的磁盘空间。

我如何扩展卷组, 我的包含 /home 的逻辑卷文件系统 (ext4)在 /home 上?这可以在网上做吗?

PS:是的,我知道我必须备份我的数据:)

/dev/sdb/  (240GB)
    linuxvg  (160GB) should use 100% of the disk space
        swap
        root
        home (ext4, 128GB) should be extended to use the remaining space

输出sudo vgdisplay

  --- Volume group ---
  VG Name               linuxvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               160,00 GiB
  PE Size               4,00 MiB
  Total PE              40959
  Alloc PE / Size       40959 / 160,00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ...
   
  --- Logical volume ---
  LV Path                /dev/linuxvg/swap
  LV Name                swap
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:32 +0200
  LV Status              available
  # open                 2
  LV Size                8,00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/linuxvg/root
  LV Name                root
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:43 +0200
  LV Status              available
  # open                 1
  LV Size                24,00 GiB
  Current LE             6144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1
   
  --- Logical volume ---
  LV Path                /dev/linuxvg/home
  LV Name                home
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:57 +0200
  LV Status              available
  # open                 1
  LV Size                128,00 GiB
  Current LE             32767
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2
   
  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               ...
  PV Status             allocatable
  Total PE / Free PE    40959 / 0

输出sudo fdisk -l

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 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 identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1   468862127   234431063+  ee  GPT

Disk /dev/mapper/linuxvg-swap: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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 identifier: 0x00000000


Disk /dev/mapper/linuxvg-root: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 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 identifier: 0x00000000


Disk /dev/mapper/linuxvg-home: 137.4 GB, 137434759168 bytes
255 heads, 63 sectors/track, 16708 cylinders, total 268427264 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 identifier: 0x00000000

答案1

您可以在要调整大小的文件系统上运行时完成整个过程(是的,它是安全的并且完全受支持)。无需救援 CD 或备用操作系统。

  1. 调整分区大小(同样,您可以在系统运行时执行此操作)。格帕特易于使用并支持调整大小。
    您还可以使用较低级别的工具,例如fdisk.但您必须删除该分区并重新创建它。只需确保执行此操作时新分区从完全相同的位置开始即可。
  2. 重启。由于分区表是在正在运行的系统上修改的,因此只有重新启动后才会生效。
  3. 运行pvresize /dev/sdXY以使 LVM 获取新空间。
  4. 使用 调整逻辑卷大小lvextend。如果你想使用整个东西,lvextend -r -l +100%FREE /dev/VGNAME/LVNAME.它-r还将调整文件系统的大小。
    尽管我总是建议不要使用整个卷组。你永远不知道未来你会需要什么。你以后总是可以扩大,但不能总是缩小。

答案2

所有答案都无法充分体现 LVM 的强大功能。

(这是基于 @frostchutz 对上述问题的评论。)

让我们了解一下事实:

  • OP有两个分区,sdb1和sdb2是LVM的物理卷。
  • sdb1 现在是 ntfs,我们需要将该空间分配给卷组home内的逻辑卷linuxvg

LVM 使用“务实方式”的步骤:

  • 在 sdb1 上创建物理卷:pvcreate /dev/sdb1
  • 将 sdb1 添加到linuxvgvgextend linuxvg /dev/sdb1
  • home使用所有可用空间扩展逻辑卷(并调整文件系统大小):lvextend -r -l +100%FREE /dev/linuxvg/home

LVM 允许高度间接。逻辑卷位于卷组内,该卷组可以使用多个磁盘。

主页 --> linuxvg --> (sdb1, sdb2, sdc1)

http://tldp.org/HOWTO/LVM-HOWTO/createvgs.html

答案3

看完后问题解决了博客文章。我将用简短的形式写出解决方案:

  • 从 live CD 启动
  • 使用gdisk(如果你使用 GPT)否则你可以使用旧的fdisk
  • 就我而言,请注意您的分区设置gdisk -l /dev/sdb
  • 删除你的分区
  • 创建一个与前一个分区具有完全相同对齐方式的新分区(在我的示例中从块 2048 开始)
  • 写入新的分区表
  • 运行partprobe -s以刷新分区表而无需重新启动
  • pvresize /dev/sdb1使用或无论您的 pv所在位置调整您的物理卷大小(用于pvs确定您是否不知道)
  • lvextend -l +100%FREE /dev/file/of/your/lv现在,在我的例子中,使用 调整逻辑卷的大小sudo lvextend -l +100%FREE /dev/linuxvg/home
  • 调整文件系统大小sudo resize2fs /dev/linuxvg/home
  • 首先检查一致性sudo e2fsck -f /dev/linuxvg/home
  • 享受 :)

答案4

我正在使用 RHEL7 并且需要扩展/var.我不是专家,但任何时候我尝试umount /varresize2fs都会失败,因为毫不奇怪它正在使用中。经过几天的反复试验,我发现它对我有用。

首先,在 VMWare vSphere(或者我认为您正在使用的任何虚拟机管理程序)中向磁盘添加空间。

然后,在 RHEL7 VM 上,以 root 身份按照以下步骤获取额外的磁盘空间/var

  1. 我跑去lsblk了解/var坐在哪里

    • 磁盘sda
    • 分割sda2
    • 左室厚度rhel-var

    所以r 是磁盘/va分区中的逻辑卷。sda2sda

  2. 获取磁盘以声明新空间

    echo 1 > /sys/class/block/**sda**/device/rescan
    

    粗体部分应该是您已建立的逻辑卷所在的磁盘。

  3. 运行parted获取设备分区以声明空间

    parted
    
  4. 运行partedprint命令获取分区号。

  5. 运行partedresizepart命令设置新的分区大小。

  6. 运行 partedprint命令来确认分区大小已增加。

  7. 运行partedquit退出程序。

  8. 运行pvresize以使操作系统了解分区sda2现在更大。

    pvresize /dev/sda2
    
  9. 运行lvextend/var获取分区上的新空间。

    lvextend -l +100%FREE '/dev/mapper/rhel-var'
    

    /dev/mapper/rhel-var从运行中获得了文件系统名称df -h

  10. 使用good oldresize2fs让操作系统声明您刚刚在上一步中添加到逻辑卷的额外空间。

    resize2fs '/dev/mapper/rhel-var'
    

任务完成。通过运行确认您的成功df -h

相关内容