MacOSX ・ Ubuntu ・ WindowsXP 間で、DVD-RAMを使う


DVD-RAM のフォーマット形式

何かの都合で、離れたLinux(Ubuntu)とMacOSX間で、データの受け渡しが必要な時があります。 DVD-RAMを使った条件として、双方のマシンには、DVD-RAMを読み書きできるDVDドライブが搭載されてるとします。 このとき、どんなファイルシステムを用いたらよいでしょうか?

最低限どの環境でも読み書きできるようなもので、設定も最低限で済むようなものが考えられます。 ファイルシステムに、MS-DOS(FAT32)形式を利用する方法があります。 FAT32ではファイル名は 半角255文字、最大4Gバイトの容量のファイルが扱えます。


一応 MacOSX(10.4)上のディスクユーティリティを使えば、DVD-RAM(UDF)をMS-DOS(FAT32)形式で初期化することができます。 しかし、OSXのディスクユーティリティが このMSDOS フォーマットのディスクのパーティションタイプを勝手にApple_partition_schemeに設定してしまうため、Linuxでマウントが失敗します。今回のケースでは、おすすめできません。 (12/04 情報が間違ってたので訂正しました。)

(余談になりますが、OSXでUDFフォーマットされたDVD-RAMメディアを 初期化する際は、ディスクユーティリティを先に起動してからディスクを入れておきます。)


他にデータのやり取り可能なものとしてUSBメモリ(これもFAT32形式)が役に立ちます。

 

MacOSX と Linux で読めるDVD-RAMを作成する

やり方を忘れてしまったので、メモ。 ・ DVD-RAM についてによると、 DVD-RAMはパーティションを切らずファイルシステムのみを指定するだけで使えるそうです。
この情報を手がかりに、MacOSX と LInux で読めるDVD-RAMを作成してみます。

そこで、フォーマットを行なうのですが、
MacOSXのディスクユーティリティを使ってフォーマットすると、 MSDOS形式にしても DVD-RAMのボリューム上に勝手にApple_partition_scheme を作ってしまいます。
これでは、Linux側ではマウントが失敗します。
OSX側から、diskutil コマンドでDVD-RAM ディスクを見た結果(失敗例)
/dev/disk2
#: type name size identifier
0: Apple_partition_scheme *4.3 GB disk2 <--- (余計なもの...)
1: Apple_partition_map 126.0 KB disk2s1
2: DOS_FAT_32 UNTITLED 4.3 GB disk2s2
こうなると、パーティション情報を消さなければなりません。

一方、Linux側でMSDOS(FAT32)形式でフォーマットしたものを使えば MacOSXでも読めます。

方法

Linux側で、コマンドライン上から DVD-RAMをフォーマットします。 フォーマットには、mkdosfs コマンドを使います。
まず、空のDVD-RAMディスクを入れてから...
desktop:~$ mkdosfs -v -S 2048 -n dvdram /dev/scd0

mkdosfs 2.11 (12 Mar 2005)
logical sector size is 2048,
using 0xf8 media descriptor, with 2236704 sectors;
file system has 2 32-bit FATs and 8 sectors per cluster.
FAT size is 546 sectors, and provides 279447 clusters.
Volume ID is 471490ca, volume label dvdram .
desktop:~$

desktop:~$ cd /media/cdrom0 <----DVD-RAM ドライブへ移動して
desktop:/media/cdrom0$ sudo chmod 777 . .. <--- パーミッションを変更して、ディスクを書込み可能にする
-v で途中経過を表示(エラーの原因を探るのに便利)。 -S でセクタサイズを指定=2048。-n でボリューム名を指定= dvdram
(KDEデスクトップの場合、デスクトップからドラッグ&ドロップではうまくファイルがコピーされないので、「ファイルのコピー」&「貼付け」を使うと上手くいくようです。)

後で、ディスクのパーティション情報を調べてみました。
Linux 側で、作成されたDVD-RAM ディスクを fdiskを使って調べた結果
$ fdisk /dev/scd0
注意: セクタサイズが 2048 です (512 ではなく)

コマンド (m でヘルプ): p

Disk /dev/scd0: 4580 MB, 4580769792 bytes
255 heads, 63 sectors/track, 139 cylinders
Units = シリンダ数 of 16065 * 2048 = 32901120 bytes

デバイス Boot Start End Blocks Id System
((ここには何も表示されない))
 
同じディスクを、MacOSX側から、ディスクユーティリティで調べてみると...
パーティション方式 : フォーマットされていません
これでも問題ないようです。

トラブルシューティング:
unable to get drive geometry, using default 255/63
mkdosfsでフォーマット時に、このようなエラーが出る場合は、ディスクボリューム名が指定されていないことが考えられます。 -n オプション で指定。
なぜか解決しました。

ドライブジオメトリとは、ディスクのセクタ配置などの情報のことで、デフォルトでは、シリンダ/ヘッド/セクタ数がそれぞれ C/H/S=139/255/63。 シリンダ数はディスクの種類によって違うようです。これらを使って計算すると、実際のディスク容量を求めることができます。

例えば、255 heads, 63 sectors/track, 139 cylinders の場合
Units = シリンダ数 of 16065 * 2048 = 32901120 bytes
また、DVD-RAMは、セクタサイズが2048に決まっているそうです。

Auto-selecting FAT32 for large filesystem /dev/scd0 has 255 heads and 63 sectors per track,
同じく、ディスクのマウント失敗時に、dmesg でエラーがないか調べる。
[ 2966.947661] FAT: logical sector size too small for device (logical sector size = 512)
このようなメッセージが出たら フォーマット時のセクタサイズを2048に指定して下さい。-S オプション で指定。


