虚拟磁盘是文件系统虚拟化的基础,常用QCOW2(QEMU Copy-On-Write)格式(支持动态扩容、快照等功能)。
使用qemu-img命令创建虚拟磁盘(需提前安装qemu-utils):
sudo apt update && sudo apt install qemu-utils -y # 安装必要工具
qemu-img create -f qcow2 /path/to/virtual_disk.qcow2 10G # 创建10G虚拟磁盘(动态扩容)
-f qcow2:指定镜像格式为QCOW2;/path/to/virtual_disk.qcow2:虚拟磁盘文件路径;10G:虚拟磁盘初始大小(可根据需求调整)。创建后的虚拟磁盘需格式化为文件系统(如ext4)才能使用:
sudo mkfs.ext4 /path/to/virtual_disk.qcow2 # 格式化为ext4文件系统
注意:格式化会清除磁盘内所有数据,请确认磁盘未包含重要文件。
将虚拟磁盘挂载到Ubuntu的目录(如/mnt/virtual_disk),实现虚拟文件系统的访问:
创建挂载点:
sudo mkdir -p /mnt/virtual_disk # 创建挂载目录
挂载虚拟磁盘:
使用-o loop选项将虚拟磁盘作为环回设备挂载:
sudo mount -o loop /path/to/virtual_disk.qcow2 /mnt/virtual_disk
验证挂载:
查看挂载点内容,确认挂载成功:
ls /mnt/virtual_disk # 应显示空目录(未写入文件前)
卸载虚拟磁盘(使用完毕后):
sudo umount /mnt/virtual_disk # 安全卸载
若虚拟磁盘空间不足,可通过以下步骤扩展(以QCOW2格式为例):
qemu-img增加虚拟磁盘大小(如从10G扩展至15G):qemu-img resize /path/to/virtual_disk.qcow2 +5G # 增加5G容量
ext4,需先挂载虚拟磁盘,然后使用resize2fs扩展:sudo mount -o loop /path/to/virtual_disk.qcow2 /mnt/virtual_disk
sudo resize2fs /dev/loop0 # 自动扩展至磁盘最大容量
sudo umount /mnt/virtual_disk
xfs,需使用xfs_growfs(需先扩展分区,再扩展文件系统)。若已有现成的虚拟磁盘文件(如Ubuntu安装镜像的.img、VMware的.vmdk),可通过以下方式挂载:
通用方法(使用kpartx):
sudo kpartx -av /path/to/disk.img # 将镜像分区映射到设备
sudo mount /dev/mapper/loop0p1 /mnt/virtual_disk # 挂载第一个分区
VMware文件共享(.vmdk):
若需挂载VMware共享文件夹,需安装open-vm-tools:
sudo apt install open-vm-tools open-vm-tools-desktop -y
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other # 挂载共享文件夹
VirtualBox文件共享(.vdi):
类似VMware,需安装virtualbox-guest-utils并配置共享文件夹。
若需修改虚拟磁盘中的系统文件(如安装软件、修改配置),可使用chroot切换到虚拟文件系统的环境:
mkdir -p ~/rootfs # 创建虚拟文件系统目录
sudo mount -o loop /path/to/virtual_disk.qcow2 ~/rootfs
sudo cp /etc/resolv.conf ~/rootfs/etc/ # 复制网络配置
sudo cp /usr/bin/qemu-aarch64-static ~/rootfs/usr/bin/ # 若为ARM架构,需复制qemu工具
sudo chroot ~/rootfs # 切换到虚拟文件系统的root环境
exit即可返回原系统。qcow2适合QEMU/KVM虚拟机,vmdk适合VMware,vdi适合VirtualBox;/etc/resolv.conf、/bin/bash)。