Macでデータを書き込もうとしたときに、「read-only file system」エラーが表示されて困ったことはありませんか?この問題は、Macの内蔵ドライブ、外付けハードドライブ、さらには共有フォルダでも発生することがあります。ターミナルに「mkdir: /data: read-only file system」と表示される場合もあれば、Finderで単に「読み取りのみ可能」と表示される場合もあり、作業の妨げになりかねません。
この問題は珍しいものではありません。この記事では、Macでファイルシステムが読み取り専用になる主な原因を確認し、ターミナルコマンドまたはより簡単な方法で対処する手順を紹介します。
それでは、読み取り専用のファイルシステムを再び書き込み可能にする方法を見ていきましょう。
以下に、このガイドで紹介する解決策をまとめます。
| M1/M2/M3/T2搭載MacおよびIntel Macで読み取り専用ファイルシステムを解消する方法 | 対処法 |
| 状況1:Macで外付けハードディスクが読み取り専用になっている | 1. 書き込み保護ロックを解除します。 2. 会社支給のMacを使用している場合は、社内ポリシーを確認します。 3. Time Machineのバックアップディスクにファイルを追加する前に、パーティションを追加します。 4. iBoysoft NTFS for Macを使用して、NTFS形式の外付けドライブでの読み書きを可能にします。 5. Macで読み取り専用ファイルシステムのアクセス権を変更します。 6. Macで外付けドライブを再フォーマットします。 |
| 状況2:ターミナルで「読み取り専用ファイルシステム」エラーが表示される | 1. コマンドが正しいことを確認します。 2. SIPを無効にします。 3. /etc/synthetic.confファイルを変更します。 |
対処する前に確認すること
Macのファイルシステムが読み取り専用になっている場合は、問題が外付けドライブで発生しているのか、内蔵のシステムボリュームで発生しているのかを確認してください。
ドライブがNTFS形式の場合、書き込みを可能にするためだけにフォーマットしないでください。
外付けドライブに重要なファイルが保存されている場合は、First Aidの実行、消去、フォーマットを行う前に、データを復元するかバックアップしてください。
SIPを無効にしたり、ルートボリュームを変更したりする場合は、リスクを十分に理解したうえで行ってください。
Macでファイルシステムが読み取り専用になる原因
Macのファイルシステムが読み取り専用になる原因は、内蔵ドライブか外付けドライブかによって異なります。ここでは、読み取り専用の問題が発生する代表的なケースと、その考えられる原因を紹介します。
ケース1:Macで外付けハードドライブが読み取り専用になっている
Finderでもターミナルでも、MacからUSBメモリにファイルをコピーできません。「情報を見る」でディスクのアクセス権を確認すると、「読み取りのみ可能」と表示され、読み書きのアクセス権を有効にできない状態です。ドライブはWindows NTファイルシステムでフォーマットされています。この読み取り専用ファイルシステムのアクセス権をMacBook Proで変更するには、どうすればよいですか?
exFAT形式の 外付けハードドライブがMacで突然読み取り専用になりました。昨日までは書き込みできていたのですが、M1 Macでこの読み取り専用ファイルシステムを解決するにはどうすればよいですか?

Macで外付けドライブが読み取り専用になっている場合、NTFS形式であること、アクセス権の設定ミス、会社のポリシーによる制限、Time Machineのバックアップディスクであること、ハードウェアの故障、または物理的なロックスイッチによる書き込み保護などが原因として考えられます。
ケース2:mkdir: /data: Read-only file system
sudo mkdir /data/bdというコマンドを使って新しいディレクトリを作成しようとしました。ターミナルに「mkdir: /data: Read-only file system」というエラーが表示されます。

