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

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

以下方法在centos7上实现。

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

1
2
3
4
5
6
7
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 >           

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

                                                                               


 

   再编译内核:

    

1
2
make
make modules_install install

 完成后,reboot

2、修改配置:

    设置新内核为自动启动:

1
 grub2-set-default 0

    设置nbd模块自动加载:

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

    内容:

1
modprobe nbd max_part=16

   重启。

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

1
 yum install qemu-img

4、创建文件并挂载:

1
2
3
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设备文件上










本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/1862716,如需转载请自行联系原作者
上一篇:12 个最好的免费网站速度和性能测试工具


下一篇:【Android错误集锦】Error:Execution failed for task ':app:processMockDebugManifest'.