KVM——虚拟机添加设备与挂载磁盘

news2025/3/1 3:59:40

目录

一. 图形化方式添加设备

1.  添加磁盘

2. 添加网卡

二. 命令行形式添加设备 

方式一: 

方式二:

磁盘格式raw和qcow2

raw格式

qcow2格式

如何选择

挂载磁盘 


一. 图形化方式添加设备

 

1.  添加磁盘

2. 添加网卡

先关机

给宿主机添加一块网卡

查看宿主机新增的网卡名字

[root@kvm-server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:0b:a3:ba brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.226.149/24 brd 192.168.226.255 scope global dynamic noprefixroute ens33
       valid_lft 1300sec preferred_lft 1300sec
    inet6 fe80::20c:29ff:fe0b:a3ba/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:e9:d1:84 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
19: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:0b:a3:c4 brd ff:ff:ff:ff:ff:ff
    altname enp2s5


# 激活新网卡
[root@kvm-server ~]# ip link set ens37 up
[root@kvm-server ~]# dhclient ens37
bash: dhclient: 未找到命令...
安装软件包“dhcp-client”以提供命令“dhclient”? [N/y] y


 * 正在队列中等待... 
 * 正在载入软件包列表。... 
下列软件包必须安装:
 dhcp-client-12:4.4.2-19.b1.el9.x86_64	Provides the ISC DHCP client daemon and dhclient-script
 dhcp-common-12:4.4.2-19.b1.el9.noarch	Common files used by ISC dhcp client, server and relay agent
 geolite2-city-20191217-6.el9.noarch	Free IP geolocation city database
 geolite2-country-20191217-6.el9.noarch	Free IP geolocation country database
 ipcalc-1.0.0-5.el9.x86_64	IP network address calculator
继续更改? [N/y] y


 * 正在队列中等待... 
 * 正在等待认证... 
 * 正在队列中等待... 
 * 正在下载软件包... 
 * 正在请求数据... 
 * 正在测试更改... 
 * 正在安装软件包... 
grep: /etc/sysconfig/network-scripts/ifcfg-*: No such file or directory
grep: /etc/sysconfig/network-scripts/ifcfg-*: No such file or directory
grep: /etc/sysconfig/network-scripts/ifcfg-*: No such file or directory
grep: /etc/sysconfig/network-scripts/ifcfg-*: No such file or directory
grep: /etc/sysconfig/network-scripts/ifcfg-*: No such file or directory
grep: /etc/sysconfig/network-scripts/ifcfg-*: No such file or directory

# 重启
[root@kvm-server ~]# systemctl restart NetworkManager.service
[root@kvm-server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:0b:a3:ba brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.226.149/24 brd 192.168.226.255 scope global dynamic noprefixroute ens33
       valid_lft 1790sec preferred_lft 1790sec
    inet6 fe80::20c:29ff:fe0b:a3ba/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:e9:d1:84 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
19: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:0b:a3:c4 brd ff:ff:ff:ff:ff:ff
    altname enp2s5
    inet 192.168.226.150/24 brd 192.168.226.255 scope global dynamic ens37
       valid_lft 1827sec preferred_lft 1827sec

 启动虚拟机

 

二. 命令行形式添加设备 

 

将上面添加的设备删除,进行下述实验。

 

方式一: 

创建空的磁盘文件,这里我创建一个10G的磁盘

[root@kvm-server ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm4-1.qcow2 10G

修改要添加的虚拟机的配置文件

[root@kvm-server ~]# vim /etc/libvirt/qemu/vm10.xml

 定义一个新的虚拟机域(也称为虚拟机配置)

[root@kvm-server ~]# virsh define /etc/libvirt/qemu/vm10.xml
从 vm10 定义的域 '/etc/libvirt/qemu/vm10.xml'

 登录查看

[root@kvm-server ~]# virsh list --all
 Id   名称   状态
-------------------
 -    vm10   关闭

[root@kvm-server ~]# virsh start vm10
域 'vm10' 已启动

[root@kvm-server ~]# virsh console vm10
连接到域 'vm10'
转义字符是 ^] (Ctrl + ])

localhost login: root
Password: 
Last login: Tue Aug  6 22:19:36 on ttyS0
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1 1024M  0 rom  
vda         252:0    0    5G  0 disk 
├─vda1      252:1    0    1G  0 part /boot
└─vda2      252:2    0    4G  0 part 
  ├─rl-root 253:0    0  3.5G  0 lvm  /
  └─rl-swap 253:1    0  512M  0 lvm  [SWAP]
vdb         252:16   0   10G  0 disk 

方式二:

将虚拟机关机

[root@kvm-server ~]# virsh shutdown vm10

 创建空的磁盘文件,这里我创建一个20G的磁盘

[root@kvm-server ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm11-1.img 20G

 添加磁盘

[root@kvm-server ~]# virsh attach-disk vm10 /var/lib/libvirt/images/vm11-1.img vdd --driver qemu --subdriver qcow2 --config

查看信息

[root@kvm-server ~]# virsh domblklist vm10
 目标   源
---------------------------------------------
 vda    /var/lib/libvirt/images/vm10.img
 vdb    /var/lib/libvirt/images/vm4-1.qcow2
 vdd    /var/lib/libvirt/images/vm11-1.img
 sda    -

 

磁盘格式raw和qcow2

 

raw格式

 

  • 简介: raw格式是一种最基本的磁盘镜像格式,它是将整个磁盘内容作为一整块数据存储,不做任何额外的压缩或转换。
  • 特点:
    • 简单性: raw格式非常简单,直接映射到物理设备或者作为一个文件存储。
    • 性能: 由于不涉及额外的处理,raw格式通常提供了比较好的性能。
    • 兼容性: 原生支持各种操作系统和虚拟化平台。

 

qcow2格式

 

  • 简介: qcow2是QEMU的一种磁盘镜像格式,它在raw格式的基础上引入了一些高级功能。
  • 特点:
    • 支持快照: qcow2格式支持虚拟机的快照功能,可以方便地创建和管理虚拟机的快照。
    • 压缩: qcow2可以选择性地进行数据压缩,可以节省存储空间。
    • 动态增长: qcow2格式支持动态增长,即磁盘空间根据需要逐步增加,而不是一开始就占用整个空间。
    • 缓存支持: qcow2支持缓存,可以提高性能。
    • 加密: qcow2还支持数据加密,可以增强数据的安全性。

 

如何选择

  • 性能需求: 如果对性能有较高要求,或者需要直接访问裸设备,可以选择raw格式。
  • 功能需求: 如果需要快照功能、动态增长、压缩或者加密,应选择qcow2格式。
  • 平台支持: qcow2格式在虚拟化平台(如QEMU/KVM)中有更广泛的支持,但raw格式更通用并且可以在各种平台上使用。

 

挂载磁盘 

 

将vm10虚拟机先关闭 

[root@kvm-server ~]# virsh shutdown vm10

查看vm10的磁盘镜像分区信息:

# 如果没有这个命令,会提示你下载,输入y同意即可。
[root@kvm-server ~]# virt-df -h -d vm10
文件系统                            大小 已用空间 可用空间 使用百分比%
vm10:/dev/sda1                            960M       154M       806M   17%
vm10:/dev/rl/root                         3.4G       1.1G       2.3G   33%

创建一个挂载目录

[root@kvm-server ~]# mkdir /test

 挂载虚拟机的 / 分区到test目录

[root@kvm-server ~]# guestmount -d vm10 -m /dev/rl/root --rw /test/

查看

[root@kvm-server ~]# ll /test/
总用量 16
dr-xr-xr-x.  2 root root    6  5月 16  2022 afs
lrwxrwxrwx.  1 root root    7  5月 16  2022 bin -> usr/bin
drwxr-xr-x.  2 root root    6  8月  6 17:40 boot
drwxr-xr-x.  2 root root    6  8月  6 17:40 dev
drwxr-xr-x. 77 root root 8192  8月  6 23:51 etc
drwxr-xr-x.  2 root root    6  5月 16  2022 home
lrwxrwxrwx.  1 root root    7  5月 16  2022 lib -> usr/lib
lrwxrwxrwx.  1 root root    9  5月 16  2022 lib64 -> usr/lib64
drwxr-xr-x.  2 root root    6  5月 16  2022 media
drwxr-xr-x.  2 root root    6  5月 16  2022 mnt
drwxr-xr-x.  2 root root    6  5月 16  2022 opt
drwxr-xr-x.  2 root root    6  8月  6 17:40 proc
dr-xr-x---.  3 root root  147  8月  6 17:50 root
drwxr-xr-x.  2 root root    6  8月  6 17:40 run
lrwxrwxrwx.  1 root root    8  5月 16  2022 sbin -> usr/sbin
drwxr-xr-x.  2 root root    6  5月 16  2022 srv
drwxr-xr-x.  2 root root    6  8月  6 17:40 sys
drwxrwxrwt.  6 root root   75  8月  7 00:11 tmp
drwxr-xr-x. 12 root root  144  8月  6 17:40 usr
drwxr-xr-x. 19 root root 4096  8月  6 17:47 var
[root@kvm-server ~]# cd /test/
# chroot命令将当前进程的根目录(/)设置为指定的目录(这里是.,即当前目录)。
[root@kvm-server test]# chroot .

切换 根( / )

[root@kvm-server /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/:/usr/sbin/nologin
sssd:x:998:996:User for sssd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/usr/share/empty.sshd:/usr/sbin/nologin
chrony:x:997:995:chrony system user:/var/lib/chrony:/sbin/nologin

退出来

[root@kvm-server /]# exit
exit
[root@kvm-server test]# 

取消挂载

[root@kvm-server test]# cd
[root@kvm-server ~]# guestunmount /test
[root@kvm-server ~]# ll /test/
总用量 0
[root@kvm-server ~]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华南理工大学-大学物理实验 迈克尔逊干涉仪

迈克尔逊干涉仪的调整与使用 引言 迈克尔逊( Albert Abrham Michelson, 1852-1931) , 著名的实验物理学家,近现代干涉仪的开山鼻祖。他设计了至今仍在广泛应用的迈克尔逊干涉仪。该仪器设计非常巧妙,测量极其精密,是近代许多干涉仪的基础。迈克尔逊当时设计该仪器的目的之…

HCIA复习 | HCIP基础

目录 Days01&#xff08;24.8.1&#xff09; IPv4 Header OSI七层模型 TCP、UDP数据结构 TCP/IP模型 OSI模型与TCP/IP模型区别 ARP Days02&#xff08;24.8.2&#xff09; 交换机 封装和解封装 IPv6 Header 路由 RIP Days01&#xff08;24.8.1&#xff09; IPv4 …

【面试题】【简历版】完整版

一、Java 基础 java 面向对象特性 封装&#xff08;Encapsulation&#xff09;&#xff1a; public class Student {// 将name和age封装起来private String name;private int age;// 提供方法设置和获取这些属性public void setName(String name){this.name name;}public Str…

JavaEE: 查看线程信息

示例用代码 public class Main {static class MyThread extends Thread {Overridepublic void run() {while (true) {System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}}public st…

基于Java+SpringBoot+Vue的网上超市的设计与实现

基于JavaSpringBootVue的网上超市的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f34…

canal监听mysql增量数据发布到rabbitmq

canal工作原理 canal 依靠mysql主从备份的原理&#xff0c;模拟 MySQL slave 的交互协议&#xff0c;伪装自己为 MySQL slave &#xff0c;向 MySQL master 发送dump 协议MySQL master 收到 dump 请求&#xff0c;开始推送 binary log 给 slave (即 canal )canal 解析 binary …

python模块01-pymysql数据库连接查询

PyMySQL 是用于连接 MySQL 服务器的一个库 1 安装&#xff1a; pip install pymysql 2 数据库连接 conn pymysql.connect(host"127.0.0.1",port3306,user"localhost",password"123456",charset"utf8",cursorclassDictCursor ) cur…

Redisson看门狗机制和mulitLock原理保姆级别

Redisson看门狗机制 这段代码主要实现了异步处理一个任务&#xff0c;并根据任务结果来执行不同的操作。 首先&#xff0c;调用handleNoSync方法进行异步处理&#xff0c;并返回一个表示异步计算结果的CompletionStage<Long>对象&#xff0c;这里使用了threadId和ttlRe…

mathtype7.8永久激活码下载并安装激活MathType7.8破解版

“我好像被数学公式PUA了……” 最近&#xff0c;有位朋友跟我吐槽&#xff1a;自己每次做数学题、写论文&#xff0c;只要遇到复杂的公式和符号&#xff0c;就会特别焦虑。她觉得&#xff0c;自己好像被数学公式PUA了。 “明明知道它很重要&#xff0c;但就是不想面对它。” 其…

[Git][多人协作][下]详细讲解

目录 1.不同分支下多人协作2.远程分⽀删除后&#xff0c;本地git branch -a依然能看到 1.不同分支下多人协作 ⼀般情况下&#xff0c;如果有多需求需要多⼈同时进⾏开发&#xff0c;是不会在⼀个分⽀上进⾏多⼈开发&#xff0c;⽽是⼀个需求或⼀个功能点就要创建⼀个feature分…

CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效

CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效 今天给大家分享一个纯CSS按钮水晶按钮,效果很赞,希望对大家有所帮助。 本例图片 案例分析 这个按钮看起来效果很赞,我们分析一下它由几个层组成: 1. 按钮本体:渐变层+按钮文字 2.用before伪元素实现高光层+内…

Visual Studio 和 Visual Studio Code 的比较与应用偏向

Visual Studio 和 Visual Studio Code&#xff08;VS Code&#xff09;是微软开发的两个不同的开发工具&#xff0c;各有特点和优势&#xff0c;适用于不同的开发需求。下面是详细的比较和在实际应用中的偏向。 功能和特性 Visual Studio 完整的IDE&#xff1a;支持多种编程…

reNgine:终极 Web 侦察和漏洞扫描器

reNgine 是一个针对 Web 应用程序的开源自动侦察框架&#xff0c;专注于高度可配置和简化的侦察过程。 reNgine 的开发是为了克服传统侦察工具的限制。它是漏洞赏金猎人、渗透测试人员和企业安全团队的不错选择&#xff0c;可以自动化和完善他们的信息收集流程。 reNgine 是作为…

LeetCode 热题 HOT 100 (019/100)【宇宙最简单版】[创作中]

【链表】No. 0142 环形链表 II【中等】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#…

AutoGPT 最最最新安装教程

介绍 本指南将帮助您为项目设置服务器和构建器。 先决条件 要设置服务器&#xff0c;您需要安装以下内容&#xff1a; Node.jsPython 3.10 检查是否已安装 Node.js 和 Python 您可以通过运行以下命令来检查是否已安装 Node.js&#xff1a; node -v您可以通过运行以下命…

剪画小程序:录音,怎么一键变成文字!

在学习的道路上&#xff0c;我们总是不断地参加各种讲座、研讨会&#xff0c;渴望汲取更多的知识。 但有时候&#xff0c;一场精彩的讲座结束后&#xff0c;想要回顾其中的重点内容&#xff0c;却发现仅凭记忆难以完整重现。 又或者在与朋友的深度交流中&#xff0c;大家碰撞出…

套接字编程

网络套接字编程 先将数据通过os&#xff0c;将数据发送到目标主机&#xff08;手段&#xff09;TCP/IP协议完成&#xff0c;再在本主机将收到的数据推送到自己上层指定的进程&#xff0c;这时候网络通信本质上就成了进程间的通信。其中ip地址可以标识互联网上唯一的一台主机&a…

Codeforces Round 964 (Div. 4) A~G

封面原图 画师ideolo A - AB Again? 题意 给你一个两位数&#xff0c;把他的个位和十位加起来 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; typedef double db; typedef pair<int,int> pii; typedef pair<ll,ll> pll;voi…

嵌入式学习之路 13(C语言基础学习——预处理命令)

编程流程 在进行程序开发时&#xff0c;通常遵循编辑源代码、编译、运行和调试这几个主要步骤。 编辑源代码&#xff1a;使用文本编辑器创建或修改程序的源代码&#xff0c;这是整个编程过程的起点。编译&#xff1a;将源代码转换为可执行文件的关键步骤。 预处理&#xff1a…

LeetCode.27.移除元素

题目描述&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c;要通过此题&#xff0c;您需要执行以…