ルートディレクトリの下にフォルダを作成した際、ターミナルに「読み取り専用のファイルシステム」と表示される場合は、通常、macOSによってシステムボリュームが保護されています。macOS Catalina以降、システムファイルは読み取り専用のボリュームに保存され、書き込み可能なユーザーデータはDataボリュームに保存されます。
多くの場合、SIPを無効にする必要はありません。SIPは、rootユーザーであっても一部のシステムファイルやディレクトリを変更できないようにするセキュリティ機能です。代わりに、/System/Volumes/Dataの下にフォルダを作成するか、ルート階層にパスが必要な場合は/etc/synthetic.confを使用してください。
ケース3:rm: /var/db/ .AppleSetupDone: Read-only file system
シングルユーザーモードで、AppleSetupDoneファイルを削除して設定アシスタントを再実行するため、次のコマンドを実行しました。しかし、「rm: /var/db/ .AppleSetupDone: Read-only file system」というメッセージが表示され、失敗しました。
この「読み取り専用のファイルシステム」エラーは、コマンドのスペルミスが原因です。
コマンド内のファイルパスが引用符で囲まれていません。そのため、シェルはファイルパスを、/Volumes/Macintosh、HD/var/db/.AppleSetupDone、rmという3つの引数として解釈します。HD/var/db/ディレクトリは読み取り専用のシステムボリュームに属しているため、コマンドを実行できず、エラーが発生します。
この問題を解決するには、ファイルパス(/Volumes/Macintosh HD/var/db/.AppleSetupDone)を二重引用符で囲みます。これにより、シェルはパス全体を1つの引数として解釈し、書き込み権限のあるユーザーフォルダからファイルを削除できるようになります。
macOS復旧で起動し、ターミナルで次のコマンドを実行してください。
rm "/Volumes/Macintosh HD/var/db/.AppleSetupDone"
ケース4:OSError: [Errno 30] Read-only file system:
Macでコーディング中に、次のエラーが表示されました:OSError: [Errno 30] Read-only file system: '/User'。コードの一部は次のとおりです。
import os from_dir = os.path.dirname('/Users/user/Downloads/')
working_dir = os.walk(from_dir)
to_dir = os.path.dirname('/User/user/Downloads/New Folder/')
「OSError: [Errno 30] Read-only file system」というエラーは、通常、コマンドの入力ミスがある場合に発生します。このケースでは、エラーメッセージ内に誤りが示されています。"/User"ではなく、/Usersと入力する必要があります。
Macのターミナルで「読み取り専用のファイルシステム」エラーに悩んでいる人は少なくありません。この記事を共有して、問題の理解に役立ててください。
Macで外付けドライブの「読み取り専用のファイルシステム」を解決する方法
Macで外付けドライブが読み取り専用になっている場合は、以下の方法で書き込みアクセスを付与できます。
- ヒント1: 多くのSDカードや一部のUSBメモリには、書き込み禁止スイッチが付いています。スイッチがオンになっていると、ディスクは読み取り専用になり、書き込みはできません。このスイッチが付いている場合は、オフになっていることを確認してください。
- ヒント2: 組織で使用しているコンピュータでは、データ漏えいを防ぐために外部デバイスへのアクセスが読み取り専用に設定されている場合があります。Macが組織から支給されたものである場合は、IT担当者に相談してください。
- ヒント3: Time Machineのバックアップディスクには、バックアップ以外のファイルを追加できません。このような外付けハードドライブにMacからファイルを追加する方法については、こちらのガイドを確認してください。
方法1:NTFSドライブへの書き込みを有効にする
読み取り専用になっているファイルシステムがNTFSでフォーマットされた外付けドライブの場合、通常のmacOSのアクセス権の問題ではありません。macOSはNTFSドライブを読み取れますが、デフォルトでは書き込むことができません。そのため、「情報を見る」の「共有とアクセス権」を変更しても、完全な書き込みアクセスを有効にすることはできません。NTFSに対応したMac用ドライバが必要です。
NTFSドライブを再フォーマットせずにファイルのコピー、編集、削除、移動を行う場合は、iBoysoft NTFS for Macを利用できます。インストールすると、Mac上でNTFSドライブを自動的に読み書き可能な状態でマウントでき、通常のドライブと同じようにファイルを管理できます。
このNTFS for Macソフトウェアは、macOS High Sierra、macOS Mojave、macOS Catalina、macOS Big Sur、macOS Monterey、macOS Ventura、macOS Sonoma、macOS Sequoia、macOS Tahoeを含む主要なmacOSバージョンに対応しています。
また、Intel搭載Mac、T2搭載Mac、Appleシリコン搭載Macに対応しているほか、外付けハードドライブ、USBメモリ、メモリカードなど、さまざまな外部ストレージデバイスで利用できます。
下のボタンからダウンロードすると、データを失わずにMacでNTFS外付けドライブの読み書きができるようになります。

