因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
选中:
Network block device support
保存,退出:
大致如下图:
.config - Linux/x86 4.0.0 Kernel Configuration
→ Device Drivers → Block devices ─────────────────────────────────────────────
┌─────────────────────────────Block devices─────────────────────────────┐
│Arrow keys navigate the menu. selects submenus ---> (or empty │
│submenus ----). Highlighted letters are hotkeys. Pressing │
│includes, excludes, modularizes features. Press 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││
││Loopback device support││
││(0) Number of loop devices to pre-create at init time││
││< >Cryptoloop Support││
││< >DRBD Distributed Replicated Block Device support││
││ Network block device support││
││ NVM Express block device││
│└────↓(+)─────────────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────────────────────┤
│ │
└─────────────────────────────────────────────────────────────────────────┘
再编译内核:
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-nbdyum 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设备文件上