LinuxからBD-R/M-DISCに書き込み

LinuxにもBlu-rayメディアを扱うユーティリティがあり、互換性のあるドライブと組み合わせると読み書きできます。
ツールはいくつかあるのですが、検証してみたところGUIツールは動作せず、コマンドラインのgrowisofsに適切なオプションを指定する方法が安定して成功しています。

growisofsコマンドのパラメータ

BD-R書き込み操作のポイントは、growisofsのオプションセットに尽きます。
目的に応じてオプションの組み合わせを変える必要がありますが、Linux・Windows・Macの互換性を考慮したものは-iso-level=4 -g -xaとなりました。

# 初回書き込み時
$ growisofs -Z </dev/sr0> -iso-level=4 -g -xa <target_dir>

# 追加書き込み時
$ growisofs -M </dev/sr0> -iso-level=4 -g -xa <target_dir>

BD-Rはマルチセッションで複数回書き込めますが、初回は-Zオプション、2回目以降は-Mオプションで書き込みます。
その他のオプションは初回に指定したものと全く同じものを指定することが重要です。

組み合わせを変えると読めないメディアができることがあります。

当初のISO9660規格ではファイル名に8文字しか使えず問題が大きいため、以下の拡張を指定しています。

  • -iso-level=4でISO9660:1988/Amd.1:2013を有効にしている。LinuxとWindowsXP以降から読める形式
    • なお、UTF-8のファイル名をWindowsで適切に表示するには、WindowsのシステムロケールをUTF-8に設定する必要がある
  • -g -xaはApple ISO9660 Extensionsを有効にしている。MacOS7以降で読める形式(ただし読み込みの確認はしていない)

この組み合わせではWindows2000以前とあまり知られていないUNIXは切り捨てています。

その他のオプションについては、growisofs --helpmkisofs --helpで調べられます。
Web上にはJolietとRock Ridgeをサポートするための情報が多くありますが、組み合わせを間違えると読めないファイルが出てくるため、対応環境を切り捨てられるなら-iso-level=4に絞った方が安定します。

Rock Ridgeの難点

UNIX向けの拡張メタデータを扱うフォーマットがRock Ridgeですが、Rock Ridgeを有効にするとある時点で行き詰まるケースがあります。
マルチセッションで追記していく際に過去セッションのRock Ridge拡張情報を読み返す挙動をとるのですが、その際にgrowisofsが読みとれず追記できない事象に遭遇しました。
オプションでRock Ridgeを読まずに続行したところ、過去セッションが失われ空き容量だけが減った状態になりました。

Rock Ridgeを使う場合は、ファイナライズまで成功し続ける必要があります。

書き込むデータの構造

growisofsコマンドには、データの入ったディレクトリを指定しますが、その中のディレクトリ構造も反映されます。ただし、階層には制約があるため、複雑な構成は避けます。
コマンドに指定したディレクトリ自体はディスクには反映されず、サブディレクトリ以下がフォルダになります。

また、ファイル名が長すぎると書き込み前に異常終了します。
関連するエラーが出ないため分かりにくいのですが、ファイル名を短く変更して再実行すると動作しました。

環境

Ubuntu22.04を利用してLinuxの標準ドライバで書き込みできています。特別なドライバは不要ですが、標準ドライバで動作しない機器については動作させる方法はないでしょう。
Linuxを公式にサポートするドライブはあまりなく、特別なドライバを必要としないUSBドライブから動作する可能性が高そうな機器を選ぶより他ありません。

USBなどを接続した際、sudo dmesgなどで確認しデバイスを認識できていることが必要です。

M-DISC

LinuxでM-DISCに書き込む情報はあまりありませんが、M-DISCをサポートするUSB接続ドライブでとくに問題なく焼けることがあります。
これも機器しだいですが、BuffaloのBRXL-PTV6U3というドライブは動作しています。

OSからは単なるSCSIドライブに見えていて、一般的なBD-Rとして書き込むとM-DISCにも書ける、という挙動です。
互換性のためBD-R機器として動作するように作られているのであればLinuxでも問題なく動作するだろう、ただし接続してみるまで実情は不明、というところです。

M-DISCは100年ほど耐久力のあるメディアで、バックアップメディアとして優れています。
その分、価格が高いので、Linuxで使う場合にはまず一般的なBD-Rメディアで検証し、オプションセットを確定してから使う方が良いでしょう。

⁋ 2022/05/05↻ 2024/12/18
中馬崇尋
Chuma Takahiro