Tips

MacのAPFSボリュームは複製できる!OSStatusエラーの解消も

Time MachineのAPFSボリュームをバックアップしておきたくなり、複製できるのか調べてみました。ディスクユーティリティの復元という機能で行いますが、OSStatusエラーの1や49153が発生しましたが、何とか複製できたのでご説明します。

外付けHDDのTime Machineを柔軟に運用したい

以下の記事で外付けHDDでTime Machineをどのように運用するか検討しました。

Mac TimeMachineでの外付けHDDのパーティションの考え方外付けハードディスクにTime Machineを保存する場合は、パーティション(コンテナ)を作り、その中にTime Machine専用の...

なるべく永続的にTime Machineを運用するには、データが大きくなりすぎた場合、別の外付けHDDに移行したり、他のボリュームと棲み分けたりする必要が出てきます。その際にAPFSボリューム単位で複製する必要があります。

また、Time Machineのボリュームで色々な実験がしたいと思っていました。例えば、古いバックアップの手動削除などです。Time Machineのデータは、いじると壊れるという話もよく聞きます。なので、それらの実験をする前に、念のためそのボリュームのバックアップをとっておきたいと考えたのも、APFSボリュームの複製の方法を調査した動機です。

まず、以下の公式のページに手順に沿ってやろうとしました。

Macでディスクユーティリティを使用してディスクを復元する

私の環境を記載しておきます。

  • M2 Macbook Air(2022)
  • OS 13.0(22A380)

別パーティションか別デバイスのボリュームである必要がある

最初は一つの外付けHDD内の一つのパーティション内でボリュームを作ろうとしていたのですが、復元元のボリュームに目的のボリュームが表示されません。

サポートの方曰く、別のデバイスのボリュームしか選べないとのことです。(後でわかりましたが、同じデバイスの別のパーティションのボリュームも選べました)

OSStatusエラーの1や49153が発生

目的のボリュームを選んでいざ復元を実行すると、以下のようなOSStatusエラーが発生しました。

全くわからないので、またサポートに問い合わせました。

復旧モードで試すことに

電話サポートの方曰く、二つの可能性があるとのことでした。

一つ目は、私の環境は、外付けHDDとSDカードという二つの物理ディスクなのですが、それらをMacbook AirのUSBポートに直接ではなく、サードバーティのハブを介して接続していることが原因かもしれない、ということでした。

二つ目は、OS側に何か不具合があるかもしれないということでした。

これらを切り分けるために復旧モード(リカバリーモード)で試してみることになりました。

Appleシリコンを搭載したMacでmacOS復旧を使用する

一度Macをシャットダウンします。そして電源ボタンを押し、そのまま長押しします。

すると「オプション」という歯車のアイコンが出るので選びます。

あなたのアカウントが表示されるので選びます。

いつものパスワードを入力します。

ディスクユーティリティを選びます。

すると、いつものディスクユーティリティの画面が表示されます。

ここで先ほどやろうとした、ボリュームの複製の手順を行います。

すると正常に完了できました。

これを考えると、OS周りでやはり何か不具合があるのかもしれません。私は試してはいませんが、以下の記事にあるようにもしかしたらTime Machineの機能が邪魔をしているのかもしれません。

APFS Container Resize error code is 49153 [closed]

サポートの方曰く、仕様通り、通常モードでこの作業をできるようにするために、Mac OSを最新にアップデートしてみることを勧められました。(13.0→13.2)

OSの状態がフレッシュになって、不具合がなくなるかもしれないとのことでした。

買って一か月程度でたいして設定も変えてないはずなのに、OS周りの不具合と言われてもバグとしか思えません。とりあえず、復旧モードでAPFSボリュームの複製は実現できることがわかったので、OSのアップデートまではしませんでした。

後日別件で別のサポートの方と話している時に、その方の手元の端末でこれを試してもらったら、やはり通常モードではエラーになり、復旧モードでは正常にできました。なので、私の端末だけではなく、どの端末でも起きる事象のようです。ドキュメントに書かれていることがそのままできないというのは、プロダクトのバグかドキュメントのバグのどちらかに相当するので、Appleには対応して欲しいですね。

