centos/ubuntu挂载vmdk、 vdi为块设备的方法(非vdfuse)

因vdfuse只支持virtualbox4.x,目前已经在新版ubuntu或centos中取消,换个思路,可以使用qemu+nbd的方法挂载vmdk,vdi,vhd,vhdx等格式的磁盘。

以下方法在centos7上实现。

1、编译内核,编译nbd为模块。

yum groupinstall "DevelopmentTools"
yum install gcc ncurses ncurses-devel bc
yum update
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.xz
tar -xf linux-4.0.tar.xz -C /usr/src/
cd /usr/src/linux-4.0/
make menuconfig

在配置界面,进入菜单

Device Drivers → Block devices

选中:

<M>   Network block device support

保存,退出:

< Save >

< Exit >

大致如下图:

.config - Linux/x86 4.0.0 Kernel Configuration

 → Device Drivers → Block devices ─────────────────────────────────────────────

┌───────────────────────────── Block devices ─────────────────────────────

    Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty │  

    submenus ----).  Highlighted letters are hotkeys.  Pressing <Y>        │  

    includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to │  

    exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ]         │  

  ┌────↑(-)─────────────────────────────────────────────────────────────  

  │    [*]     Compressed RAM block device debug support                 

  │    < >   Compaq Smart Array 5xxx support                             

  │    < >   Mylex DAC960/DAC1100 PCI RAID Controller support            

  │    < >   Micro Memory MM5415 Battery Backed RAM support              

  │    <M>   Loopback device support                                     

  │    (0)     Number of loop devices to pre-create at init time         

  │    < >     Cryptoloop Support                                        

  │    < >   DRBD Distributed Replicated Block Device support            

  │    <M>   Network block device support                                

  │    <M>   NVM Express block device                                    

  ────↓(+)─────────────────────────────────────────────────────────────┘  

  ├─────────────────────────────────────────────────────────────────────────  

          <Select>    < Exit >    < Help >    < Save >    < Load >         │  

  ─────────────────────────────────────────────────────────────────────────┘  

   

再编译内核:

make
make modules_install install

完成后,reboot

2、修改配置:

设置新内核为自动启动:

 grub2-set-default 0

设置nbd模块自动加载:

建立文件:/etc/sysconfig/modules/nbd.modules

内容:

modprobe nbd max_part=16

重启。

3、安装配置qemu-img与qemu-nbd

 yum install qemu-img

4、创建文件并挂载:

qemu-img create -f vpc test.vhd 10G //创建一个动态模式的10G VHD格式文件
qemu-img create -f vmdk test.vmdk 10G //创建一个动态模式的10G VMDK格式文件
qemu-nbd -c /dev/nbd0 test.vmdk //将test.vmdk挂载到/dev/nbd0设备文件上
时间: 2024-10-14 10:08:20

centos/ubuntu挂载vmdk、 vdi为块设备的方法(非vdfuse)的相关文章

关于ubuntu挂载ntfs无法进行读写的解决方法

1.将已经挂载的磁盘进行修复 sudo ntfsfix 分区名称 例如: sudo ntfsfix /dev/sda2 出现如下则成功 Mounting volume... OK Processing of $MFT and $MFTMirr completed successfully. Checking the alternate boot sector... OK NTFS volume version is 3.1. NTFS partition /dev/sda2 was proces

Ceph实践总结之:Centos 下RBD块设备客户端的配置

在进行本章的操作之前,要先完成基本集群的搭建,请参考http://blog.csdn.net/eric_sunah/article/details/40862215 Ceph的块设备又称为 RBD 或是RADOS. 块设备 实验的过程中,可以用虚拟机来作为ceph-client的节点,但是为了保证集群的稳定,不要在集群的节点上做下面的操作 安装Ceph 通过 OS Recommendations 判断你的客户端的OS是否满足基本的要求. 在管理节点使用 ceph-deploy 在ceph-cli

CentOS Ubuntu网络配置

