当前位置: 首页 > news >正文

【云计算 | OpenStack】在无法网络访问的情况下,如何在KVM虚机和宿主机之间互传文件

1. 背景

正常如果打通KVM虚机和宿主机之间的网络,可以通过scp的方法或者使用filezilla等工具进行文件的传输。但是如果KVM虚机无法通过网络正常访问,又想在虚机和宿主机之间传输文件,这时候应该怎么办呢?
这时候要用到如下命令给KVM虚机添加一个disk device(其中包含我们想传输的文件)
attach-disk <domain> <source> <target>

  • domain:虚机的name,id或者uuid
  • source:源disk device,一般指KVM宿主机上的一块分区
  • target:目的disk device,一般就是指kvm虚机上的硬盘,例如vdb

2. 实践

2.1 宿主机向KVM虚机传输文件

1、先在宿主机上生成一个disk device

[root@tudou mnt]# dd if=/dev/zero of=/mnt/disk_device bs=1G  count=1
  • /dev/zero: 可以产生连续不断的二进制零流,用来对设备或文件进行初始化
  • bs: 一次读取和写入的字节数,默认block为512字节
  • count: 从count个block进行拷贝,所以of对应文件的大小等于bs*count

在这里插入图片描述

2、格式化disk device

[root@tudou mnt]# mkfs.ext4 /mnt/disk_device

3、挂载disk device

[root@tudou mnt]# mkdir transfer && mount /mnt/disk_device /mnt/transfer/

在这里插入图片描述

4、传输想要上传到KVM虚机的文件到宿主机的/mnt/transfer目录下,这里直接新建一个文件用于测试

在这里插入图片描述

5、挂载disk device到KVM虚机

在这里插入图片描述

6、利用vncviewer进入KVM虚机,mount新增的设备,读取文件(可以将文件直接拷贝到其他目录下,方便以后使用)

在这里插入图片描述

7、从宿主机上直接解挂disk device

在这里插入图片描述

2.2 KVM虚机向宿主机传输文件

1、先在宿主机上生成一个disk device

[root@tudou mnt]# dd if=/dev/zero of=/mnt/disk_device bs=1G  count=1

2、格式化disk device

[root@tudou mnt]# mkfs.ext4 /mnt/disk_device

3、挂载disk device到KVM虚机

[root@tudou mnt]# virsh attach-disk 2 /mnt/disk_device vdb

4、进入KVM虚机,mount新增的设备,传输想要上传到宿主机的文件到KVM虚机的/mnt/transfer目录下,这里直接新建一个文件用于测试(下图的vdc与第三步中的vdb不对应,是因为KVM虚机之前新增过/dev/vdb设备,不影响使用)

在这里插入图片描述

5、在宿主机上mount disk device,然后查看文件

在这里插入图片描述

6、从宿主机上直接解挂disk device

[root@tudou transfer]# virsh detach-disk 2 vdb

相关文章:

  • java毕业设计演出票在线预定网站系统Mybatis+系统+数据库+调试部署
  • 多线程同步-信号量内核对象
  • SpringBoot+Vue实现前后端分离教学评价系统
  • 【漏洞复现-phpmyadmin-文件包含】CVE-2014-8959
  • 用于交通预测的时空交互动态图卷积网络
  • 【尚学堂】超火爆的Java游戏羊了个羊_java开发游戏项目
  • 【DDR3 控制器设计】(2)DDR3 初始化测试
  • 数据结构之树2
  • 微信小程序开发实战9_1 生成小程序码
  • Informer时序模型(代码解析)
  • CAN协议解析
  • 转置卷积详解(原理+实验)
  • ES字符串从任意位置模糊查询(支持只匹配含连续字符串内容)
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • STM32F103移植FreeRTOS必须搞明白的系列知识---4(FreeRTOSConfig.h配置文件)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • angular组件开发
  • avalon2.2的VM生成过程
  • ComponentOne 2017 V2版本正式发布
  • js继承的实现方法
  • oldjun 检测网站的经验
  • react 代码优化(一) ——事件处理
  • SQLServer之索引简介
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • yii2权限控制rbac之rule详细讲解
  • 从输入URL到页面加载发生了什么
  • 好的网址,关于.net 4.0 ,vs 2010
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 浅谈Golang中select的用法
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 三分钟教你同步 Visual Studio Code 设置
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 一道闭包题引发的思考
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • linux 淘宝开源监控工具tsar
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #Spring-boot高级
  • #在 README.md 中生成项目目录结构
  • (06)Hive——正则表达式
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (4) PIVOT 和 UPIVOT 的使用
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (一)基于IDEA的JAVA基础12
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • ./configure,make,make install的作用
  • .NET DataGridView数据绑定说明
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @media screen 针对不同移动设备
  • @SpringBootApplication 包含的三个注解及其含义
  • [ 转载 ] SharePoint 资料
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C++]AVL树怎么转
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]