印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
LinuxWindows ファイル名は長すぎないように

DVD にバックアップをとろうとすると、焼きソフトが警告メッセージを出してくる。ファイル名が長すぎたからであった。Joliet では長いファイル名が使えるが限界がある。ファイル名は 64 文字以内にしなければならない。

■ ■ ■

記事の数も増えてきた。ここでディスクがクラッシュすると悲しいので、DVD にバックアップをとることにした。Linux 上にある MovableType のディレクトリを丸ごとバックアップする。Samba を使って Windows にコピーし、これを DVD に書き込むという弱気な戦法をとった。

DVD に書き込む処理をしていると、「ファイル名を変更してもよろしいですか」というメッセージが出る。これは、ファイル名が長すぎることを意味していた。調べてみると、ISO 9660 フォーマットのマイクロソフトによる拡張「Joliet」は、日本語混じりの長いファイル名が使えるが、扱えるのは最大 64 文字であることが分かった。正常にリストアしたいのであれば、あらかじめ 64 文字以内としなければならない。

ISO 9660 の拡張フォーマットに関しては、Orange Forum:ISO 9660ファイルシステム が詳しい。

/home 以下にある、ファイル名が 65 文字以上のファイルは次のコマンドで検索できる (Linux の場合)。

# find /home -name "?????????????????????????????????????????????????????????????????*" -print

65 個の「?」に「*」がついている。

Joliet を Macintosh で読む場合、Mac OS 9.2.2 以前であれば「Joliet Volume Access 拡張」を組み込むことにより 31 文字までのファイル名を読むことができる。拡張機能は Joliet File System by Thomas Tempelmann からダウンロードすることができる。シェアウェアだが、機能限定のフリー版もある。Mac OS X 以降で Joliet の長いファイル名が読み出せるかどうかは不明。「8+3 形式」であれば、もちろん読み出すことはできる。

Macintosh には、「Apple ISO」という ISO 9660 Level 2 のアップル独自拡張がある。ファイル名は 31 文字までとなっている。しかし、Mac OS X では、日本語のファイル名が正常に表示されないという報告がある (BHA | セルフサポート)。

現時点では、Mac との共存は考えないことにした。

長いファイル名を変えたくない場合,圧縮ファイルに詰め込むという解決方法がある。zip でも lzh でも好きな形式で圧縮すればよい。中身のファイル名は長くても,CD や DVD の制限には引っかからない。圧縮ファイルのファイル名を短くしておけばよいのだ。

Linux の場合,バックアップするのに適した方法は tar であるのは勿論である。所有者,パーミッション,シンボリックリンクがそのまま保存されるからである。今回のものは一覧性を重視したもので,ちょっと特殊な方法である。

Posted by n at 2004-09-10 23:34 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?