您的位置:首页 > 运维架构 > Linux

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

2017-08-14 00:00 645 查看
因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设备文件上


本文出自 “张宇(数据恢复)” 博客,请务必保留此出处http://zhangyu.blog.51cto.com/197148/1862716
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qemu vdi vmdk