用到的命令

  



vgdisplay  
lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv

fdisk /dev/sda

mkfs.ext4 /dev/sda4

mkdir /cpy

mount /dev/sda4 /cpy

umount /cpy

lvdisplay

lvextend /dev/ubuntu-vg/ubuntu-lv /dev/sda4
resize2fs /dev/ubuntu-vg/ubuntu-lv

df -h


  

 

 

 virtualbox 扩容的vdi之后, 怎么让虚拟机使用上刚才扩容的这个空间。

 

直接lvextend是不行的。 这部分空间需要分配挂载之后才可以使用。可以选择是直接挂载该分区,还是扩展已有分区

 

root@go:/home/fly# 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.

GPT PMBR size mismatch (83886079 != 167772159) will be corrected by write.

The backup GPT table is not on the end of the device. This problem will be corrected by write.

Command (m for help): p

Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors

Disk model: VBOX HARDDISK

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: gpt

Disk identifier: 1768C51A-6BAC-4B5B-BAC2-91260A97804C

Device Start End Sectors Size Type

/dev/sda1 2048 4095 2048 1M BIOS boot

/dev/sda2 4096 2101247 2097152 1G Linux filesystem

/dev/sda3 2101248 83884031 81782784 39G Linux filesystem

Command (m for help):

Command (m for help): n

Partition number (4-128, default 4):

First sector (83884032-167772126, default 83884032):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (83884032-167772126, default 167772126):

Created a new partition 4 of type 'Linux filesystem' and of size 40 GiB.

Command (m for help): w

The partition table has been altered.

Syncing disks.

 

 

第一种方式: 挂载刚才的 /dev/sda4分区

 

root@go:/home/fly# mkfs.ext4 /dev/sda4

mke2fs 1.45.5 (07-Jan-2020)

Creating filesystem with 10485760 4k blocks and 2626560 inodes

Filesystem UUID: 1cddb0bb-d43a-4bb9-a4c9-fe772c5d7044

Superblock backups stored on blocks:

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

4096000, 7962624

Allocating group tables: done

Writing inode tables: done

Creating journal (65536 blocks): done

Writing superblocks and filesystem accounting information: done

root@go:/home/fly# df -h

 

【转】lvextend 无法使用 virtualbox 扩容的vdi_linux

 

 

 第二种方式, 拓展已有的  /dev/ubuntu-vg/ubuntu-lv 这个分区

1.第一步:

root@go:~# vgextend ubuntu-vg /dev/sda4

WARNING: ext4 signature detected on /dev/sda4 at offset 1080. Wipe it? [y/n]: y

Wiping ext4 signature on /dev/sda4.

Physical volume "/dev/sda4" successfully created.

Volume group "ubuntu-vg" successfully extended

 

第二步:

root@go:~# lvextend /dev/ubuntu-vg/ubuntu-lv /dev/sda4

Size of logical volume ubuntu-vg/ubuntu-lv changed from 35.00 GiB (8960 extents) to <75.00 GiB (19199 extents).

Logical volume ubuntu-vg/ubuntu-lv successfully resized.

第三步:

root@go:~# xfs_growfs /dev/ubuntu-vg/ubuntu-lv

xfs_growfs: /dev/ubuntu-vg/ubuntu-lv is not a mounted XFS filesystem

正确:

root@go:~# resize2fs /dev/ubuntu-vg/ubuntu-lv

resize2fs 1.45.5 (07-Jan-2020)

Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing requ

old_desc_blocks = 5, new_desc_blocks = 10

The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 19659776 (4k) blocks long.

第三步参考:​​ javascript:void(0)​

 

【转】lvextend 无法使用 virtualbox 扩容的vdi_重启_02

 

 

 

特别注意的是:

resize2fs 命令            针对的是ext2、ext3、ext4文件系统

xfs_growfs 命令         针对的是xfs文件系统

 

----------------------------------------------------lvextend------------------------------------

1.扩容

本人在docker pull mysql 时报错,说空间不足,结果后来才发现在安装Ubuntu Server的时候采用了LVM,这才导致了根目录只有3.9G。

用指令 df -h 查看磁盘情况

 

所以现在需要扩容,用指令显示存在的卷组,vgdisplay

Free PE / Size 4863 / <19.00 GiB

这是还可以扩充的大小

然后输入指令扩容

2.lvextend -L +20G /dev/mapper/ubuntu--vg-ubuntu--lv

3.lvextend -L +5G /dev/mapper/ubuntu--vg-ubuntu--lv

4.执行调整 resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

 

----------------------------------------------------lvextend------------------------------------