ヒント: 外付けドライブのファイルシステムがわからない場合は、「ディスクユーティリティ」で確認できます。ドライブのメインパーティションを選択し、右側に表示される情報を確認してください。
方法2:Macで読み取り専用ファイルシステムのアクセス権を変更する
外付けディスクがAPFSまたはMac OS Extended(ジャーナリング)でフォーマットされている場合は、Macで読み取り専用ファイルシステムのアクセス権を変更してみてください。手順は次のとおりです。
- Finderで、読み取り専用のファイルシステムとして認識されているドライブを右クリックします。
- 「情報を見る」を選択します。
- 黄色いロックアイコンをクリックして、設定のロックを解除します。
- 「共有とアクセス権」までスクロールします。
- ドライブの権限を「読み/書き」に変更します。

- アクションポップアップをクリックし、「内包している項目に適用」を選択します。
- 「このボリュームの所有権を無視」にチェックを入れます。このボリュームの所有権を無視
- ロックアイコンをクリックして変更を保存します。
問題なく完了すれば、Macで外付けドライブに書き込めるようになります。Macで外付けハードドライブのアクセス権を変更できない場合は、こちらのガイドにある別の方法を試してください: Macでアクセス権を変更できない・アクセス権エラーを修正する方法
ファイルシステムがexFATの場合は、続けてこちらをご覧ください: MacでexFATドライブがマウントされない・表示されない場合の対処法
方法3:バックアップを取ってからドライブを再フォーマットする
外付けハードドライブの読み取り専用ファイルシステムを解消するもう1つの方法は、Macで読み書きに対応したフォーマットに変更することです。ただし、再フォーマットを実行するとドライブ上のデータがすべて削除されるため、作業を始める前に重要なファイルをバックアップしてください。
関連記事: exFATとNTFSの違い
Macに対応したフォーマットに変更しても外付けハードドライブに書き込めない場合は、ドライブが故障している可能性があります。
Macの外付けハードドライブで読み取り専用ファイルシステムが発生した場合の対処法を、他の人にも共有してください。
Macの内蔵ボリュームで読み取り専用ファイルシステムを修正する方法
Macでシステムファイルを編集しようとすると、読み取り専用ファイルシステムのエラーが発生することがあります。この場合は、次の方法を試してください。
- Macの読み取り専用ファイルシステムエラーを修正するには?
- 方法1:コマンドを再確認する
- 方法2:システム整合性保護を無効にする
- 方法3:/etc/synthetic.confファイルを変更する
方法1:コマンドを再確認する
ターミナルに「rm: /var/db/ .AppleSetupDone: Read-only file system」や「OSError: [Errno 30] Read-only file system:」のような読み取り専用ファイルシステムのメッセージが表示された場合は、まずコマンドで指定したパスのスペルが正しいか確認してください。
コマンドの入力を誤った(スペース、スラッシュ、または引用 符を省略したなど)ために、ターミナルが読み取り専用のルートディレクトリを変更してしまった可能性があります。
方法2:システム整合性保護を無効にする
Macのルートディレクトリを変更しようとしている場合は、読み取り専用のファイルシステムを書き込み可能にするため、SIPを無効にする必要があります。手順は次のとおりです。
注: 「sudo」コマンドを使うと、root権限でコマンドを実行できます。「sudo」を付けてコマンドを実行するには、ログインパスワードの入力が必要です。入力を求められたらパスワードを入力し、「Enter」を押してください。セキュリティ上の理由により、入力中のパスワードは画面に表示されません。
- macOS復旧を起動します。
- 「ユーティリティ」>「ターミナル」をクリックします。
- SIPを無効にします。csrutil disable

