HN 日本語サマリー

← 一覧へ戻る
その他

「ディスクが正しく取り出されませんでした」:その意味とは

"Disk Not Ejected Properly": What It Means (bombich.com)

20 pointsby speckx5 コメント

要約

macOSで表示される「ディスクが正しく取り出されませんでした」という警告メッセージについて、その原因と意味を解説しています。ストレージデバイスがMacに接続されてから、ディスクがマウントされ、そして安全にアンマウントまたはイジェクトされるまでのプロセスを、IOKitやDiskArbitrationといったシステムサービスに触れながら詳細に説明し、ユーザーが遭遇する可能性のある問題を掘り下げています。

全文翻訳

「ディスクが正しく取り出されませんでした」😡:そのmacOSアラートの本当の意味 マイク・ボンビッチ 2026年7月7日 ヘルプデスクより 多くのmacOSユーザーにとって、私自身を含め、このフレーズはトリガーとなる可能性があります。おそらく、ディスクをアンマウントせずに誤って取り外した後、一度か二度これに遭遇したことがあるでしょう。もしあなたがそうなら:短いバージョンは下の「試すこと」セクションにあり、記事の残りは、あなたが興味があるなら「なぜ」を説明しています。しかし、これは特に苦しんでいる人々のためのものです。つまり、そのアラートを数回ではなく、数十回ではなく、何百回もdismissした人々です。もしそれがあなたに当てはまるなら、あなたは一人ではありません。そして、実際に何が起こっているのかを突き止めましょう。 ディスクはそもそもどのようにマウントされるのでしょうか? ストレージデバイスがMacに接続されると、いくつかのサービスが連携して、そのストレージの内容をFinderでユーザーに提示します。ハードウェアデバイスのマネージャーであるIOKitが、デバイス(「kernel_task」プロセス経由)を最初に認識するシステムサービスです。IOKitは、ハードウェアデバイスのコンポーネントを表す内部デバイスツリーを作成します。各コンポーネントは、IOKitドライバー(例:IOUSBHostInterface > IOUSBMassStorageInterface > IOUSBMassStorageDriver ... IOBlockStorageDriver > Sabrent ROCKET-XTRM-Q Media (IOMedia) > IOMediaBSDClient)によって提供されます。その後、ストレージドライバーはDiskArbitrationサービスを関与させ、ボリュームのマウントロジスティクスを処理します。DiskArbitrationはストレージをプローブしてファイルシステムを特定し、適切なファイルシステムドライバーを呼び出してファイルシステムの一貫性チェックやその他のボリュームマウント前のロジスティクスを処理します。マウントするボリュームが特定されると、DiskArbitrationはマウントポイントフォルダ(例:/Volumes/Backup)を作成し、ボリュームをマウントします。これで、Finderでボリュームの内容にアクセスできるようになります。 ボリュームを「丁寧な方法」でアンマウントするとどうなるか? マウントとは対照的に、正常なボリュームアンマウントは実際には非常に表面的です。ボリュームのアンマウント要求が作成されると、その要求はDiskArbitrationサービスによって処理されます。DiskArbitrationは、差し迫ったアンマウントのシステムワイド通知を発行し、関心のあるアプリケーションにアンマウント要求を「反対」する機会(アクションをブロックする)を与えます。反対者がいない場合、ボリュームはアンマウントされ、マウントポイントフォルダは削除されます。ただし、そこで止まります。すべての基盤となるデバイスオブジェクトはそのまま残り、IOKitサービスによって追跡されます。これらを「舞台裏」で見たい場合は、ターミナルで`ioreg -w 0 -l`を実行し、「IOMediaBSDClient」を検索してください。ディスクユーティリティで「表示」メニューから「すべてのデバイスを表示」を選択すると、このデバイスツリーの最上部を確認することもできます。ボリュームをアンマウントしたばかりの場合、サイドバーにアンマウントされたボリュームと1つまたは2つの「親」デバイスが表示されます。 では、「イジェクト」と単なる「アンマウント」の違いは何でしょうか? ディスクのイジェクトは、アタッチメントの対応する反対です。ストレージがイジェクトされると、macOSはそれを認識できなくなります。ここで簡単な文法的な脱線をさせてください。「イジェクト」という動詞は現在、曖昧に使用されており、ハードウェアの変化とともにその使用法は変化してきました。元々、「ストレージをイジェクトする」ということは、ストレージがストレージデバイスから物理的に取り出されることを意味していました。ZipドライブやDVDを考えてみてください。システムにデバイスのイジェクトを要求すると、それはストレージデバイスからストレージを取り出してどこかに置きたいという意味です。物理メディアがストレージデバイスから取り外された場合、それは真の「イジェクト」でした。ボリュームマウントが巻き戻されるだけでなく、すべてのサポートするIOKitツリーオブジェクトも破棄されます。それとは対照的に、Finderでボリュームを「イジェクト」する場合、それは実際には何もイジェクトしておらず、ボリュームをアンマウントしているだけです。Finderが1つのディスク上のすべてのボリュームを「イジェクト」するように求めても、その後のアクションはボリュームのアンマウントのみであり、基盤となる内部デバイスオブジェクトには何も起こりません。ただし、「ディスクが正しく取り出されませんでした」ダイアログとこの記事に関しては、IOKitがストレージデバイスに関連するすべての内部ツリーオブジェクトを破棄し、macOSがそれを「見えなく」なったイジェクトを指しています。 ストレージ、特にストレージの出入りを追跡することはCCCにとって重要なので、コンテキストのためにこれらのイベントをログに記録します。これらのログエントリは、デバイスの出現と消失、および正常なアンマウントと異常なアンマウント、デバイスのイジェクトの違いを説明するのに役立ちます。 まず、ストレージデバイスの通常の出現: 16:19:01 Adding [/dev/disk8] to diskobjects[90] 16:19:01 Adding [/dev/disk8s1] to diskobjects[91] 16:19:01 Adding [/dev/disk8s2] to diskobjects[92] 16:19:01 Adding [/dev/disk9] to diskobjects[94] 16:19:01 Adding [/dev/disk9s1] to diskobjects[95] 🔒 FileVault encrypted. [APFS Test] 16:19:01 Adding [/dev/disk9s2] to diskobjects[96] 16:19:01 [INFO] Volume mounted: "/Volumes/Photos Archive" (/dev/disk9s2) 次に、そのボリュームの正常なアンマウント: 16:54:30 Not dissenting the volume unmount request for /Volumes/Photos Archive. 16:54:30 [INFO] Volume unmounted: "Photos Archive" (/dev/disk9s2) このアンマウントの正常な性質を証明するために、CCCがアンマウント要求に反対する申し出を受け取ったことがわかります。CCCはボリュームをバックアップタスクのソースまたは宛先として使用していなかったため、反対しませんでした。その後、ボリュームはアンマウントされましたが、基盤となるストレージデバイスはIOKit内に残りました。 次に、デバイスが物理的に取り外されたときに何が起こるかを見てみましょう。 16:56:03 Device removed from IOKit by the macOS kernel: /dev/disk9s2 16:56:03 Device removed from IOKit by the macOS kernel: /dev/disk9s1 16:56:03 Device removed from IOKit by the macOS kernel: /dev/disk9 16:56:03 Device removed from IOKit by the macOS kernel: /dev/disk8s2 16:56:03 Device removed from IOKit by the macOS kernel: /dev/disk8s1 16:56:03 Device removed from IOKit by the macOS kernel: /dev/disk8 デバイスはIOKitから非常にクリーンに削除されます(CCCは「興味通知」、つまり「このデバイスの状態変更を教えてください」のためにIOKitを購読しているため、これらのイベントを「認識」します)。 次に、数分前にこのデバイスをMacに接続したときに実際に発生した迷惑な動作を再訪します。「Photos Archive」ボリュームがマウントされた時点から再開します。 16:19:01 [INFO] Volume mounted: "/Volumes/Photos Archive" (/dev/disk9s2) 16:19:06 [INFO] Volume unmounted: "Photos Archive" (/dev/disk9s2) 16:19:06 Device removed from IOKit by the macOS kernel: /dev/disk9s2 16:19:06 Device removed from IOKit by the macOS kernel: /dev/disk9s1 16:19:06 Device removed from IOKit by the macOS kernel: /dev/disk9 16:19:06 Device removed from IOKit by the macOS kernel: /dev/disk8s2 16:19:06 Device removed from IOKit by the macOS kernel: /dev/disk8s1 16:19:06 Device removed from IOKit by the macOS kernel: /dev/disk8 16:19:09 Adding [/dev/disk8] to diskobjects[90] 16:19:09 Adding [/dev/disk8s1] to diskobjects[91] 16:19:09 Adding [/dev/disk8s2] to diskobjects[92] 16:19:09 Adding [/dev/disk9] to diskobjects[93] 16:19:09 Adding [/dev/disk9s1] to diskobjects[94] 🔒 FileVault encrypted. [APFS Test] 16:19:09 Adding [/dev/disk9s2] to diskobjects[95] 16:19:09 [INFO] Volume mounted: "/Volumes/Photos Archive" (/dev/disk9s2) 「Photos Archive」ボリュームがマウントされてから5秒後、そしてそのディスク上の暗号化されたボリュームのパスワードを接続すべきかどうかを検討していたとき、デバイスはオフラインになりました。このイベントと正常なアンマウントとの主な違いは、a)DiskArbitrationから「このアンマウントに反対しますか」という通知が送信されたことがなく、b)基盤となるすべてのデバイスが同時にmacOSカーネルによってIOKitから削除されたことです。3秒後(私の物理的な介入なし)、デバイスが再出現し、ボリュームが再マウントされました。ストレージデバイスのファームウェアが再起動すると、IOKitはハードウェアを再検出し、「アタッチ」プロセスを繰り返しました。一方、通知センター