HN 日本語サマリー

← 一覧へ戻る
プログラミング

Apple Silicon Macでmacvdmtoolを使用してDFUリストアを実行する (2021)

Perform DFU Restores on Apple Silicon Macs with Macvdmtool (2021) (bkurtz.io)

22 pointsby gregsadetsky4 コメント

要約

この記事では、AsahiLinuxプロジェクトによって開発されたmacvdmtoolというツールを紹介しています。macvdmtoolを使用すると、Apple Silicon搭載MacやT2チップ搭載Intel Macを、煩雑なキーボード操作なしに、簡単なターミナルコマンドでDFUモードに移行させることができます。その後、Apple Configurator 2のcfgutilコマンドとIPSWファイルを用いて、ターゲットMacのリストアや復旧を行う手順を解説しています。

全文翻訳

macvdmtoolとは何か これはmarcan氏がAsahiLinuxプロジェクトの下で開発したツールです。macvdmtoolを使用すると、Apple SiliconまたはT2チップ搭載のIntel Mac(2018年以降)を、煩雑なキーボード操作を必要とせず、簡単なターミナルコマンドでDFUモードに入れることができます。 注意: macvdmtoolはホストマシンがApple Siliconベースであることを必要とします。Intel Macはホストとしてこのツールをサポートしていないようです。 前提条件 macvdmtoolを利用するには2台のMacが必要です。 1台のMacが「ホストMac」として機能します。このマシンは完全に機能している必要があります。 2台目の「ターゲットMac」は、電源が入り、疑問符またはリカバリモードで起動する限り、機能している必要はありません。 macvdmtoolの設定と使用方法 ホストMacで、Xcodeをインストールし、ターミナルで以下のコマンドを実行してXcodeコマンドラインツールをインストールします: xcode-select --install 正しくインストールされたか確認します: xcode-select -p Mac App StoreからApple Configurator 2をインストールします。 macvdmtoolをクローンします: git clone https://github.com/AsahiLinux/macvdmtool.git macvdmtoolディレクトリに移動してツールをコンパイルします: cd macvdmtool && make macvdmtoolをパスにコピーします: sudo cp macvdmtool /usr/local/bin 以下のコマンドを実行して、インストールされパスに追加されたか確認します: macvdmtool Apple Configurator 2を起動し、「Automation Tools」をインストールします。 ホストMacとターゲットMacを、公式のApple USB-C充電ケーブルまたはTB3/TB4ケーブルで接続します。ケーブルは両端のDFUポートに接続され、データ転送をサポートしている必要があります。 Apple Siliconマシンでは、DFUポートは左側の画面に最も近い位置にあります。 Intelマシンでは、DFUポートは左側のトラックパッドに最も近い位置にあります。 ターゲットMacをDFUモードにします: sudo macvdmtool dfu 上記のコマンドは以下のように返されるはずです: Mac type: J313AP Looking for HPM devices... Found: IOService:/AppleARMPE/arm-io@10F00000/AppleT810xIO/i2c0@35010000/AppleS5L8940XI2CController/hpmBusManager@6B/AppleHPMBusController/hpm0/AppleHPMARM Connection: Source Status: APP Unlocking... OK Entering DBMa mode... Status: DBMa Rebooting target into DFU mode... OK Exiting DBMa mode... OK cfgutil を使用したリストア/復旧 あるいは、Apple Configurator 2またはFinderを使用してMacをリストア/復旧することもできます。 注意: このcfgutilを使った方法は、ターゲットMacがApple Siliconの場合にのみ機能します。 Apple Configurator 2を起動して、デバイスがDFUモードになっていることを確認します。以下のような表示になるはずです。(表示されない場合は、ホストとターゲット間のケーブルを抜き差ししてみてください) リストアしたいIPSWをMr. Macintoshのデータベースから取得します。 cfgutilを使用してそのIPSWをリストアします: cfgutil restore -I ~/Downloads/UniversalMac_12.1_21C5021h_Restore.ipsw 結果は以下のようになります: objc[53015]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libauthinstall.dylib (0x1da64c9e8) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x104d782c8). One of the two will be used. Which one is undefined. objc[53015]: Class AMSupportURLSession is implemented in both /usr/lib/libauthinstall.dylib (0x1da64ca38) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x104d78318). One of the two will be used. Which one is undefined. cfgutil: restore: target OS is 12.1 Waiting for the device [1/2] [*******************************************] 100% Step 2 of 2: Installing System [2/2] [**********************************>] 99% この時点で、ターゲットMacにAppleロゴとローディングバーが表示されるはずです。 数分後、Macは再起動し、標準のセットアップアシスタントが表示されます。 これで完了です。お楽しみください。 将来の自動化拡張 Appleがcom_apple_macOSIPSW.xmlフィードに12.X IPSWを追加したら、最新のIPSWをダウンロードしてmacvdmtoolとcfgutilを実行するスクリプトを作成できます。 最新IPSWをダウンロードし、Munkiでパッケージ化するためのAutopkgレシピ。 これは技術者にIPSWを配布するのに役立つ可能性があります。 質問、明確化、またはコメントがありますか? 私のブログ(https://github.com/discentem/blog-content)でイシューまたはPR(プルリクエスト)を送信するか、MacAdmins Slack経由で連絡してください。 DFUに関するさらなる読み物 DFUリストアに関する詳細については、Mr. Macintoshの優れたブログ記事をご覧ください。