CDemu是模拟CD、DVD设备的内核模块。它让你能使用.bin/.cue, .nrg, 或 .ccd这样的非ISO-9660格式的光盘镜像。之所以要用到它,是因为mount只能挂载iso。iso只包含单一的文件系统,而许多cd都带有复杂的信息,比如混合数据和音轨。CDemu让你能获得这些CD镜像完整、原始的内容。
CDemu利用vhba内核模块模拟出一个SCSI CD/DVD设备,由后台运行的cdemud守护进程(cdemud)与该模块通信。镜像分析代码被抽象到一个库中(libmirage),需要支持新的镜像格式时,也便于扩充。守护进程响应来自客户端的dbus命令。CDemu软件包提供了两种可选的客户端:基于命令行的(cdemu-client)和GNOME的panel applet——(gcdemu).
CDemu工具组可在AUR的unsupported部分找到。
你需要依次安装以下的软件包:
注意:每次内核升级,vhba都需要重新编译。
然后你可以选择使用哪种客户端。简洁的命令行客户端是cdemu-client, GNOME panel applet是gcdemu。你至少要装一个,也可以都装上,因为它们并不冲突。
所有的包都装好之后,你可以启动守护进程了。以root权限运行:
# /etc/rc.d/cdemud start
如果你想在开机时启动cdemu,把cdemud添加到/etc/rc.conf的DAEMONS=列表中。cdemud脚本会自动嵌入vhba模块,所以也没有必要把vhba加到MODULES=中。
现在你已经可以各种CD镜像了。命令行的客户端很简单:
$ cdemu load 0 <imagefile>
镜像文件将被加载到第一个(在默认设置中也是唯一一个)虚拟设备。
注意: 如果出现“Failed to connect to CDEmu daemon”错误,你也许要加上'-b system'参数,像这样:
$ cdemu -b system load 0 <imagefile>
或者,要使用GNOME panel applet, 右键单击一个面板,点击"Add to Panel...", 选择"gCDEmu Applet"。点击图标,选择一个设备打开对话框,选择镜像文件然后点ok
现在你可以挂载虚拟的CD来读取上面的数据:
# mount -t iso9660 /dev/sr1 /media
如果你已经有了一个真正的CD/DVD设备,也就是/dev/sr0,/dev/sr1就是cdemu创建的虚拟设备。请根据你的系统的实际情况选择。
到这里,你就可以在/media目录下查看镜像的内容了,就像普通的CD一样。