df 显示驱动器为 77GB,但 fdisks 显示分区为 160GB

df 显示驱动器为 77GB,但 fdisks 显示分区为 160GB

我最近将 VPS 的 HDD 空间从 80 > 160GB 升级,但除了在 fdisks 中查看之外,它没有显示任何更改。

root@localhost:~# df -h
Filesystem             Size  Used Avail Use% Mounted on
udev                   3.9G     0  3.9G   0% /dev
tmpfs                  794M  1.2M  793M   1% /run
/dev/mapper/vg00-lv01   77G   31G   43G  43% /
tmpfs                  3.9G   16K  3.9G   1% /dev/shm
tmpfs                  5.0M     0  5.0M   0% /run/lock
tmpfs                  3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1              456M  145M  278M  35% /boot
tmpfs                  794M     0  794M   0% /run/user/0

root@localhost:~# fdisk /dev/sda

Welcome to fdisk (util-linux 2.34).
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/sda: 160 GiB, 171798691840 bytes, 335544320 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x520f1760

Device     Boot  Start       End   Sectors   Size Id Type
/dev/sda1  *      2048    999423    997376   487M 83 Linux
/dev/sda2       999424 335544286 334544863 159.5G 8e Linux LVM

我尝试使用 resize2fs 但我得到:

root@localhost:~# resize2fs /dev/mapper/vg00-lv01 
resize2fs 1.45.5 (07-Jan-2020)
The filesystem is already 20345856 (4k) blocks long.  Nothing to do!

我有一种感觉,我需要创建一个新分区才能做到这一点?

让事情更让我困惑的是 vgdisplay 显示没有可用空间:

root@localhost:~# vgdisplay vg00
  --- Volume group ---
  VG Name               vg00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  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               <79.52 GiB
  PE Size               4.00 MiB
  Total PE              20357
  Alloc PE / Size       20357 / <79.52 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ZRC0sL-qOeU-Uyfp-Qbo4-m06c-CwEt-xpFTsO

答案1

当您为操作系统扩展磁盘时,您需要执行一些任务来为 lvm 扩展它:

  1. 如果您不想重新启动系统,则需要重新扫描磁盘以寻找新的大小,例如 /dev/sda:

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

你会看到新的磁盘空间(160G)

  1. 接下来需要扩展分区,属于pv

    分开 /dev/sda 2 调整大小部分 100%

  2. 之后,调整 pv 的大小:

    pvresize /dev/sda2

只需调整 lv 和 fs 的大小:

lvextend -l+100%FREE -r /dev/mapper/vg00-lv01

注意:为 lvextend 标记“-r”:

-r|--resizefs
         Resize underlying filesystem together with the LV using fsadm(8).

但是您可以自己调整底层文件系统的大小,具体取决于您的文件系统类型:

xfs: xfs_growfs /
ext: resize2fs /

答案2

您必须在虚拟机内部检查是否可以看到可用的新空间。

fdisk -l /dev/sda  #or whatever your main device is

所以你会看到你的空间是否比原来的80G多,有时你需要停止你的VM并重新启动它,大多数时候重新启动可能足以让内核检测空间变化,但如果你不能尝试这些解决方案之一:

sfdisk -R /dev/sda
partx -a /dev/sda
kpartx -a /dev/sda
hdparm -z /dev/sda
blockdev --rereadpt /dev/sda
partprobe  /dev/sda

从现在开始,您的设备上可能有一些可用空间,并且您有两种方法来利用它们,(1)您可以扩展原始分区,或者(2)您可以添加新分区。

扩展分区(1)

pvs #this will give you the used partitions here 2 for the example 
parted /dev/sda resizepart 2      159GB
       ^disk    ^cmd       ^part# ^pos.last.sector

最后一个数字应该是所需的结束位置,以便您可以使用的最大尺寸。

要添加第二个分区(2),只需使用fdisk sfdisk gdisk或类似,并在末尾添加一个分区,如果使用 GPT 分区表格式,请将其标记为 8e 或 8E00。然后将第二个分区添加到 LVM。

pvcreate /dev/sda3
vgextend  vg00 /dev/sda3 

从现在开始,您的卷组上可能会报告一些可用空间,或者vgsvgdisplay 您可以扩展卷。

相关内容