- 変更を反映するため、Macを再起動します。
- 読み取り専用のファイルシステムを読み書き可能な状態でマウントします。sudo mount -uw /
- 操作するフォルダーに読み書きの権限を付与します。sudo chmod - R 775 folder_path
- これで、Macの読み取り専用ファイルシステムに書き込めるようになります。
- Macを再起動します。
- 復旧モードを起動し、SIPを再度有効にします。csrutil enable
方法3:/etc/synthetic.confファイルを変更してルート階層にディレクトリを作成する
SIPを無効にせずに、読み取り専用のルートボリュームへ新しいファイルやディレクトリを追加するもう1つの代替手段は、/etc/synthetic.confファイルを使ってデータボリュームからルート階層へのシンボリックリンクを作成する方法です。
このファイルを使うと、システムの起動時にルート階層に表示するディレクトリやシンボリックリンクを指定できます。これらのディレクトリやリンクは実際にはデータボリューム(/System/Volumes/Data)にありますが、それらにアクセスするソフトウェアからはルート階層にあるように見えます。
ターミナルで、データを含む新しいディレクトリを読み取り専用のルートディレクトリに作成する手順は次のとおりです。
- 管理者アカウントでログインしていることを確認してください。
- 「ターミナル」を開きます。
- 次のコマンドを入力してEnterキーを押し、データボリュームまたはそのサブディレクトリに新しいディレクトリを作成します。sudo mkdir new_folder_pathたとえば、Macintosh HD Dataボリュームにdataという名前のフォルダを作成する場合は、次のコマンドを実行します。sudo mkdir /System/Volumes/Data/data

- ドラッグ&ドロップ、または次のコマンドを使って、必要なデータを新しいディレクトリにコピーまたは移動します。(macOSのターミナルでcpコマンドを使ってファイルやディレクトリをコピーする方法)sudo cp -R source_directory_path/ new_folder_pathたとえば、cp -R /Users/jenny/Desktop/data/ /System/Volumes/Data/dataを実行します。

- /etc/synthetic.confファイルを編集し、新しいディレクトリを指すシンボリックリンクをルート直下に作成します。echo 'data\tfolder_path' | sudo tee -a /etc/synthetic.confたとえば、/System/Volumes/Data/dataを指すdataという名前のシンボリックリンクをルート直下に作成する場合は、次のコマンドを使用します。echo 'data\tSystem/Volumes/Data/data' | sudo tee -a /etc/synthetic.conf

- Macを再起動します。
- 読み取り専用のルートディレクトリにフォルダが表示されることを確認します。
macOS Tahoe/Sequoia/Sonoma/Ventura/Monterey/Big Sur/Catalinaで読み取り専用ファイルシステムに対処する必要がある方に、このガイドを共有してください。
Macの読み取り専用ファイルシステムに関するよくある質問
- QMacで読み取り専用ファイルのロックを解除するには?
-
A
Macで読み取り専用ファイルのロックを解除するには、ファイルを右クリックして「情報を見る」を選択し、自分のアカウントに「読み/書き」のアクセス権を付与します。読み取り専用ファイルがNTFS形式でフォーマットされた外付けドライブに保存されている場合は、iBoysoft NTFS for Macをインストールすると、ファイルを変更できるようになる場合があります。
- QMacでファイルが読み取り専用になるのはなぜですか?
-
A
Macでファイルが読み取り専用になる原因として、NTFS形式でのフォーマット、アクセス権の問題、ファイルのロック状態などが考えられます。
- QMacで読み取り専用ファイルを削除するには?
-
A
Macで読み取り専用ファイルを削除するには、ファイルに書き込み権限を付与する必要があります。NTFS形式の外付けドライブに保存されている場合は、信頼できるNTFS for Macドライバで書き込み機能を有効にしてから、通常どおり削除してください。

