本文由秀依林枫友情赞助,首发于《论地行天下》。
Linux虚拟机使用过程中,硬盘空间不足。由于前期没有做LVM,所以只能手动添加新硬盘。
向虚拟机添加硬盘有两种方法:
1。通过 virsh Attach-disk 命令将硬盘添加到系统中。会立即生效,但系统重启后新硬盘就会消失。
2。通过修改虚拟机配置文件添加,永久生效。
现在我来一一介绍方法一和方法二。
方法一、通过virsh Attach-disk命令添加硬盘
首先看一下没有添加新硬盘的情况下系统的分区情况。
fdisk –l
df –h
从上图我们可以看到系统中目前只有一个硬盘vda,并且分为3个分区,其中vda1是系统启动分区。
开始添加以下硬盘:
首先使用qemu-img添加新硬盘
qemu-img create -f qcow2 /vhost/testdisk.img 20G
现在使用 virsh Attach-disk 命令将新硬盘添加到虚拟机。
virsh 附加磁盘 ilanni01 /vhost/testdisk.img vdb
该命令的意思是向虚拟机ilanni01添加/vhost/testdisk.img硬盘,虚拟机系统中显示的硬盘名称为vdb。
现在检查系统中是否已挂载硬盘,使用fdisk命令,如下图:
以上操作是在虚拟机运行时执行的。
现在让我们关闭虚拟机并再次添加它。
virsh 摧毁 ilanni01
virsh 列表 --全部
再次使用virsh Attach-disk添加新硬盘vdc,命令如下:
virsh 附加磁盘 ilanni01 /vhost/test1.img vdc
从上图我们可以发现,通过virsh Attach-disk添加硬盘时,只能在虚拟机运行时添加,并且立即生效。
现在我们重启虚拟机看看,如下图:
fdisk –l
从上图可以看到,重启系统后,通过virsh Attach-disk命令添加的新硬盘就失效了。
现在我们看第二种通过修改配置文件添加新硬盘的方法。
通过修改配置文件的方式添加硬盘,我们必须先关闭虚拟机,否则无法正常添加。
关闭虚拟机,然后使用 virsh edit 命令修改虚拟机的主配置文件。
虚拟机的所有配置文件都存放在/etc/libvirt/qemu中,如下图:
编辑虚拟机配置文件,如下图:
在配置文件中,我们找到关于硬盘的代码:
现在我们在
后面添加以下代码注意type代表硬盘的格式
文件表示硬盘所在路径
dev表示系统中显示的硬盘名称
bus表示硬盘的接线类型。如果是Windows系统,一般都是IDE。
添加完成后,我们启动虚拟机看看实际效果。
可以看到硬盘已添加。
第一种方法和第二种方法的区别,以上两种方法都可以添加硬盘。
但是如果使用第一种方法添加硬盘,用virsh edit ilanni01编辑时就看不到第一种方法添加的硬盘。同时,系统添加的硬盘会在系统重启时消失。也就是说,使用第一种方法添加的硬盘在ilanni01.xml配置文件中是看不到的。
另外,如果要卸载硬盘,则必须在虚拟机运行时卸载通过第一种方法添加的硬盘。否则会报错,但磁盘也会被卸载。而且,之前对硬盘的操作和分区仍然存在。
要卸载硬盘,我们可以使用virsh detach-disk命令,如下图:
virsh 分离磁盘 ilanni01 --目标 vdb
使用 virsh detach-disk ilanni01 --target vdb 也可以卸载通过 virsh edit ilanni01 添加的硬盘。但此时,配置文件ilanni01.xml中仍然有此信息。使用virsh Attach-disk ilanni01 /vhost/testdisk.img vdb命令添加更多,系统重启后仍然存在。
综上所述,当我们添加硬盘时,建议使用第二种方法。
-->