やはりオプションは上書かれてしまう

APFSボリューム複製の過程で、ボリュームのオプションを変更できたらいいなと期待していました。Time Machineのボリュームに、後で容量の上限値を設定したくなったり、暗号化をしたくなったりするかもしれません。

なので、あえて復元先のボリュームで、違うオプションをつけたAPFSボリュームを作って、この手順をやってみました。その結果、オプションは復元元のもの変わりました。まぁ当たり前と言えば当たり前ですが。

なので、Time Machineのボリュームのオプションは、作る時にしっかり考えなければならない、という状況は変わりません。

同じパーティション内に複製できなくはない

別パーティションか別デバイスでないとAPFSボリュームを複製できないと上述しましたが、よく考えるとできますね。

一度別のデバイスに複製し、それをまた元のデバイスに複製してくれば同じ内容のボリュームが2つできることになります。

別パーティションで行う場合も同じです。その作業を行う際に一時的にパーティションを作ってその作業を行って、終わったらそのパーティションを消せば、一つのデバイス内でできちゃいますね。ただ、先程も紹介した以下の記事で説明したように、Appleは1つのデバイスに複数のパーティションを作ることを推奨していません。

Mac TimeMachineでの外付けHDDのパーティションの考え方外付けハードディスクにTime Machineを保存する場合は、パーティション(コンテナ)を作り、その中にTime Machine専用の...

別デバイスでやるにせよ、別パーティションでやるにせよ、一時的にでも、そのボリュームのデータ量に相当する空き容量が必要なので、あまり良い手段ではないかもしれません。やはり、直接的に一つのパーティション内にAPFSボリュームを複製できる機能があればいいなと思います。

さいごに

エラーに苦労したとはいえ、やりたかったAPFSボリュームのコピーはできました。

Appleが昨今導入したAPFSというフォーマットはこれまではそんなに便利じゃないな、と思っていたのですが、最初にボリュームの容量を設定しなくていい、というのと、このボリューム単位で複製できるという性質によって、かなり柔軟性のあるフォーマットかもしれない、と思えました。

エラーが起きたり、同じパーティション内で複製できないなど、細かいところでまだ不便があるので、今後もっと改善してほしいですね。

容量が足りなくなったHDDからより大きな容量のHDDへデータを柔軟に移動するために色々と検討してきましたが、最初からなるべく大容量のHDDを買っておいた方がいいかもしれません。

すでに外付けHDDを購入済みの方は以降は読む必要はありませんが、私が使っているバッファローのHDDは、2万円程度で8TBとかなり高コスパです。また、通常HDDはSSDと違ってディスクが回転するので音がうるさいのですが、これはHDDと思えないくらい静かで気に入っています。参考にしてみてください。

追記:SIPをOFFにしたら通常モードでできた

しばらくして、OSを最新版(13.2.1)にして復旧モードではなく通常モードでやってみたところ、やはりOSStatusエラー1が出てできませんでした。

ただ、別件でSystem Integrity Protection(SIP)をOFFにする作業をしていたのですが、その際、ふと思い立ってディスクユーティリティを立ち上げてボリュームの復元をやってみることにしました。ちなみに、SIPとはMacの重要な部分(根幹となる部分)にアプリがアクセス出来ないようにしているロック機能です。

するとエラーが発生せず、復元することができました。つまりボリュームの複製ができました。

SIPをOFFにする方法は次の記事を参考にして行います。復旧(リカバリー)モードへの入り方はOSのバージョンによって違うかもしれませんが、基本的に以下のやり方でOKです。

MacでSIPを解除する方法! macOSのSystem Integrity Protectionを無効にしよう

作業が終わった後はSIPをONにするのをお忘れなく。

とはいえ、SIPのOFF、ONも結局復旧モードにする必要があるので、最初にご紹介した復旧モードのディスクユーティリティでボリューム複製してしまう手順の方がシンプルではありますね。