09月23日
mac Read-only file system ルート(/)にフォルダを作る方法
macOS Catalinaで/publicフォルダを作成するところでつまづきました。
ここでは、SIPをOFFにすることなくmacOS Catalinaでルート( / )にpublicフォルダを作る手順が分かります。
手順は、フォルダを作って、設定、再起動の流れになります。基本的にターミナルアプリを使って作業します。
基本、読み込み、書き込みができることが前提かと思います。
/System/Volumes/Data/フォルダ下にフォルダを作る必要があります(外付けはダメってことですね)。
実際publicフォルダをどこに?後々のことを考えるとAppleの慣例に合わせておいた方が面倒ごとが減るかと思っています。
コマンド( ls -l / )でルートフォルダがどのように形成されているのかが分かります。
home -> /System/Volumes/Data/home
/homeの実体は、/System/Volumes/Data/homeにあることが分かります。
これに合わせて、今回作成するpublicフォルダは、/System/Volumes/Data/publicに作成します。
◯ フォルダを作成する
sudo mkdir -p /System/Volumes/Data/public
この時点では、自分がこのフォルダ内に書き込むことができません。アクセス権がないためです。
◯ アクセス権を与える。自分がオーナーとなるように調整します。
自分のIDを調べます。
id -un
macyarounanoka <= 次に利用するコマンドに使います。
このコマンドでオーナーを自分に変更できます。
sudo chown macyarounanoka /System/Volumes/Data/public
↓のように一括でやることもできます。'ではありません。`逆シングルコートです。
sudo chwon `id -un` /System/Volumes/Data/public
公開予定のpublicフォルダの作成、アクセス権の設定ができました。
通常lnコマンドでシンボリックリンクを作成することができます。このコマンドも「 Read-only file system」エラーになります。
lnコマンドの代わりにmacOS Catalinaからは/etc/synthetic.conf設定ファイルが必要になりました。
man synthetic.confで設定方法の詳細が分かります。
設定方法は例えばpublicを公開する場合、
public(公開したいフォルダ名)[tab]/System/Volumes/Data/public(実体のフォルダ)
Sysmteの先頭には/がないことに注意してください。
以下のようなコマンドで設定することも可能です。
echo -e 'public\tSystem/Volumes/Data/public' | sudo tee -a /etc/synthetic.conf
このコマンドは、ファイルがなければ新規作成、ファイルがある場合追記します。
設定された内容は以下コマンドで確認することができます。
cat /etc/synthetic.conf
今回設定した内容は、macOS起動時に反映されます。
再起動の準備ができたところで、macOSを再起動してください。
再起動後、/publicフォルダができていることが確認できます。
まずは設定済みの内容を確認します。
cat /etc/synthetic.conf
自分で設定したもの1行だけある
=>設定ファイルを削除します。
sudo rm /etc/synthetic.conf
今回複数ある中から1つだけ削除したい
=>vi で編集する必要があります。
sudo vi /etc/synthetic.conf
viで削除対象の行の先頭に#をつける、またはその行を削除し保存してください。
設定した内容は、macOS起動時に反映されます。
再起動の準備ができたところで、macOSを再起動してください。
SIPをOFFにすることなくmacOS Catalinaでルート( / )にpublicフォルダを作る手順が分かったかと思います。
この記事の内容は2020/1/10の「[macOS Catalina] 困ったことの対処方法」に書いた内容をリライトしたものです。今回困って探して以前書いた内容にようやくたどり着きました。探すキーワードで見つかるようにしました。
sh-3.2# mkdir -p /public
mkdir: /public: Read-only file system
macOS Catalina では、ファイルやデータを読み取り専用のシステムボリュームに保存したり、コマンドライン (ターミナルなど) から「ルート」ディレクトリ ( / ) 書き込んだりすることはできなくなりました。
macOS Catalina の読み取り専用のシステムボリュームについて
ここでは、SIPをOFFにすることなくmacOS Catalinaでルート( / )にpublicフォルダを作る手順が分かります。
手順は、フォルダを作って、設定、再起動の流れになります。基本的にターミナルアプリを使って作業します。
手順1:必要なフォルダを作る
基本、読み込み、書き込みができることが前提かと思います。
/System/Volumes/Data/フォルダ下にフォルダを作る必要があります(外付けはダメってことですね)。
実際publicフォルダをどこに?後々のことを考えるとAppleの慣例に合わせておいた方が面倒ごとが減るかと思っています。
homeは/System/Volumes/Data/home
コマンド( ls -l / )でルートフォルダがどのように形成されているのかが分かります。
home -> /System/Volumes/Data/home
/homeの実体は、/System/Volumes/Data/homeにあることが分かります。
作成するフォルダはこの規則に合わせて作ります。
これに合わせて、今回作成するpublicフォルダは、/System/Volumes/Data/publicに作成します。
◯ フォルダを作成する
sudo mkdir -p /System/Volumes/Data/public
この時点では、自分がこのフォルダ内に書き込むことができません。アクセス権がないためです。
◯ アクセス権を与える。自分がオーナーとなるように調整します。
自分のIDを調べます。
id -un
macyarounanoka <= 次に利用するコマンドに使います。
このコマンドでオーナーを自分に変更できます。
sudo chown macyarounanoka /System/Volumes/Data/public
↓のように一括でやることもできます。'ではありません。`逆シングルコートです。
sudo chwon `id -un` /System/Volumes/Data/public
公開予定のpublicフォルダの作成、アクセス権の設定ができました。
手順2:ルート(/)にシンボリックリンクを作成する設定を行います。
通常lnコマンドでシンボリックリンクを作成することができます。このコマンドも「 Read-only file system」エラーになります。
lnコマンドの代わりにmacOS Catalinaからは/etc/synthetic.conf設定ファイルが必要になりました。
man synthetic.confで設定方法の詳細が分かります。
設定方法は例えばpublicを公開する場合、
public(公開したいフォルダ名)[tab]/System/Volumes/Data/public(実体のフォルダ)
public System/Volumes/Data/public
Sysmteの先頭には/がないことに注意してください。
以下のようなコマンドで設定することも可能です。
echo -e 'public\tSystem/Volumes/Data/public' | sudo tee -a /etc/synthetic.conf
このコマンドは、ファイルがなければ新規作成、ファイルがある場合追記します。
設定された内容は以下コマンドで確認することができます。
cat /etc/synthetic.conf
手順3:macOSを再起動し、設定を適用する。
今回設定した内容は、macOS起動時に反映されます。
再起動の準備ができたところで、macOSを再起動してください。
再起動後、/publicフォルダができていることが確認できます。
作った設定が間違っていた、ルートに公開したフォルダをやめる方法
まずは設定済みの内容を確認します。
cat /etc/synthetic.conf
自分で設定したもの1行だけある
=>設定ファイルを削除します。
sudo rm /etc/synthetic.conf
今回複数ある中から1つだけ削除したい
=>vi で編集する必要があります。
sudo vi /etc/synthetic.conf
viで削除対象の行の先頭に#をつける、またはその行を削除し保存してください。
設定した内容は、macOS起動時に反映されます。
再起動の準備ができたところで、macOSを再起動してください。
まとめ
SIPをOFFにすることなくmacOS Catalinaでルート( / )にpublicフォルダを作る手順が分かったかと思います。
この記事の内容は2020/1/10の「[macOS Catalina] 困ったことの対処方法」に書いた内容をリライトしたものです。今回困って探して以前書いた内容にようやくたどり着きました。探すキーワードで見つかるようにしました。
コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。