我正在尝试编写一个脚本来以编程方式扩展磁盘(启用 LVM)。
ubuntu 服务器 22.04 映像将用于在主机上创建自动配置的 VM。
我知道该sudo lvextend -L +[size] [partition]
命令,但我想自动查询可用空间/dev/sda
,然后将其传递给lvextend
.
在所有场景中,只有 1 个可用空间可变的磁盘,我想自动扩展 linux 分区以占用全部空间。
我的df -h
看起来像这样:
runner@hya-worker-temp:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 91M 928K 90M 2% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 7.6G 3.9G 3.3G 55% /
tmpfs 453M 0 453M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 1.7G 126M 1.5G 8% /boot
/dev/sda1 537M 5.3M 532M 1% /boot/efi
tmpfs 91M 4.0K 91M 1% /run/user/1001
如何查询可用空间并将其lvextend
从.sh
脚本传递给它,或者是否有更简单的方法来扩展存储。
答案1
我创建了以下脚本,它完全满足我的需要:
growpart /dev/sda 3
pvresize /dev/sda3
lvresize -l+100%FREE --resizefs /dev/mapper/ubuntu--vg-ubuntu--lv
答案2
我认为您的磁盘大小是否会自动扩展取决于您设置的分配存储类型。
仅以 VirtualBox 为例,如果选择fixed size storage
,则磁盘大小不会自动扩展;如果选择Dynamically allocated storage
,则磁盘自动扩展。
但无论您在何处设置动态分配,在VirtualBox
,甚至Hy-V
,该磁盘都具有最大大小。例如:Debian/Ubuntu 的动态空间的最大大小是12GB
。
因此,当您的磁盘已用完后12GB
,您需要再次手动扩展虚拟机的磁盘空间。
最近,我只是像你一样将我的VM Debian设置为动态扩展,并设置了VM的空间大小12GB
,但是几个月后,我的VM Debian的磁盘空间已经全部用完100%
,所以我不得不花费一周的时间来学习如何手动扩展虚拟机的磁盘大小,因为我的虚拟机说Low disk space, only less than 100MB free!
。哦,我过去亲爱的日子!
注意:如果某个磁盘的使用百分比达到80
,即使用率达到 80% ,则该磁盘处于危险状态。
总之,我建议您为虚拟机启用更多空间,例如:30GB
甚至60GB
.
超过!