Aruyo

HDIUTILで.dmgを分割する

重要事項のバックアップを暗号化した.dmgに保管していたけど、だんだんと肥大化(300GB)したのでクラウドストレージにアップする分は分割ファイルにしておこうと思った次第。これは備忘録的なもん。

以前はディスクユーティリティでも分割出来たような気がするけど記憶の彼方。今は不可なのでHDIUTILで分割することにする。しかし何やらエラーが出る。調べてみたら海外のAppleサポート掲示板に「暗号化したヤツはそのままではあかんねん、UDRO(UDIF read-only)かUDBZ(UDIF bzip2-compressed)に変換してからやってみなはれ(意訳)」という回答をしているのを見つけた。うーん、暗号化UDRWで読み書き可にしていたのでダメだったのか。

そんなわけでディスクユーティリティでUDROに変換してからHDUTILで暗号化+分割をする。HDUTILはターミナルにて以下のコマンドとオプションでいける。

hdiutil segment -o 出力名 -segmentSize 1gb -encryption AES-256 -stdinpass 入力名.dmg

実は最初、オブションの -encryption AES-256 と -stdinpass を省いていた。UDROが暗号化しているので分割時開始時にパスワードを聞かれるけどあくまで使途は開くため。生成される分割ファイルは暗号化されておらずパスワードを聞かれずに開けた。ああ、これはいかん。

解説をよく読んで暗号化オプション -encryption の存在に気が付く。しかし今度は分割1ファイル事にパスワードを入力することになる。確認もあるので1ファイルに二度。300ファイルだと600回入力だ。これは死ぬ。ということで -stdinpass を試してみたらうまくいった。ここのstdは標準入力のことらしいのでつまりはTTYかCONってことかな(よくわかっていない)。

しっかし、毎度中間的にUDROを作るのは容量と時間のかかるね。掲示板の回答からだいぶ年月が経っているので今ならオプション指定次第でダイレクトに出来そうな気もするけどどうなんだろう。BSDのサイトからドキュメントを探してみたけどすんごく長いので読むのはやめた。今度、試しながら調べてみよう。