読者です 読者をやめる 読者になる 読者になる

drutil and hdiutil.

CLIISO9660 image の作成/書き込みを行いたかったので MacPorts で cdrtools を導入しました……が。

mkisofs は他のプラットフォーム同様に使えたものの、 cdrecode の dev= に何を指定するか分からず、書き込みが行えませんでした :(

対処

これらは GUI では Disk Utility.app で行う作業です。Apple の事だから多分 Disk Utility.app の CLI があるだろうと探したところ、やはりありました。

機能ごとにいくつかに分かれていて diskutil(8), hdiutil(8), drutil(8) などがあるようです*1

名称 機能 相当する別コマンド
diskutil 主にローカルディスクに対する操作 fdisk, fsck など
hdiutil ディスクイメージの作成や操作 mkisofs(genisoimage)など
drutil ディスクイメージをメディアに書き込む cdrecode(wodim)など

ということで、 hdiutil でイメージを作成し、drutil で書き込んでみることにします。

イメージ作成
% hdiutil makehybrid -iso -joliet -default-volume-name 'Volume name' -verbose -o path/to/foo.iso path/to/source
イメージ書き込み
% drutil burn -speed 4 -verify -mount path/to/foo.iso

日本語のファイル名も問題なく通りました*2

便利なオプションが沢山ありますので、是非 man を一読ください。それぞれに EXAMPLES セクションが付いていますので、感覚を掴むのにも便利です。

追記

cdrecord の dev= へ渡す引数が分かりました。

% cdrecord dev=IODVDServices path/to/foo.iso

だそうです。

% cdrecord -scanbus

の出力に有効な値が現れなかったので諦めていたのですが

% cdrecord dev=help

してみれば良かったのですね……。先達に感謝です :)

*1:興味のあるかたは man diskutil して SEE ALSO セクションを参照ください

*2:Leopard はもちろん、Windows XP 上でも正しく表示できることを確認しました