試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

CDEmuについての覚え書き(概要、カスタムカーネル使用時のビルド設定、ユーザの大まかな操作)

ここでは、仮想CD/DVD(ROM)ドライブを提供するCDEmuパッケージ・スイートの概要とカーネルビルド時の設定、簡単な使い方を扱う。

概要

CDやDVDのディスクをイメージ(ファイル)化したものを、GNU/Linux上で仮想SCSIドライブ上のディスクと見せかけてマウントして使用することを可能にするパッケージ群。
バージョン1.0.0からは構造が新しくなっていて、Windows上の仮想ドライブソフトDAEMON Toolsに近く、ユーザフレンドリーなものとなっている。
以下はCDEmuスイートを構成するパッケージ。

  • Virtual Host Bus Adapter(VHBA): SCSIコントローラをエミュレート・Linuxカーネルモジュールとして動作
  • CDEmu daemon: SCSIドライブ/ディスクをエミュレートするデーモン
  • libMirage: ディスクイメージ形式をサポートするライブラリ
  • クライアント: ユーザが操作するCDEmu client(cdemuコマンド)やgCDEmu(GNOMEパネル向けアプレット)

上記全てがインストールされている必要があるが、クライアントについては使用するものが1つあればよい。なお、gCDEmuをXfce4のパネル上で使用したいのであれば、XfAppletが役に立つ。

ディストリのパッケージ

Gentoo Linuxでは標準でパッケージが用意されているため、簡単にインストールすることができる。ただし、幾つかの作業は(指示通りに)手動で行う必要がある。
Debian/Ubuntu/Fedoraでは本家サイトSourceForgeのプロジェクトページからディストリ向けのパッケージが入手できる(ソースパッケージのみのものもある)。
(2011/1/14)2011年1月の時点ではDebianFedora向けのパッケージはない。OpenSuSEMandrivaには標準でパッケージがある。Ubuntuについては「UbuntuにおけるCDEmuと最新のグラフィックドライバのインストールについて(Ubuntu 10.10時点)」を参照。

対応するディスクイメージ形式

イメージの形式に関する対応状況はlibMirageのページを参照。
XDVDShrinkのようなDVDリッピングツールで作成したDVDISOイメージもマウントでき、仮想DVDとして使用できる。*1

カスタムカーネル使用時のビルド設定について

ディストリのカーネルを使用している場合は恐らく問題ないが、自分でビルドしたカーネルを使用している場合、SCSI CDROMサポート(デバイスは「/dev/sr[デバイス番号]」が使用される)に関する以下の項目がモジュールもしくは組み込みになっている必要がある(下の例ではモジュール)。
下はLinux 2.6.26の時点での設定場所。

Device Drivers  --->
 SCSI device support  --->
  <M> SCSI CDROM support     [CONFIG_BLK_DEV_SR]
  <M> SCSI generic support   [CONFIG_CHR_DEV_SG]

大まかなユーザの操作(イメージを開く/外す)

gCDEmuからファイルを読み込むか、もしくは「cdemu load」コマンドを実行する.と、そのファイルが/dev/sr[デバイス番号]を通じて仮想SCSIドライブ(のディスク)としてアクセスできるようになる。*2デスクトップ環境上では、CD/DVDを実際のドライブに挿入したときのようにディスクのアイコンが表示され、データファイルが含まれている場合にはマウントして中身を開くことができる。
cdemu unload」コマンドを実行するか、gCDEmuの使用中の項目を再び選択する、あるいはデスクトップ環境のアイコンから「取り出し」の操作を行うと、ディスクイメージは外される。
cdemu status」コマンドを実行すると、仮想ドライブ/ディスクの使用状況が確認できる(gCDEmuの場合はメニューを見ればすぐに分かる)。

(「CDEmuについての覚え書き(デーモンの各モードごとの細かい使い方)」に続く)

関連記事:

参考URL:

使用したバージョン:

  • CDEmu 1.0.0

*1:プレーヤ側でDVDドライブのデバイスを「/dev/sr[デバイス番号]」として再生する

*2:イメージファイルとSCSIドライブ上のディスクとが対応付けられるだけで、Linuxにおける「マウント」は行われない