虚拟机磁盘大小变更后的Ubuntu动态分区调整

简介: 家人们,今天我们来分享一下关于虚拟机磁盘大小变更后,在Ubuntu操作系统中如何进行动态分区调整的技巧。随着虚拟化技术的发展,虚拟机已经成为许多开发者和系统管理员的首选工具之一。在使用虚拟机过程中,可能会遇到需要扩展磁盘容量的情况,而Ubuntu作为一种常见的操作系统,我们将介绍如何动态调整分区以适应磁盘大小的变更。

_20230624084229.png
家人们,今天我们来分享一下关于虚拟机磁盘大小变更后,在Ubuntu操作系统中如何进行动态分区调整的技巧。随着虚拟化技术的发展,虚拟机已经成为许多开发者和系统管理员的首选工具之一。在使用虚拟机过程中,可能会遇到需要扩展磁盘容量的情况,而Ubuntu作为一种常见的操作系统,我们将介绍如何动态调整分区以适应磁盘大小的变更。

pv、lv、vg 介绍
  • PV(Phsical Volume,物理卷),PV是VG的组成部分,由分区构成,多块盘的时候,可以把一块盘格式化成一个主分区,然后用这个分区做成一个PV,只有一块盘的时候,可以这块盘的某一个分区做成一个PV,实际上一个PV就一个分区。

  • VG(Volume Group, 卷组),有若干个PV组成,作用就是将PV组成到以前,然后再重新划分空间。

  • LV(Logical Volume,逻辑卷),LV就是从VG中划分出来的卷,LV的使用要比PV灵活的多,可以在空间不够的情况下,增加空间。

可以说成是PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区.
PV->VG->LV-> 文件系统使用(挂载到某个目录)
硬盘或分区做成pv,然后将pv或多个pv建立vg,vg上建立lv,其模型如下
e47923ee8b7ca1ac36da2179d73ea861.png

命令集合

PV

pvcreate :根据物理盘,创建pv

pvscan :查询目前系统里的pv

pvdisplay:显示pv的状态

pvremove:将pv属性移除

VG

vgcreate:创建vg

vgscan:查找当前系统里面的vg

vgdisplay:显示当前系统vg的状态

vgextend:给vg添加额外的pv

vgreduce:在vg内删除pv

vgchange:设置vg是否是启动状态(active)

vgremove:删除一个vg

LV

lvcreate:创建lv

lvscan:查询当前系统的lv

lvdisplay:显示lv的属性

lvextend:给lv添加容量

lvredurce:给lv减少容量

lvremove:删除一个lv

lvresize:对lv大小的容量进行调整

实战案例
  1. 查看文件系统的磁盘空间使用情况

df -hl

Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              791M  2.2M  789M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   38G   26G   11G  72% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  253M  1.6G  14% /boot
tmpfs                              791M  4.0K  791M   1% /run/user/1000

可以看到 / 由 /dev/mapper/ubuntu--vg-ubuntu--lv 挂载

  1. 创建分区 sda4,将设置为 lvm 类型:

sudo fdisk /dev/sda

xiuji@xiuji:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

GPT PMBR size mismatch (83886079 != 209715199) will be corrected by write.
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.


Command (m for help): p

Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
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: D80D8A91-AB36-4BB8-A669-783F46148D68

Device       Start      End  Sectors Size Type
/dev/sda1     2048     4095     2048   1M BIOS boot
/dev/sda2     4096  4198399  4194304   2G Linux filesystem
/dev/sda3  4198400 83884031 79685632  38G Linux filesystem

Command (m for help): n
Partition number (4-128, default 4): 4
First sector (83884032-209715166, default 83884032): 83884032
Last sector, +/-sectors or +/-size{K,M,G,T,P} (83884032-209715166, default 209715166): 104857583

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

Command (m for help): p
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
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: D80D8A91-AB36-4BB8-A669-783F46148D68

Device        Start       End  Sectors Size Type
/dev/sda1      2048      4095     2048   1M BIOS boot
/dev/sda2      4096   4198399  4194304   2G Linux filesystem
/dev/sda3   4198400  83884031 79685632  38G Linux filesystem
/dev/sda4  83884032 104857583 20973552  10G Linux filesystem

Command (m for help): t
Partition number (1-4, default 4): 4
Partition type or alias (type L to list all): lvm

Changed type of partition 'Linux filesystem' to 'Linux LVM'.

Command (m for help): p
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
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: D80D8A91-AB36-4BB8-A669-783F46148D68

Device        Start       End  Sectors Size Type
/dev/sda1      2048      4095     2048   1M BIOS boot
/dev/sda2      4096   4198399  4194304   2G Linux filesystem
/dev/sda3   4198400  83884031 79685632  38G Linux filesystem
/dev/sda4  83884032 104857583 20973552  10G Linux LVM

Command (m for help): w
The partition table has been altered.
Syncing disks.
  1. sda4 创建成功,查看所有可用空间:

sudo lsblk

xiuji@xiuji:~$ sudo lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.4M  1 loop /snap/core20/1950
loop1                       7:1    0  53.3M  1 loop /snap/snapd/19457
loop2                       7:2    0  53.3M  1 loop /snap/snapd/19361
loop3                       7:3    0  63.5M  1 loop /snap/core20/1891
loop4                       7:4    0 111.9M  1 loop /snap/lxd/24322
sda                         8:0    0   100G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     2G  0 part /boot
├─sda3                      8:3    0    38G  0 part
│ └─ubuntu--vg-ubuntu--lv 253:0    0    38G  0 lvm  /
└─sda4                      8:4    0    10G  0 part
sr0                        11:0    1   1.8G  0 rom
  1. 将 sda4创建成 PV(Physical Volume):

