Macドライバを使用しています。 lsofについて学びます。

Macドライバを使用しています。 lsofについて学びます。

外付けハードドライブの権限を回復しようとしています。ごみ箱を入れた後、「このタイプのファイルを使用しています」というメッセージが表示され、空にすることはできません。ドライブの権限を回復すると、この問題が解決される可能性があることをオンラインで読みました。再起動したり、プラグを抜いたり再接続したりすると、ドライブが使用中であるため、現在のドライブをマウント解除できません。私はlsofこれを使用するのを見ましたが、これは理解できず、これが何を意味するのかについて明確な指示が見つからないようです。出力は次のとおりです。

COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mds      59 root   23r   DIR    1,9     1701    5 /Volumes/SEAGATE
mds      59 root   31r   DIR    1,9     1701    5 /Volumes/SEAGATE 

注文する

ps ax | egrep '[ /](PID|mds)'

出力

PID   TT  STAT      TIME COMMAND
660   ??  Ss     0:12.49 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
673   ??  Ss     0:08.68 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mds_stores

注文する

/usr/bin/sudo kill 660

出力

//new line$

注文する

sudo lsof /dev/disk2s2

出力

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mds     1599 root   11r   DIR    1,8     1764    5 /Volumes/SEAGATE

そのような順序で

bashファイルを複数回連続して実行すると、次のようになります。

PID   TT  STAT      TIME COMMAND
1737   ??  Ss     0:00.69 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds

しかし、ドライブはまだmdsによってロックされています。

例外が追加されたことを示すために、次のスクリーンショットを示します。

ここに画像の説明を入力してください。

ここに画像の説明を入力してください。

ベストアンサー1

診断が速すぎる

ドライブの権限を回復すると、この問題が解決される可能性があることをオンラインで読みました。

残念ながら、あなたの問題の説明によると、これは間違っています。回復する必要があるのは、外部ディスク上のファイルシステムですSEAGATE

分析するlsof

コマンドのlsof出力mdsは、コマンド(最初の列)が実際にファイルシステム/volumes/SEAGATE(最後の列)を読み取っていることを示します。この素晴らしいコマンドの詳細については、MacOS Xに付属のマニュアルを読んでください。

man lsof

mdsMacOS Xサーバーは、すべてのファイルシステムメタデータへのアクセスを提供する役割を果たします。最も重要な顧客はFinderおよびですSpotlight

外付けディスクを取り出せない場合は、mdsまだ読んでいるので正当なものです。とにかく解凍すると、ファイルシステムが確実に破損する可能性があります。

ファイルシステムを無料で修復して修復

これで故障したので、修正する方法は次のとおりです。

  1. System Preferences > Spotlight 選択ウィンドウを開き、SEAGATE外付けディスクをPrivacy追加()してインデックスの試行を停止します。+Spotlight

  2. まだ実行している場合mds

    ps ax | egrep '[ /](PID|mds)'
    

    あなたはそれを殺す必要があります:

    _pid_to_kill=`ps ax | egrep '[ /]mds' | awk '{print $1}'`
    if [ "${_pid_to_kill}" ] ; then
        echo "${_pid_to_kill}" | while read _pid ; do
            /usr/bin/sudo kill ${_pid}
        done
    fi
    

    lsof今すぐディスクが利用可能であることを確認してくださいSEAGATE

    lsof /Volumes/SEAGATE
    

    問題がない場合は4番に進みます。

  3. mdsシャットダウン後も解放されない場合は、他の/Volumes/SEAGATEプロセスがファイルシステムにアクセスしていますmds。 (これはウイルス対策またはジャンクウェアのいずれかです。これは別の調査スケールです。)この場合、クイックパスはstop launchd-startですmds

    次のように進んでください。

    cd /System/Library/LaunchDaemons
    /usr/bin/sudo launchctl unload com.apple.metadata.mds.plist
    

    これ以上プロセスがないことを確認してくださいmds

    ps ax | egrep '[ /](PID|mds)'
    

    lsof今すぐディスクが利用可能であることを確認してくださいSEAGATE

    lsof /Volumes/SEAGATE
    

    大丈夫です。 4に進みます。

  4. Disk Utility ディスクを起動して確認してくださいSEAGATE。少し修理が必要になりそうです。この場合は修理してください。

    ポップアップを表示して、「ファイルを使用中」というエラーメッセージがなくなったことを確認してください。

  5. System Preferences > Spotlight 選択ウィンドウを開き、SEAGATE外部ディスクをPrivacy削除()してインデックスを作成できます。-Spotlight

  6. strep 3を過ぎてlaunchd起動を停止すると、mdsそれを再度有効にする必要があります(そうしないと、ファイルシステムを管理する多くの操作が失敗します)。

    次のように進んでください。

    cd /System/Library/LaunchDaemons
    /usr/bin/sudo launchctl load com.apple.metadata.mds.plist
    

おすすめ記事