烂泥: KVM虚拟机Linux系统增加硬盘

简介:

本文首发于烂泥行天下

Linux虚拟机在使用过程中,硬盘空间不够使用。由于前期没有做LVM,所以只能手动添加新的硬盘。

给虚拟机添加硬盘有两种方法:

1、通过virsh attach-disk命令添加一块硬盘到系统中,即时生效,但系统重启后新硬盘会消失。

2、通过修改虚拟机配置文件进行添加,永久生效。

现在我来一一介绍方法一和方法二。

方法一、通过virsh attach-disk命令添加硬盘

首先看看在未添加新硬盘系统的分区情况。

fdisk –l

df –h

clip_image001

从上图我们可以看到目前系统中只有一块硬盘vda,而且被分成3个分区,其中vda1为系统启动分区。

下面开始添加硬盘:

先使用 qemu-img添加一块新的硬盘

qemu-img create -f qcow2 /vhost/testdisk.img 20G

clip_image002

现在开始使用virsh attach-disk命令把新硬盘添加到虚拟机上。

virsh attach-disk ilanni01 /vhost/testdisk.img vdb

clip_image003

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

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

clip_image004

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

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

virsh destroy ilanni01

virsh list --all

clip_image005

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

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

clip_image006

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

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

fdisk –l

clip_image007

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

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

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

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

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

clip_image008

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

clip_image009

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

<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。

clip_image010

clip_image011

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

clip_image012

clip_image013

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

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

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

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

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

virsh detach-disk ilanni01 --target vdb

clip_image014



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

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


本文转自 烂泥行天下 51CTO博客,原文链接:http://blog.51cto.com/ilanni/1532815


相关文章
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
80 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
72 2
|
4天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
111 78
|
8天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
37 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
119 48
|
4天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
40 13
|
28天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
20 3
|
4天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
17 0
|
1月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
52 4
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
33 1
下一篇
DataWorks