原文:​​javascript:void(0)​

VirtualBox调整扩大VMDK和VDI格式的磁盘空间,并扩展系统空间

--------------------

 

转载:​​javascript:void(0)​

           ​​https://bugxia.com/581.html​

容量扩充:

操作步骤如下:

  1.切换到VirtualBox目录 

  【转】lvextend 无法使用 virtualbox 扩容的vdi_centos_03

  2.执行clonehd命令并转为vdi

  为什么要转?因为不支持直接扩大,毕竟vdi是VMware家的,既然能vmdk --> vdi成立,那么vdi --> vmdk也应该能成立,大不了再转回来

C:\Program Files\Oracle\VirtualBox>vboxmanage clonehd "E:\centos\centos.vmdk" "E:\centos\centos-python.vdi" -format VDI


【转】lvextend 无法使用 virtualbox 扩容的vdi_python_04

  3.执行modifyhd命令,这里的51200是MB单位

C:\Program Files\Oracle\VirtualBox>vboxmanage modifyhd "E:\centos\centos-python.vdi" --resize  51200


【转】lvextend 无法使用 virtualbox 扩容的vdi_centos_05

  4.如果想用vid重新设置即可,重新挂载硬盘即可,不折不挠的继续往下看下一步

  5.如果想转回去,挂载硬盘即可,至于系统中的如何划分新增加的硬盘空间,百度即可!

C:\Program Files\Oracle\VirtualBox>vboxmanage clonehd "E:\centos\centos-python.vdi" "E:\centos\centos-python.vmdk" -format VMDK


扩展系统空间 

1.查询容量,使用 fdisk -l 命令

【转】lvextend 无法使用 virtualbox 扩容的vdi_centos_06

如上图所示,已分配16G,总容量 – 已分配 = 未分配容量,既为第一步中我们调整的容量。

这部分空间需要分配挂载之后才可以使用。

2.开始分区

因为此虚拟机只有一块虚拟硬盘,即 /dev/sda,所以首先需要对此块硬盘的未分配空间进行分区操作,命令:

fdisk /dev/sda


【转】lvextend 无法使用 virtualbox 扩容的vdi_重启_07

分区完毕,输入 w 保存分区表

【转】lvextend 无法使用 virtualbox 扩容的vdi_linux_08

此时会出现提示:

  1.  

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

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

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

    Syncing disks.

大致意思就是设备忙,需要重启虚拟机以便分区表生效。好的,那就重启。

3.格式化分区

重启虚拟机后,再次执行 fdisk -l 命令查看,发现多出一个分区

【转】lvextend 无法使用 virtualbox 扩容的vdi_重启_09

格式化该分区为ext4格式

mkfs.ext4 /dev/sda4


【转】lvextend 无法使用 virtualbox 扩容的vdi_linux_10

挂载&扩展

此时可以选择是直接挂载该分区,还是扩展已有分区

1.选择直接挂载

可以使用mount命令,将刚刚格式化的分区挂载到某一路径下,如挂载到/home/extend

  1.  

    mkdir /home/ext
  2.  

    mount /dev/sda4 /home/ext

再修改/etc/fstab,尾部添加一行

/dev/sda4 /home/ext ext4 defaults 0 1


重启即可自动挂载该分区

2.选择扩展已有分区

执行df -h 查看已挂载分区及其挂载路径

【转】lvextend 无法使用 virtualbox 扩容的vdi_ubuntu_11

比如我要扩展上图红框的根目录 /

首先查看卷组的信息,记录组名称

vgdisplay


【转】lvextend 无法使用 virtualbox 扩容的vdi_重启_12

创建新的物理分区( /dev/sda4即为上述步骤中扩展的分区 )

pvcreate /dev/sda4


【转】lvextend 无法使用 virtualbox 扩容的vdi_python_13

执行 vgextend 扩展命令

  1.  

    #格式:vgextend 组名称 扩展分区
  2.  

    vgextend centos /dev/sda4

【转】lvextend 无法使用 virtualbox 扩容的vdi_重启_14

执行 lvdisplay 指令,显示逻辑卷属性,并记录根分区路径

【转】lvextend 无法使用 virtualbox 扩容的vdi_centos_15

执行扩展命令

lvextend /dev/centos/root /dev/sda4


【转】lvextend 无法使用 virtualbox 扩容的vdi_centos_16

如上图,容量已成功扩展

刷新一下分区容量

xfs_growfs /dev/centos/root


再执行df -h

【转】lvextend 无法使用 virtualbox 扩容的vdi_重启_17

扩展容量已成功添加至 / 根目录