本文由秀依林枫提供友情赞助,首发于烂泥行天下

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 attach-disk ilanni01 /vhost/testdisk.img vdb

该命令的意思是把/vhost/testdisk.img硬盘添加到虚拟机ilanni01中,并且该硬盘在虚拟机系统中显示的硬盘名称为vdb。

现在在系统中查看是否已经挂载该硬盘,使用fdisk命令,如下图:

以上操作是在虚拟机运行是,进行操作的。

现在我们把虚拟机关闭然后,再添加看看。

virsh destroy ilanni01

virsh list --all

再次使用virsh attach-disk添加新的硬盘vdc,如下命令:

virsh attach-disk ilanni01 /vhost/test1.img vdc

通过上图我们可以发现,通过virsh attach-disk添加硬盘时,只能是虚拟机运行时才能添加,而且是即时生效的。

现在我们重新启动虚拟机看看,如下图:

fdisk –l

通过上图,我们可以看到通过virsh attach-disk命令添加的硬盘在重启系统后,添加的新硬盘失效。

那么现在我们来看第二种方法通过修改配置文件来添加新硬盘。

要通过修改配置文件来添加硬盘,我们首先要关闭虚拟机,否则无法正常添加。

关闭虚拟机,然后使用virsh edit命令修改虚拟机的主配置文件。

虚拟机的所有配置文件都存放在/etc/libvirt/qemu,如下图:

编辑虚拟机配置文件,如下图:

配置文件中,我们找到有关硬盘的代码:

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source file='/vhost/ilanni01.img'/>

<target dev='vda' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

</disk>

现在我们在</disk>这之后,添加如下的代码

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source file='/vhost/testdisk.img'/>

<target dev='vdb' bus='virtio'/>

</disk>

注意其中type表示硬盘的格式

file表示硬盘所在的路径

dev表示硬盘在系统中显示的硬盘名称

bus表示硬盘的接线类型,如果是windows系统一般是ide。

添加完毕后,我们来启动虚拟机看看实际的效果。

可以看到硬盘已经被添加进来了。

第一种方法和第二种方法的区别,以上两种方法都能添加硬盘。

但是如果是使用第一种方法添加的硬盘,使用virsh edit ilanni01编辑时,是无法看到第一种方法添加的硬盘的,同时在系统重启添加的硬盘会消失。也就是说使用第一种方法添加的硬盘是在ilanni01.xml这个配置文件中看不到的。

除此之外,如果是卸载硬盘,通过第一种方法添加的一定要在虚拟机运行时卸载。否则会报错,但是还会把该磁盘卸载掉。而且在此之前对硬盘的操作、分区,等都还存在。

卸载硬盘我们可以使用virsh detach-disk命令,如下图:

virsh detach-disk ilanni01 --target vdb

使用virsh detach-disk ilanni01 --target vdb 也可以卸载通过virsh edit ilanni01添加的硬盘。但是此时配置文件ilanni01.xml中还是有此信息的。使用 virsh attach-disk ilanni01 /vhost/testdisk.img vdb命令可以再增加,系统重启后还是存在的。

综上所述,在我们添加硬盘时,建议还是使用第二种方法。