原因が分かるまで、パーティションが消せなかったりで、何枚か無駄になりました...。 

この問題を避けて、Linux上でDVDRAMをフォーマットして、それをOSXやWindowsXPで使うことにしました。 このディスクをWindowsXPに入れて試した結果、Windows環境でもマウントやファイルの書込みを確認。日本語ファイルの文字化けもなし。 WindowsXPでDVD-RAMを使うには、「マイコンピュータ」からドライブアイコンを選択し右クリックメニューでプロパティを表示、 タブ「書き込み」にある「このドライブでCD書込みを有効にする」チェックを外しておくとよいそうです。

DVD-RAM マウントに関する メモ

■Linux(Ubuntu) 側からのアプローチ
(デフォルトでは、UDF,ISO9600,EXT2に対応している)

カーネルが対応していれば、/etc/fstab を編集することで、何でも読めるようになるようです。
fstabはテキストファイルで、起動時にどのようにディスクをマウントするかの設定が書かれています。

まずは、 mount コマンドを使って手動でマウントさせます。
mount <デバイス> <マウントポイント> -t <ファイルシステム> -o <オプション>
windowsのFAT形式をマウントさせるには、コマンドラインから以下の通りにします。

$ sudo mount /dev/scd0 /media/cdrom -t vfat -o utf8
これは、CD,DVDデバイス を media/cdrom の位置にてvfat形式で マウントするという意味で、
日本語ファイルの文字化けを防ぐために utf8オプションも付けています。
vfatでは、ファイル名にLong File Nameが対応しています。 この段階でマウントが成功すれば、fstabに書いてもマウントが成功する可能性が高いです。

一方、アンマウントするには。
$ sudo umount /dev/scd0

次に、 fstab に設定を追加します。
システムが立ち上がった時にメディアが入っていれば自動的にデスクトップにアイコンが表示されるようになります。

/dev/scd0 /media/cdrom0 vfat user,noauto,utf8 0 0
という行を書き加えます(最終行は改行のみの行を作っておきます)。
noauto というのはメディアを入れた時に初めてマウントさせる指定です。
環境によっては、scd や cdrom0 の部分は別の名前になっていることもあります。

fstabでの設定には、 デバイス、マウントポイント、オプション、ファイル所有者、パーミッションなどの知識が必要です。
また自分のシステムがどのようになっているか把握しておくことも重要です。


fstab ファイルの編集方法。

//vi を使って コマンドライン上で編集する。
sudo vi /etc/fstab

//KDEアプリのテキストエディタKateでfstabを編集するには kdesu コマンドを使います。(Gnome の場合gksu等を使うらしい)
kdesu kate /etc/fstab

GUIのテキストエディタで編集するのは楽ですが、どちらもsuになるためにログイン時のパス入力が必要です。
一応、 KDEのGUI環境からも、システム設定のディスクとボリュームから同じように設定が可能です。

Ubuntu上でのメディアの初期化
Ubuntu上では、UDF形式のDVD-RAMは普通に使えるのですが、これを他の形式で初期化するにはmkfs コマンドを使います、
初期化後は、chmod 777 . .. でパーミッションを書込み可能に変更しておきます。



HFS+ 形式で認識させるには、ファイルシステムは hfsplus と指定するそうです。が、自分の環境では Wrong fs type, bad option, bad superblock on 〜 メッセージが出てマウントが失敗しました。
 

その他

■MacOSX側からのアプローチ
OSXでは、 HFS+, Unix形式はUFS(BSDやOPENSTEP),MSDOS(FAT32)形式, ISO9660形式が使えます。
(しかし、OSXは、10.4になっても UDFがまともに読めない :( 



Linux(EXT2形式で保存)→MacOSX(マウントできるようにする)
■ EXT2 Filesystem for Mac OS X1.4b
http://sourceforge.net/projects/ext2fsx/
Linuxの標準のExt2形式のディスクをOSX10.4でマウントするというもの。
インストールすると、システム環境設定にExtFS Manager(ペンギンのアイコン)が表示されるので、そこからマウント、取り出しをします。一応、アンインストーラ付きです。  (自分の場合、OSXにEx2形式で初期化されたたDVD-RAMのマウントに成功しましたが、書込みは不可でした。おそらくDVD RAMのフォーマット時になにかが間違っていたのかもしれません。)

 

■MacOSXでDVD作成

 DVD-RAM以外で、普通にDVDを作成する場合に役立ちます。以下はフリーのライティングソフトです。  
MacOSX(UDFで書込み) 
■ YuBurner1.07(Apple ISO (ISO/HFS+) Windows(ISO/Joliet), UDF1.02, UDF1.5対応)
http://www.vector.co.jp/soft/dl/mac/util/se268501.html
DVD-R焼き(DVD-RAMはRWのような使い方しかできない。)

MacOSX(UDFで書込み) 
■ LiquidCD 1.31(UDF DVD-ROM,HFS+,Joliet,ISO9660対応)
http://www.versiontracker.com/dyn/moreinfo/macosx/28483
Toastに似たインターフェースで使いやすい。CD,DVD, DVD DL(2層) に対応しています。

1.まず書込み種別を「データ」にしてから、デスクトップへマウントしたディスクを、ペインにドラッグします。
2ファイル構成がツリーメニューで表示され、そこへ追加したいファイルをドラッグします。
3.ディスク作成オプション。「追記可能にする」、ディスクオプション ファイルシステムを「UDF( DVD-ROM)」に指定しておいてください。

■Burn1.7()
http://home.hetnet.nl/%7Em.foukhar/home-en.html

 
Last modified 2007.12.04
Tsukubado