问题描述

qemu 虚拟机的根分区满了,导致无法成功登录系统,需要在宿主机上挂载虚拟机的磁盘,清理根分区以恢复正常。

挂载 qcow2 格式磁盘的步骤

从 How to mount a qcow2 disk image 网页中了解到可以通过如下步骤来挂载一个 qcow2 格式的磁盘。

  1. 在宿主机上使能 nbd

使能 ubd 需要加载 ubd 内核模块,通过如下命令来加载:

modprobe nbd max_part=8
  1. 同网络块设备一样连接 qcow2 磁盘

执行如下命令来连接到 qcow2 磁盘:

qemu-nbd --connect=/dev/nbd0 /var/lib/vz/images/100/vm-100-disk-1.qcow2

这里的最后一个参数表示磁盘所在的文件名,需要根据真实的路径修改。

  1. 找到虚拟机磁盘的挂载点

通过 fdisk 来获取挂载点信息,相关命令如下:

fdisk /dev/nbd0 -l
  1. 从虚拟磁盘的挂载点挂载分区

通过 mount 命令来挂载分区,相关命令如下:

mount /dev/nbd0p1 /mnt/somepoint/

这里 /dev/nbd0p1 代表第一分区,虚拟磁盘上可能有多个分区,需要根据情况挂载。

  1. 完成修改后解除挂载并断开连接

完成修改后就可以解除挂载并断开连接了,通过 umount 命令与 qemu-nbd 命令来完成,相关命令如下:

umount /mnt/somepoint/
qemu-nbd --disconnect /dev/nbd0
rmmod nbd

挂载 img 格式的磁盘遇到的问题

挂载 img 格式的磁盘时,连接磁盘时报警,相关信息如下:

[longyu@debian-10:23:48:19] storge-pool $ sudo qemu-nbd --connect=/dev/nbd0 ./debian10.img
WARNING: Image format was not specified for './debian10.img' and probing guessed raw.Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.Specify the 'raw' format explicitly to remove the restrictions.
Failed to set NBD socket
Disconnect client, due to: Unexpected end-of-file before all bytes were read

网上搜索说可以指定 -f raw 选项来解决,继续执行如下命令:

sudo qemu-nbd -f raw --connect=/dev/nbd0 ./debian10.img

执行后仍旧失败,暂时停止。

将 img 格式磁盘导入到其它虚拟机中

尝试在宿主机上挂载 img 格式磁盘失败后,我想到可以将这个磁盘导入到其它虚拟机中来修改。只需要修改另外一台虚拟机的配置,导入已经存在的这个 img 磁盘文件,这样进入该虚拟机后就能够正常挂载并修改相关的内容。

mount qemu qcow2、img相关推荐

  1. KVM之使用libvirt迁移QEMU/KVM、Nova虚机

    学习 KVM 的系列文章:  (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接 ...

  2. qcow2、raw、vmdk等镜像格式

    qcow2.raw.vmdk等镜像格式 来源 http://www.cnblogs.com/feisky/archive/2012/07/03/2575167.html 云计算用一个朋友的话来说:&q ...

  3. linux vmdk 转img,vmdk、vhdx、qcow2、vdi虚拟磁盘格式转换qemu-img

    qemu-img是创建.转换.修改磁盘映像的工具,我们可以用它非常方便的转换虚拟磁盘格式,比如在vmdk.vhdx.qcow2.vdi之间相互转换,它在流行的Linux.macOS.Windows平台 ...

  4. linux—镜像格式转换(qcow2、vmdk、raw、iso)qemu-img指令—直接拿下

    qemu-img 镜像格式转换工具支持 vhd.vmdk.qcow2.raw.vhdx.qcow.vdi 或 qed 社区格式的镜像的相互转换. 查看文件qemu-img info -U (文件名)v ...

  5. ​qemu-img 转换:raw、qcow2、qed、vdi、vmdk、vhd虚拟磁盘格式

    qemu-img 转换:raw.qcow2.qed.vdi.vmdk.vhd ¶ 所述的qemu-IMG转换命令可以执行多种格式,包括之间的转换qcow2,qed, raw,vdi,vhd,和vmdk ...

  6. KVM qcow2、raw、vmdk等镜像格式和转换

    云计算用一个朋友的话来说:"做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做好准备.更苦逼的就是刚以为一个问题不会遇到,立刻就发生了...".这个还真的没有办法,谁让哥 ...

  7. Linux非系统盘挂载,[转载] Linux mount 挂载分区、硬盘

    mount用于Linux系统挂载各种存储设备,如硬盘.分区.通常的用法 mount -t [文件系统] -o [选项参数] 设备分区 挂载点 例如 mount -t ext4 -o uid=501,g ...

  8. linux使用mount命令挂载、umount命令取消挂载

    一.mount挂载目录方式: mount 挂载目录 磁盘目录 二.umout取消挂载目录方式: 1.umout 磁盘目录 2.umout 挂载目录 3.umout 磁盘目录 挂载目录 如下图 转载于: ...

  9. 【Linux命令】mount / umount命令、查看文件的挂载情况(lsblk)

    在Windows环境下,我们可以直接访问检测到的外部设备,如磁盘.U盘等:然而在Linux环境下,外部硬件设备如磁盘.SD卡等外部设备是无法直接访问的.因此就需要挂载. 参考链接:mount 详解 目 ...

最新文章

  1. Day2_and_Day3 文件操作
  2. package.json 中的 bin 字段作用
  3. python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程
  4. Java多线程编程模式实战指南(二):Immutable Object模式--转载
  5. faceapp怎么合成未来宝宝照片_宝宝出生后,爸爸们应该如何宣布喜讯,各种官宣文案孕妈赶紧收藏...
  6. 【渝粤教育】国家开放大学2018年春季 7402-21T社会问题 参考试题
  7. java中的starts_Java Math类静态double nextAfter(double starts,double direction)示例
  8. eclipse 中提示tomcat 的端口被占用了 后的最快捷解决方法
  9. centos7.2 安装 Elasticsearch5.2
  10. 2012-1-31学习日记
  11. eclipse设置背景图片(并非更换主题)
  12. 线程安全问题?怎么解决线程安全
  13. 聊聊几个阿里 P8、P9 程序员的故事
  14. Gos ——内存管理系统
  15. 骑行318、 2016.7.20
  16. python 源代码 macd双底 高 低_久其软件怎么样MACD指标的双底形态特征详解
  17. (转)DEDECMS模板原理、模板标签学习 - .Little Hann
  18. 工作流应用 电子表单签核
  19. 嵌入式学习班到底怎么样?
  20. CSDN日报20170515 ——《 聊聊我对 WannaCry 产生的感慨》

热门文章

  1. Spring Boot进阶:原理、实战与面试题分析
  2. 析因设计知识点重点讲解
  3. 人脸识别技术原来还有这个用途?赶紧get
  4. python 求平面两点距离_Python求平面内点到直线距离的实现
  5. cad.net 利用win32api实现不重复打开dwg路径的文件夹(资源管理器)
  6. 如何在没有密码的情况下打开 Vivo 手机
  7. vue 组件自己不能删除自己,$destroy从组件树上删除+从视图上消失
  8. 联想小新 Air 13 (Pro) 6,7代笔记本安装Win7系统
  9. Unity3d+moba+草丛视野
  10. jQuery mouseover与mouseenter,mouseout与mouseleave的区别