烂泥: KVM虚拟机Linux系统增加硬盘的更多相关文章

  1. 烂泥:KVM虚拟机windows系统增加硬盘

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前一篇文章介绍了有关linux系统添加硬盘的方法,这次我们来介绍有关windows系统添加的相关步骤. 其实linux和windows添加的硬盘的方法都 ...

  2. KVM虚拟机windows系统增加硬盘

    原文:http://www.ilanni.com/?p=6211 前一篇文章介绍了有关linux系统添加硬盘的方法,这次我们来介绍有关windows系统添加的相关步骤. 其实linux和windows ...

  3. 虚拟机 Linux 系统增加换页空间

    想在虚拟机里面安装oracle10g,发现默认的swap交换空间不满足最低要求,因为我分配的物理内存是1G,那么就按照要求需要2G的swap交换空间,默认只有1G的交换空间.添加swap交换空间的步骤 ...

  4. 给虚拟机下面的ubuntu系统增加硬盘存储空间

    给虚拟机下面的ubuntu系统增加硬盘存储空间   由于ubuntu系统是安装在vsphere上面的,所以可能会和vmware上面的有一点区别,打开exsi系统的配置页面,如下图所示. 选择添加存储器 ...

  5. kvm虚拟机管理 系统自动化安装

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  6. 安装Ubuntu Linux系统时硬盘分区最合理的方法

    无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在合 ...

  7. Jenkins:VMware虚拟机Linux系统的详细安装和使用教程

    jenkins:VMware虚拟机Linux系统的详细安装和使用教程 (一) 不是windows安装虚拟机可跳过 1.Windows安装VMware 2.VMware安装linux系统 3.windo ...

  8. VM虚拟机Linux系统eth0下面没有inet和inet6

    今天打开虚拟机发现ip有问题,VM虚拟机Linux系统eth0下面没有inet和inet6,明明都是配置好的 打开任务管理器-> 服务-> 打开VM的nat和DHCP和hostd 正常后:

  9. 使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)

    文章目录 1.代码 2.测试结果 2.1.第一次发送 2.2.填写正确的验证码 2.3.填写错误的验证码 连续发送多次验证码 环境准备:虚拟机Linux系统,redis安装在虚拟机中. 前提条件:虚拟 ...

随机推荐

  1. thread_LockSupport

    LockSupport是用来创建锁和其他同步类的基本线程阻塞原语. LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark() ...

  2. c#通用递归生成无限层级树

    NewsType结构: Id ParentId Name children(List<NewsType>) public void LoopToAppendChildren(List< ...

  3. 【JS复习笔记】05 正则表达式

    好吧,正则表达式,我从来没记过.以前要用的时候都是网上Copy一下的. 这里还是扯一下吧,以后要是有要用到的正则表达式那么就收集到这个帖子里.(尽管我认为不会,因为我根本就不是一个专业的前端,我只是来 ...

  4. 找到MVC框架中前端URL与后端同步的解决方案

    基本思路: 先用URL标签生成完整的URL字符,前端动态参数的部分以适配符先填充,最后动态参数利用正则匹配进行替换. 这种方式,可以在各种MVC框架中适用,妙. 不废话,上码. var url = & ...

  5. Ubuntu配置任意版本的apt-get镜像

    我们知道,迄今为止,Ubuntu已有多个发行版,如11.04.11.10,以至于现在最新的16.*.而我们平常通过apt-get来安装软件,如果OS版本不同,那么镜像源的配置就不同,否则就会出现找不到 ...

  6. Jquery学习笔记:利用jquery获取select下拉框的值

    jquery不是特别熟练,每次使用不常用的就要百度,特地记录下来. 我的下拉框是: <div class="form-group"> <select class= ...

  7. CSS属性选择器温故-4

    1.属性选择器就是通过元素属性来找到元素 2.属性选择器语法 CSS3遵循了惯用的编码规则,通配符的使用提高了样式表的书写效率,也使CSS3的属性选择器更符合编码习惯 3.浏览器兼容性 CSS选择器总 ...

  8. javascript函数中的三个技巧【二】

    技巧二: [惰性载入函数] 因为浏览器之间的行为的差异,我们经常会在函数中包含了大量的if语句,以检查浏览器特性,解决不同浏览器的兼容问题,比如,我们最常见的为dom节点添加时间的函数 functio ...

  9. VS2012/2013/2015关闭单击文件进行预览的功能

    Visual Studio在2010版本后推出了点击项目管理器预览文件的功能,但是对于配置不咋地的旧电脑总是觉得有点卡,下面是解决方案. 英文版方法:Tools->Options->Env ...

  10. System.Data.Dbtype转换为System.Data.SqlDbType

    最近在做一些OM Mapping的准备工作,新学了一招. 如果要将System.Data.Dbtype转换为System.Data.SqlDbType,以前以为要写Switch Case语句.其实有很 ...