VMWare WorkStation通常默认给每个虚拟机分配6到8GB的硬盘空间。当使用到一定程度之后,肯定会出现磁盘空间不足的情况。这个时候就需要扩容。但是在VMWare上扩容磁盘空间之后,虚拟机里的空间大小并没有变化,还需要我们手动去扩容。好比在Windows系统中扩展卷这个操作。
当你使用VMware给虚拟机扩大了可用磁盘空间之后,启动机器。
查看磁盘空间使用情况:
df -h
[root@Euler03 ~]# df -h
文件系统 大小 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root 6.1G 4.6G 1.2G 81% /
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 2.7G 0 2.7G 0% /dev/shm
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs 1.1G 9.1M 1.1G 1% /run
tmpfs 2.7G 0 2.7G 0% /tmp
/dev/sda2 974M 175M 732M 20% /boot
创建新的磁盘分区
查看sda,我的电脑里最大的是sda3。
ls /dev/
[root@Euler03 ~]# ls /dev/
autofs console dm-1 hidraw0 log net pts sda2 sr0 tty10 tty17 tty23 tty3 tty36 tty42 tty49 tty55 tty61 ttyS1 usbmon1 vcs4 vcsa4 vcsu4 vhost-vsock
block core dmmidi hpet loop-control null random sda3 stderr tty11 tty18 tty24 tty30 tty37 tty43 tty5 tty56 tty62 ttyS2 usbmon2 vcs5 vcsa5 vcsu5 vmci
bsg cpu dri hugepages mapper nvram rfkill sg0 stdin tty12 tty19 tty25 tty31 tty38 tty44 tty50 tty57 tty63 ttyS3 userfaultfd vcs6 vcsa6 vcsu6 zero
btrfs-control cpu_dma_latency fb0 hwrng mcelog openeuler rtc sg1 stdout tty13 tty2 tty26 tty32 tty39 tty45 tty51 tty58 tty7 uhid vcs vcsa vcsu vfio
bus cuse fd initctl mem port rtc0 shm tty tty14 tty20 tty27 tty33 tty4 tty46 tty52 tty59 tty8 uinput vcs1 vcsa1 vcsu1 vga_arbiter
cdrom disk full input midi ppp sda snapshot tty0 tty15 tty21 tty28 tty34 tty40 tty47 tty53 tty6 tty9 urandom vcs2 vcsa2 vcsu2 vhci
char dm-0 fuse kmsg mqueue ptmx sda1 snd tty1 tty16 tty22 tty29 tty35 tty41 tty48 tty54 tty60 ttyS0 usbmon0 vcs3 vcsa3 vcsu3 vhost-net
输入该命令创建一个新的分区。
fdisk /dev/sda
输入 m 获取帮助
[root@Euler03 ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.39.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
GPT PMBR 大小不符(16777215 != 67108863),将用写入予以更正。
该磁盘目前正在使用 - 不建议您重新分区。
推荐您卸载此磁盘上所有的文件系统,并关闭(swapoff)上面的交换分区。
命令(输入 m 获取帮助):m
帮助:
GPT
M 进入 保护/混合 MBR
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o create a new empty MBR (DOS) partition table
s 新建一份空 Sun 分区表
根据提示输入n,分区号、第一个扇区以及最后一个扇区按照默认设置即可,可以直接回车。最后输入w保存并退出。
命令(输入 m 获取帮助):n
分区号 (4-128, 默认 4): 4
第一个扇区 (16775168-67108830, 默认 16775168):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (16775168-67108830, 默认 67106815):
创建了一个新分区 4,类型为“Linux filesystem”,大小为 24 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
正在同步磁盘。
重启
[root@Euler03 ~]# reboot
[root@Euler03 ~]#
连接断开
连接主机...
Authorized users only. All activities may be monitored and reported.
连接主机成功
Authorized users only. All activities may be monitored and reported.
Last login: Thu Dec 5 13:08:59 2024 from 192.168.213.1
Welcome to 6.6.0-28.0.0.34.oe2403.x86_64
System information as of time: 2024年 12月 05日 星期四 13:14:15 CST
System load: 0.50
Memory used: 4.9%
Swap used: 0%
Usage On: 81%
IP address: 192.168.213.130
IP address: 172.17.0.1
Users online: 1
创建文件系统
查看最新的sda,sda4已经被新建出来了。相当于有了一个新的分区
[root@Euler03 ~]# ls /dev/
autofs console dm-1 hidraw0 log net pts sda2 snd tty1 tty16 tty22 tty29 tty35 tty41 tty48 tty54 tty60 ttyS0 usbmon0 vcs3 vcsa3 vcsu3 vhost-net
block core dmmidi hpet loop-control null random sda3 sr0 tty10 tty17 tty23 tty3 tty36 tty42 tty49 tty55 tty61 ttyS1 usbmon1 vcs4 vcsa4 vcsu4 vhost-vsock
bsg cpu dri hugepages mapper nvram rfkill sda4 stderr tty11 tty18 tty24 tty30 tty37 tty43 tty5 tty56 tty62 ttyS2 usbmon2 vcs5 vcsa5 vcsu5 vmci
btrfs-control cpu_dma_latency fb0 hwrng mcelog openeuler rtc sg0 stdin tty12 tty19 tty25 tty31 tty38 tty44 tty50 tty57 tty63 ttyS3 userfaultfd vcs6 vcsa6 vcsu6 zero
bus cuse fd initctl mem port rtc0 sg1 stdout tty13 tty2 tty26 tty32 tty39 tty45 tty51 tty58 tty7 uhid vcs vcsa vcsu vfio
cdrom disk full input midi ppp sda shm tty tty14 tty20 tty27 tty33 tty4 tty46 tty52 tty59 tty8 uinput vcs1 vcsa1 vcsu1 vga_arbiter
char dm-0 fuse kmsg mqueue ptmx sda1 snapshot tty0 tty15 tty21 tty28 tty34 tty40 tty47 tty53 tty6 tty9 urandom vcs2 vcsa2 vcsu2 vhci
为这个分区创建文件系统。mkfs表示make file system,ext4是Linux中常用的一种文件系统。
mkfs.ext4 /dev/sda4
使用该命令会格式化/dev/sda4该分区,并且创建一个新的ext4文件系统。
[root@Euler03 ~]# mkfs.ext4 /dev/sda4
mke2fs 1.47.0 (5-Feb-2023)
创建含有 6291456 个块(每块 4k)和 1572864 个 inode 的文件系统
文件系统 UUID:99c2c3d5-7ed0-47a3-9e00-b61e0da1e77a
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
正在分配组表:完成
正在写入 inode表:完成
创建日志(32768 个块):完成
写入超级块和文件系统账户统计信息:已完成
分配磁盘空间
前面我们创建了一个新的sda4磁盘分区,并且将它格式化成一个文件系统,现在我们要真正给这个分区分配空间。
使用lvm逻辑卷管理器来管理硬盘空间。
lvm
输入vgdisplay -v,可以查看卷组中的详细信息,它会显示所有卷组的详细信息,包括每个卷组的名称、物理卷、逻辑卷、可用空间、已用空间等。
[root@Euler03 ~]# lvm
lvm> vgdisplay -v
--- Volume group ---
VG Name openeuler
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
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 <7.00 GiB
PE Size 4.00 MiB
Total PE 1791
Alloc PE / Size 1791 / <7.00 GiB
Free PE / Size 0 / 0
VG UUID hX29Yz-0SAC-wNr1-2EgI-7bcu-Tchn-Uep6Sp
--- Logical volume ---
LV Path /dev/openeuler/swap
LV Name swap
VG Name openeuler
LV UUID JgJZS8-9MeP-3x5T-ztlW-q6iP-fbfY-M8NyKM
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-11-27 18:27:12 +0800
LV Status available
# open 2
LV Size 820.00 MiB
Current LE 205
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/openeuler/root
LV Name root
VG Name openeuler
LV UUID pilyj6-XHmW-6PrN-I56E-spN1-8vTd-RVqfJ7
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-11-27 18:27:12 +0800
LV Status available
# open 1
LV Size <6.20 GiB
Current LE 1586
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Physical volumes ---
PV Name /dev/sda3
PV UUID qcg1aT-SuHh-zn4f-NR7J-s7PE-yZsh-KjKLmr
PV Status allocatable
Total PE / Free PE 1791 / 0
创建物理卷
选择y,清除ext4签名。物理卷 “/dev/sda4” 成功被创建。
lvm> pvcreate /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.
扩展卷组
我们在前面使用vgdisplay -v命令时,查到Volume group 的VG Name是openeuler,这个就是我们要扩展的卷组。
lvm> vgextend openeuler /dev/sda4
Volume group "openeuler" successfully extended
lvm> vgdisplay
--- Volume group ---
VG Name openeuler
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 30.99 GiB
PE Size 4.00 MiB
Total PE 7934
Alloc PE / Size 1791 / <7.00 GiB
Free PE / Size 6143 / <24.00 GiB
VG UUID hX29Yz-0SAC-wNr1-2EgI-7bcu-Tchn-Uep6Sp
扩展逻辑卷
这个lvextend命令只要关注两个参数,第一个是6143这个数字,这个数值来自Volume group中Free PE / Size的值,也是通过vgdisplay查到的;第二个是/dev/mapper/openeuler-root这个路径,具体要根据你自己使用的Linux机器/dev/mapper/目录下的名称来定。比如centos机器的就是/dev/mapper/centos-root。
因此我通过这个命令把所有可用的空间都扩展进来了。
lvm> lvextend -l+6143 /dev/mapper/openeuler-root
Size of logical volume openeuler/root changed from <6.20 GiB (1586 extents) to 30.19 GiB (7729 extents).
Logical volume openeuler/root successfully resized.
lvm> vgdisplay
--- Volume group ---
VG Name openeuler
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 30.99 GiB
PE Size 4.00 MiB
Total PE 7934
Alloc PE / Size 7934 / 30.99 GiB
Free PE / Size 0 / 0
VG UUID hX29Yz-0SAC-wNr1-2EgI-7bcu-Tchn-Uep6Sp
# 显示物理卷详细信息
lvm> pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name openeuler
PV Size <7.00 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1791
Free PE 0
Allocated PE 1791
PV UUID qcg1aT-SuHh-zn4f-NR7J-s7PE-yZsh-KjKLmr
--- Physical volume ---
PV Name /dev/sda4
VG Name openeuler
PV Size 24.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 6143
Free PE 0
Allocated PE 6143
PV UUID B4q5Mn-2ok8-zspF-07G0-n5Vr-fFAN-3BQ3JD
退出lvm
lvm> ^C
刷新磁盘空间大小
resize2fs
是一个用于调整 ext2、ext3 或 ext4 文件系统大小的命令行工具。当你使用 lvextend
扩展了逻辑卷之后,文件系统本身可能还没有调整到新的大小。resize2fs
命令可以用来将文件系统扩展到逻辑卷的当前大小。
[root@Euler03 ~]# resize2fs /dev/mapper/openeuler-root
resize2fs 1.47.0 (5-Feb-2023)
/dev/mapper/openeuler-root 上的文件系统已被挂载于 /;需要进行在线调整大小
old_desc_blocks = 1, new_desc_blocks = 4
/dev/mapper/openeuler-root 上的文件系统大小已经调整为 7914496 个块(每块 4k)。
[root@Euler03 ~]# reboot
重启一下再看看空间是不是成功扩充了。