先对虚拟机进行快照备份以防万一
概述
过程图可参考 Linux磁盘扩容-脚本之家
直接
resize2fs /dev/sda3
会报错, 原因可能是CSDN-博客, 此文参考了stackexchange问答, 具体如下文第6步之前所示.此文询问了ChatGPT
图形化界面可以使用自带的Disks或下载gparted
磁盘容量与主分区、扩展分区、逻辑分区的关系:
硬盘容量 = 主分区容量 + 扩展分区容量
扩展分区容量 = 各个逻辑分区容量之和
主要命令
# 环境: Ubuntu 24.04 LTS
# 内核版本: Linux vmubuntuserver 6.8.0-39-generic #39-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 21:49:14 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
# 命令执行用户: root
######
# 以下内容是给了命令`lsblk`和``的`df -a -x -t -h`的结果后, 由ChatGPT生成的
######
# 1 假设已在虚拟机管理器中增加了磁盘大小
# 2 查看新的磁盘大小(在虚拟机中)并确定要修改的磁盘挂载目录, 并定位逻辑卷名(挂载了`/`的卷)
lsblk
df -a -x -t -h
# 3 使用 fdisk 调整分区表 (这里假设要扩充的磁盘是sda 并且使用 LVM)
fdisk /dev/sda
# 在 fdisk 中的交互步骤:
# p (打印分区表)
# d (删除分区, 选择 sda3, 即第3个)
# n (新建分区, 选择分区号3, 起始扇区和删除的分区保持一致, 结束扇区选择新扩展的大小) (**是两次enter和一次y, 都是默认配置**)
# t (更改分区类型, 选择分区号3, 设置类型为8e, 即Linux LVM (**此操作实际未执行, 系统中显示为Linux FileSystem**)
# w (保存并退出)
# 4 刷新分区表
sudo partprobe
# 5 扩展物理卷(PV)
sudo pvresize /dev/sda3
# 由于ubuntu安装在LVM虚拟卷上,因此不能直接 resize2fs 物理分区, 需要先扩展物理分区和逻辑分区
# 6 查看卷组(VG)和逻辑卷(LV)
sudo vgdisplay
sudo lvdisplay
# 7 扩展逻辑卷(LV), 这里+10G要改为实际要增加的容量, 后面的逻辑卷名以自己机器上的为主
sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv #
# 8 扩展文件系统, 假设你使用的是 ext4 文件系统。
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv # 改为自己的逻辑卷名
# 9 检查文件系统
df -h
# 重启以适应更改(也许需要)
systemctl reboot
附对ChatGPT的提问
root@vmubuntuserver:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 32G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1.8G 0 part /boot
└─sda3 8:3 0 18.2G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 10G 0 lvm /
sr0 11:0 1 2.6G 0 rom
root@vmubuntuserver:~# df -a -x -t -h
Filesystem Size Used Avail Use% Mounted on
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
udev 1.9G 0 1.9G 0% /dev
devpts 0 0 0 - /dev/pts
tmpfs 387M 1.6M 386M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 9.8G 6.3G 3.0G 68% /
securityfs 0 0 0 - /sys/kernel/security
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
cgroup2 0 0 0 - /sys/fs/cgroup
pstore 0 0 0 - /sys/fs/pstore
bpf 0 0 0 - /sys/fs/bpf
systemd-1 - - - - /proc/sys/fs/binfmt_misc
hugetlbfs 0 0 0 - /dev/hugepages
mqueue 0 0 0 - /dev/mqueue
debugfs 0 0 0 - /sys/kernel/debug
tracefs 0 0 0 - /sys/kernel/tracing
fusectl 0 0 0 - /sys/fs/fuse/connections
configfs 0 0 0 - /sys/kernel/config
/dev/sda2 1.8G 182M 1.5G 12% /boot
binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
tmpfs 387M 8.0K 387M 1% /run/user/0
以上命令的结果列出了一个linux服务器的磁盘情况, 现在要给它的磁盘扩容10G, 应该输入那些命令