sudo pvcreate /dev/sda4

xiuji@xiuji:~$ sudo pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created.

sudo pvdisplay

xiuji@xiuji:~$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <38.00 GiB / not usable 0
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              9727
  Free PE               0
  Allocated PE          9727
  PV UUID               qtpZ00-5KSl-HJr3-GCcf-Ki6B-eQP8-pcO6oH

  "/dev/sda4" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda4
  VG Name
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               eKegVq-phGh-jZ51-p08D-go8S-fFvt-8DLU62
  1. 查看当前 VG

    sudo vgdisplay

xiuji@xiuji:~$  sudo vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <38.00 GiB
  PE Size               4.00 MiB
  Total PE              9727
  Alloc PE / Size       9727 / <38.00 GiB
  Free  PE / Size       0 / 0
  VG UUID               vy0kkj-d2tU-Izec-RFY0-1Nmx-cReb-3Kx2S7
  1. 将 PV 添加到 VG

    sudo vgextend ubuntu-vg /dev/sda4


xiuji@xiuji:~$ sudo vgextend ubuntu-vg /dev/sda4
  Volume group "ubuntu-vg" successfully extende

sudo vgdisplay

xiuji@xiuji:~$ sudo vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               47.99 GiB
  PE Size               4.00 MiB
  Total PE              12286
  Alloc PE / Size       9727 / <38.00 GiB
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               vy0kkj-d2tU-Izec-RFY0-1Nmx-cReb-3Kx2S7
  1. 块设备(block devices)的信息

    sudo lsblk

xiuji@xiuji:~$ sudo lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.4M  1 loop /snap/core20/1950
loop1                       7:1    0  53.3M  1 loop /snap/snapd/19457
loop2                       7:2    0  53.3M  1 loop /snap/snapd/19361
loop3                       7:3    0  63.5M  1 loop /snap/core20/1891
loop4                       7:4    0 111.9M  1 loop /snap/lxd/24322
sda                         8:0    0   100G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     2G  0 part /boot
├─sda3                      8:3    0    38G  0 part
│ └─ubuntu--vg-ubuntu--lv 253:0    0    38G  0 lvm  /
└─sda4                      8:4    0    10G  0 part
sr0                        11:0    1   1.8G  0 rom
  1. 调整 LV 占用 VG 的全部空间

sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

xiuji@xiuji:~$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from <38.00 GiB (9727 extents) to 47.99 GiB (12286 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

xiuji@xiuji:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 6
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 12580864 (4k) blocks long.
  1. 查看文件系统的磁盘空间使用情况

    df -hl

xiuji@xiuji:~$ df -hl
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              791M  2.2M  789M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   48G   26G   20G  57% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  253M  1.6G  14% /boot
tmpfs                              791M  4.0K  791M   1% /run/user/1000

可以看到我们/dev/mapper/ubuntu--vg-ubuntu--lv调整了10G的大小已经生效了

目录
相关文章
|
2月前
|
Ubuntu Shell 网络安全
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
117 6
|
1月前
|
KVM 虚拟化
kvm虚拟机磁盘管理
文章详细介绍了KVM虚拟机磁盘管理,包括磁盘格式概述、创建虚拟机时如何指定磁盘格式、以及磁盘工具的常用命令,旨在帮助用户更好地理解和操作KVM虚拟机的磁盘管理。
48 1
kvm虚拟机磁盘管理
|
2月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
2月前
|
Ubuntu
【ubuntu】【问题记录】vbox虚拟机无权限访问共享目录
【ubuntu】【问题记录】vbox虚拟机无权限访问共享目录
23 0
|
2月前
|
Ubuntu
【ubuntu系统】在虚拟机内安装Ubuntu
【ubuntu系统】在虚拟机内安装Ubuntu
39 0
|
1天前
|
存储 Ubuntu Linux
关于实体机安装Ubuntu 22.04.3-desktop-amd64遇见的一些问题
【10月更文挑战第5天】本文介绍了Ubuntu安装过程中常见的四个问题及其解决方案,包括分区设置、驱动问题、软件安装问题和启动问题。对于分区,推荐新手选择自动分区,手动分区需了解基本概念。驱动问题可通过安装相应硬件的Linux驱动解决。软件安装问题可更换国内镜像源或修复依赖关系。启动问题则可尝试进入恢复模式修复或根据错误提示信息寻求帮助。
|
4天前
|
存储 Ubuntu
关于实体机安装Ubuntu 22.04.3-desktop-amd64遇见的一些问题
【10月更文挑战第2天】本文详细介绍了在使用 Ubuntu 过程中常见的五个问题及其解决方案:下载镜像文件速度慢或损坏,可更换镜像源或验证哈希值;制作启动盘失败,需检查 U 盘及设置;安装过程中的分区问题,需合理规划分区;安装后的驱动问题,可通过安装官方驱动解决;软件安装和更新问题,需检查仓库配置及依赖关系。
|
1月前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
163 3
Ubuntu 18.04 安装Docker实战案例
|
1月前
|
Ubuntu 网络安全 开发工具
Ubuntu19.04的安装过程详解以及操作系统初始化配置
本文详细介绍了Ubuntu 19.04操作系统的安装过程、初始化配置、网络设置、软件源配置、SSH远程登录以及终端显示设置。
61 1
Ubuntu19.04的安装过程详解以及操作系统初始化配置