CentOS网络配置 开启网络功能#vi /etc/sysconfig/network重要参数:        NETWORKING=yes            要不要有网络        NETWORKING_IPV6=no        是否支持 IPv6        HOSTNAME=主机名 网卡的配置文件 相关的网络配置文件和目录:    /etc/sysconfig/network-scripts/        存放网卡的配置文件的目录    以/etc/sysconfig/ne

用 Linux blkid 命令查找块设备详情

今天我们将会向你展示如何使用 lsblk 和 blkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机器. lsblk lsblk 是一个 Linux 工具,它会显示有关你系统里所有可用块设备的信息.它从 sysfs 文件系统 中获取信息.默认情况下,这个工具将会以树状格式显示(除了内存虚拟磁盘外的)所有块设备. lsblk 默认输出 默认情况下 lsblk 会将块设备输出为树状格式: NAME —— 设备的名称 MAJ:MIN —— Linux 操作系统中的每

Ceph 块设备

块是一个字节序列(例如,一个 512 字节的数据块).基于块的存储接口是最常见的存储数据方法,它们基于旋转介质,像硬盘. CD .软盘.甚至传统的 9 磁道磁带.无处不在的块设备接口使虚拟块设备成为与 Ceph 这样的海量存储系统交互的理想之选. Ceph 块设备是精简配置的.大小可调且将数据条带化存储到集群内的多个 OSD . Ceph 块设备利用 RADOS 的多种能力,如快照.复制和一致性. Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互.

linux一切皆文件之块设备文件(四)

一.知识准备 1.在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列) 2.操作这些不同的类型就像操作文件一样,比如增删改查等 3.块设备是将信息存储在大小固定的块中,每一个块都有自己的地址,块设备支持随机访问.典型的块设备比如我们使用的硬盘 二.环境准备 组件 版本 OS Ubuntu 16.04.4 LTS 三.主设备号(major)与次设备号(minor) ● 当一块磁盘被注册到操作系统的时候,会被分配主设备号与次设备号 ● 其中

Linux块设备驱动

推荐书:<Linux内核源代码情景分析> 1.字符设备驱动和使用中等待某一事件的方法①查询方式②休眠唤醒,但是这种没有超时时间③poll机制,在休眠唤醒基础上加一个超时时间④异步通知,异步通知实际上就是发信号⑤输入子系统,这样比较通用 2.块设备相对于字符设备驱动逻辑的变化①对于硬盘对读写的优化假如要读磁头0的扇区0,然后写磁头1的扇区0,然后读磁头0的扇区1,若像字符设备那样,就会机械山跳转2次,效率低.优化:先不执行,放入队列,优化后再执行,这里的优化是指调整顺序. ②对于flash假如要

分布式块设备DRBD9基础用法(快速上手教程)

1. 概述 1.1 介绍 DRBD?(Distributed?Replicated?Block?Device)?是?Linux?平台上的分散式储存系统.其中包含了核心模组,数个使用者空间管理程式及?shell?scripts,通常用于高可用性(high?availability,?HA)丛集.DRBD?类似磁盘阵列的RAID?1(镜像),只不过?RAID是在同一台电脑内,而DRBD是透过网络. 1.2 基本原理 DRBD是linux的内核的存储层中的一个分布式存储系统,架构分为两个部分:一个是内

Smart210学习记录------块设备

转自:http://bbs.chinaunix.net/thread-2017377-1-1.html 本章的目的用尽可能最简单的方法写出一个能用的块设备驱动.所谓的能用,是指我们可以对这个驱动生成的块设备进行mkfs,mount和读写文件.为了尽可能简单,这个驱动的规模不是1000行,也不是500行,而是100行以内. 这里插一句,我们不打算在这里介绍如何写模块,理由是介绍的文章已经满天飞舞了.如果你能看得懂.并且成功地编译.运行了这段代码,我们认为你已经达到了本教程的入学资格,当然,如果你不