OPENFANS开源社区 && 树莓派爱好者基地 荣誉出品
首先确认你的虚拟机已正常关闭或没有运行
本文虚拟机磁盘以 bt.qcow2.disk 为例
查看磁盘大小
执行命令:
qemu-img info bt.qcow2.disk
得到如下信息:
image: bt.qcow2.disk
file format: qcow2
virtual size: 10G (10737418240 bytes) # 磁盘总大小
disk size: 6.4 # 已用容量
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
磁盘扩容
本例我们的目标是为虚拟机磁盘增加10G的容量
执行下面的命令:
qemu-img resize bt.qcow2.disk +10G
然后再次查看磁盘大小
执行命令:
qemu-img info bt.qcow2.disk
结果如下:
image: bt.qcow2.disk
file format: qcow2
virtual size: 20G (21474836480 bytes) # 容量增加成功,总大小为20G
disk size: 6.4G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
扩展已增加的容量至系统分区
首先,启动虚拟机,并登陆虚拟机
ssh -p 2222 root@localhost
查看磁盘大小
执行命令:
fdisk -l /dev/sda
结果如下:
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors # 已增加到20G
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: dos
Disk identifier: 0xcd0e4df1
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 20969471 20967424 10G 83 Linux # 分区容量还未扩展
查看分区大小
执行命令:
df -hT
结果如下:
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 496M 0 496M 0% /dev
tmpfs tmpfs 103M 1.5M 101M 2% /run
/dev/sda1 btrfs 10G 4.7G 4.7G 50% / # 分区容量还未扩展
tmpfs tmpfs 513M 4.0K 513M 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 513M 0 513M 0% /sys/fs/cgroup
tmpfs tmpfs 103M 0 103M 0% /run/user/0
安装 parted 磁盘管理工具
apt update ; apt install parted -y
扩展分区
输入下面的命令:parted ,然后按下列步骤操作:
parted
此时可以看到磁盘信息如下
GNU Parted 3.2
Using /dev/sda # 这是我们需要操作的磁盘
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print # 输入"print",查看当前操作的磁盘信息
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 21.5GB # 总大小已增加至20G
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 10.7GB 10.7GB primary btrfs boot # 此处的“1”是磁盘分区编号,此时分区容量还没有变化
接下来输入如下命令 resizepart :
(parted) resizepart # 输入命令 "resizepart" 进行分区扩展
Partition number? 1 # 输入需要扩展的分区编号,由于我们这里的磁盘只有一个分区,所以输入 “1”
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? yes # 确认继续,输入 "yes"
End? [10.7GB]? 100% # 输入“100%”,将所有可用容量全部扩展到上一步指定的分区
(parted) print # 输入 "print" ,查看当前操作的磁盘信息
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 21.5GB 21.5GB primary btrfs boot # 可以看到增加的磁盘容量已扩展成功
(parted) quit # 输入 "quit" , 退出
Information: You may need to update /etc/fstab.
更新分区表
执行下面的命令
partprobe /dev/sda
partprobe /dev/sda1
扩展文件系统
我们的虚拟机默认的是 btrfs 文件系统,相关的 btrfs 文件系统扩容的操作如下:
执行命令
btrfs filesystem resize max /
将得到如下提示
Resize '/' of 'max'
重新挂载分区
本文扩展的是根分区 “/” ,所以接下来我们重新挂载 “/” 根分区
执行命令:
mount -o remount,rw /
同步数据
执行命令:
sync
验证结果
检查分区大小
输入命令
df -hT
结果如下:
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 496M 0 496M 0% /dev
tmpfs tmpfs 103M 1.5M 101M 2% /run
/dev/sda1 btrfs 20G 4.7G 15G 25% / # 分区已成功扩展
tmpfs tmpfs 513M 4.0K 513M 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 513M 0 513M 0% /sys/fs/cgroup
tmpfs tmpfs 103M 0 103M 0% /run/user/0
重启虚拟机,再次登录,并执行命令 df -hT 已确定结果