web-dev-qa-db-ja.com

MacOSはルートMongodbデータフォルダーをシステム所有権に切り替え、それを元に戻すことはできません

タイトルはそれを与えると思います。

ここに取り引きがあります:

MacOSは、MongoDBが使用する/ data/dbフォルダーを大量の作業を行う必要があるため、読み取り専用のファイルシステムに切り替えました。基本的に一晩で起こった。

_ls -lO /data_を実行すると、以下が返されます:_drwxr-xr-x 182 root admin - 5824 Jul 11 17:33 db_

_Sudo chmod -R 777 $USER /data_を実行しようとすると、次の結果が返されます:_chmod: Unable to change file mode on /data/db/index-32-577782821146278306.wt: Read-only file system_の合計エントリ数。

SIPこれが原因です。回復モードで_csrutil disable_を実行して無効にしようとしました。無効にしたのに、権限を変更できませんでした。

何が起こっているのかについて、私はすべて考えきれません。おそらく私のアカウントは壊れていますか?

1
Dom Berk

私はこのナンセンスの理由を見つけました。アップルです。

基本的に、ここで起こっていることは、新しいバージョンのMacOSであるCatalinaが、システムルートフォルダーを読み取り専用として持っていることです。したがって、なんらかの理由でルートフォルダを使用する必要があるソフトウェアはすべて台無しにされます。

私の解決策は次のことをすることでした:

  1. マシンをシャットダウンしてCmd + R + Bootから起動することにより、リカバリモードで起動します
  2. 回復したらターミナルを開きます
  3. 無効にするSIP using csrutil disable
  4. マシンを再起動します
  5. MacOSカタリナで起動したらターミナルを開きます
  6. Sudo mount -uw /を実行します

これにより、現在のセッションのrootアクセスが可能になります。次回の起動時にリセットされます。ただし、ルートフォルダーでは、他のものを移動するなど、さまざまなことができます。

つまり、次のコマンドを使用して、/dataフォルダ全体を/System/Volumes/Dataに移動します。Sudo mv /data /System/Volumes/Data

どうやらそれはすべてのデータを置くための好ましい場所です。また、ルートフォルダーが機能する新しい方法によれば、これらのフォルダーへのリンクを設定して、ルートフォルダーの一部であるかのように機能させることができます。それは明らかに、私にはうまくいきませんでした。ただし、mongodを実行してdbpathを次のように設定することはできます。

Sudo mongod --dbpath /System/Volumes/Data/data/db

これがAppleによるこの卑劣な決定に遭遇した人を助けることを願っています。このカタリナ全体の更新は、非常に混乱しています。

5
Dom Berk