如何使用virsh命令将磁盘镜像添加到KVM虚拟机
如何在Linux操作系统上使用virsh命令将其他磁盘存储添加到来宾操作系统到KVM虚拟机?
您可以轻松地将其他硬盘驱动器添加到KVM域/VM,以增加来宾的存储空间。
在本教程中,您将介绍如何在Linux上使用virsh命令行选项将更多磁盘存储添加到KVM VM。
以下是在Linux上使用virsh命令将基于文件的存储(磁盘镜像)添加到虚拟机的步骤:
步骤1创建新的磁盘镜像
在KVM主机上执行以下命令以创建大小为5G的新磁盘镜像ubuntu-box1-vm-disk1-5G:
$ cd /var/lib/libvirt/images/ $ sudo qemu-img create -f raw ubuntu-box1-vm-disk1-5G 5G
或者,您可以使用dd命令使用以下命令来创建预分配的文件:
$ sudo dd if=/dev/zero of=ubuntu-box1-vm-disk1-5G bs=1M count=5120 status=progress
您刚刚创建了qemu-img或dd命令来创建一个大小为5 GB的新原始磁盘镜像。
磁盘镜像名为ubuntu-box1-vm-disk1-5G:
$ sudo ls -lh
输出示例:
total 17G -rw------- 1 libvirt-qemu kvm 41G Feb 17 15:41 freebsd11.qcow2 -rw------- 1 libvirt-qemu kvm 3.1G Feb 17 15:33 ubuntu-box-1-clone.qcow2 -rw------- 1 libvirt-qemu kvm 41G Feb 17 15:34 ubuntu-box-1.qcow2 -rw-r--r-- 1 root root 5.0G Feb 17 15:42 ubuntu-box1-vm-disk1-5G
关于qcow2格式的注释
默认为原始磁盘镜像格式。
这种格式的优点是简单易用,并且可以导出到所有其他仿真器。
但是,QEMU图像格式(qcow2)是最通用的格式。
如果需要拍摄VM快照或AES加密。
尝试使用qcow2格式。
语法如下:
$ sudo qemu-img create -f qcow2 ubuntu-box2-vm-disk1-5G 5G
步骤2将磁盘连接到虚拟机
在将磁盘追加到VM之前,请找出当前磁盘名称。
登录到您的VM并执行以下命令:
$ df
或者
$ sudo fdisk -l | grep '^Disk /dev/vd[a-z]'
输出示例:
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
因此,我的VM的/dev/vda大小为40GiB。
要追加新创建的ubuntu-box1-vm-disk1-5G镜像,必须使用/dev/vdb。
如果已经有/dev/vdb磁盘,则需要将vdb更改为免费设备,例如/dev/vdc等。
将磁盘追加到名为ubuntu-box1的vm的语法如下:
# virsh attach-disk {vm-name} /var/lib/libvirt/images/{img-name-here} vdb --cache none
或者
# virsh attach-disk {vm-name} \ --source /var/lib/libvirt/images/{img-name-here} \ --target vdb \ --persistent
例如,将磁盘镜像/var/lib/libvirt/images/ubuntu-box1-vm-disk1-5G作为virtio磁盘追加到名为ubuntu-box1的VM /域,并为新磁盘更新域xml文件(执行命令在主机上):
$ sudo virsh attach-disk ubuntu-box1 /var/lib/libvirt/images/ubuntu-box1-vm-disk1-5G vdb --cache none
输出示例:
[sudo] password for Hyman: Disk attached successfully
小心
:只需按几次键,fdisk即可擦除部分或全部硬盘或工作分区。
确保使用fdisk命令使用正确的设备名称。
步骤3在VM中对磁盘驱动器进行分区
现在,名为ubuntu-box1的客户机现在具有一个名为/dev/vdb的硬盘设备。
登录到您的虚拟机,然后执行以下命令进行验证:
$ sudo fdisk -l | grep '^Disk /dev/vd[a-z]'
输出示例:
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
接下来,为新设备启动fdisk:
$ sudo fdisk /dev/vdb
输入n
作为新分区。
输入" p"作为主分区。
选择一个可用的分区号" 1"。
通过按Enter键输入默认的第一个圆柱体。
通过按Enter键选择整个磁盘已分配。
最后输入p
验证新分区。
输入" w"以写入更改并退出。
fdisk命令中的会话示例:
在VM中使用fdisk命令对驱动器进行分区
要使用ext4文件系统格式化新分区,请执行:
$ sudo mkfs.ext4 /dev/vdb1
输出示例:
将/dev/vdb1格式化为ext4
最后,解决方法:您需要创建一个安装目录:
$ sudo mkdir /disk2/
并将磁盘安装在客户机上:
$ sudo mount /dev/vdb1 /disk2/
编辑文件/etc/fstab
$ sudo vi /etc/fstab
并按如下所示进行更新,以使/dev/vdb1始终在重新引导期间挂载:
/dev/vdb1 /disk2 ext4 defaults 0 0
保存并关闭文件。