在运行Debian系统的Oracle VPS上扩容硬盘
条评论VPS在扩容后,系统硬盘不会自动扩容。甲骨文的VPS在网页端操作扩容后,会给出如何扩容的命令提示,但是对于已经安装其他系统(比如本文中使用的Debian系统)的VPS不起作用。本文介绍如何不重启系统进行磁盘扩容。
显示扩容后的硬盘大小
在网页端操作后,没有显示新的磁盘大小,此时有两种方法:
- 重启系统(不推荐)
- 重新扫描scsi设备:
检查 scsi 设备的名称
1 | ls /sys/class/scsi_device |
重新扫描 scsi 总线
用上一步找到的总线名称替换“0:0:0:1”。每个冒号前面都有一个斜杠
1 | echo 1 > /sys/class/scsi_device/0\:0\:0\:1/device/rescan |
查看是否正确显示已更改的磁盘大小
如果没有,请将总线名换成另外一个再试一次
1 | fdisk -l |
使用fdisk -l
命令可能会提示GPT PMBR size mismatch will be corrected by write
的错误
解决办法:
1 | apt install parted |
然后输入Fix
此时再次执行fdisk -l
,可以看到问题解决。
重建分区表
安装所需软件
Debian/Ubuntu
1 | apt -y install cloud-guest-utils gdisk |
Centos/Oracle
1 | yum install cloud-guest-utils gdisk |
删除swap分区
使用fdisk -l
查看swap分区,这里是/dev/sda3
,然后卸载并删除swap
卸载:
1 | swapoff /dev/sda3 |
删除:
1 | fdisk /dev/sda |
输入d
然后输入3
回车,最后输入w
回车。
将/etc/fstab
文件中最后一行也就是挂载swap分区的这一行删除或者注释以取消开机自动挂载swap分区。
调整分区表
不一定是 2,df -lh 看下容量最多的区是多少就写几,例如:/dev/sda3 ,就是growpart /dev/sda 3
1 | growpart /dev/sda 2 |
如果报错:unexpected output in sfdisk –version [sfdisk,来自 util-linux 2.23.2]
执行下面这句修复,之后再执行 growpart /dev/sda 2
1 | LANG=en_US.UTF-8 |
调整分区
调整ext4的分区
Debian/Ubuntu
1 | resize2fs /dev/sda |
Centos/Oracle
1 | xfs_growfs / |
查看是否生效
1 | fdisk -l |