KVM虚拟机如何添加磁盘镜像

时间:2019-11-20 08:53:39  来源:igfitidea点击:

如何使用virsh命令将磁盘映像添加到KVM虚拟机中?
如何为KVM虚拟机添加硬盘空间?
如何为KVM虚拟机添加新的磁盘?

创建新的磁盘映像

在KVM主机上执行以下命令,
创建一个5G大小的磁盘映像ubuntu-box1-vm-disk1-5G:

$ cd /var/lib/libvirt/images/
$ sudo qemu-img create -f raw ubuntu-box1-vm-disk1-5G 5G
[sudo] password for Hyman: Formatting 'ubuntu-box1-vm-disk1-5G', fmt=raw size=5368709120

或者使用dd命令创建

$ sudo dd if=/dev/zero of=ubuntu-box1-vm-disk1-5G bs=1M count=5120 status=progress
5192548352 bytes (5.2 GB, 4.8 GiB) copied, 10.5212 s, 494 MB/s 5120+0 records in 5120+0 records out 5368709120 bytes (5.4 GB, 5.0 GiB) copied, 10.9421 s, 491 MB/s

关于qcow2格式的说明

默认磁盘映像格式为原始盘。这种格式的优点是简单易用,并且可以导出到所有其他仿真器。

但是最通用的格式的是QEMU 镜像格式(qcow2)。我们可以使用-f选项指定创建的镜像格式。

$ sudo qemu-img create -f qcow2 ubuntu-box2-vm-disk1-5G 5G

将磁盘添加到虚拟机

首先查看当前磁盘名称。

登录到KVM虚拟机,执行下面命令:

$ df

或者

$ sudo fdisk -l | grep '^Disk /dev/vd[a-z]'

输出示例:

Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors

已经有了一个磁盘/dev/vda。
所以新磁盘,我们使用/dev/vdb。

将磁盘附加到虚拟机ubuntu-box1中的语法如下:

# 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

示例:

$ 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

在KVM虚拟机中对磁盘进行分区

现在有了一个新的磁盘/dev/vdb。

登录到KVM虚拟机,执行下面的命令进行确认。

$ 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

对新磁盘进行格式化

$ sudo fdisk /dev/vdb

输入n作为新分区。
输入p作为主分区。
选择一个可用的分区号1
直接回车,将默认的第一个扇区作为分区的开始。
直接回车,将整个磁盘分配给分区。
最后输入p验证新分区。
输入w写入分区表并退出。

在分区上创建ext4文件系统:

$ sudo mkfs.ext4 /dev/vdb1

创建挂载点:

$ sudo mkdir /disk2/

将新建分区挂载到/disk2中

$ sudo mount /dev/vdb1 /disk2/

编辑文件/etc/fstab,

$ sudo vi /etc/fstab

添加下面这行,保证/dev/vdb1在系统重新引导时自动挂载:

/dev/vdb1    /disk2    ext4     defaults    0 0