日々適当

hibitekitou

ルートディレクトリにフォルダを掘る

mac |2023-05-13

macOSはCatalinaからかな、/(ルート)にフォルダを掘れなくなりました。だから、/HOGE/Server とかいう階層にサーバーの共有フォルダをマウントさせて、Linux環境とパスを一致させることで共同作業の利便性を向上させていましたって方々は困っていたわけです。
Appleはそれを回避する手段として /etc/synthetic.conf ってのを用意していて、ルートディレクトリにフォルダを作る方法を提供していました。ただユーザがアクセスできるそれはあくまでもシンボリックリンクとしてって形で使うものって自分は思ってて、ファイルパスの一致の問題を解決できないでおりました。

現在のmacOSはMacintosh HDの一番上の階層に表示される Applications とか Users などといったMacユーザにお馴染みのフォルダも、実際は /System/Volumes/Data 内にある同名ディレクトリを synthetic.conf の仕組みでもって ルートにあるように見せているって仕組みになってるようです。/Applicationsや/Usersといったディレクトリはシステムが使用するsynthetic.conf を使ってルートディレクトリにあるように見せているようですが、ユーザは /etc/synthetic.conf を使って同じことができました。その機能を使って、SIPを解除して云々とかいうイレギュラーな運用をすることなくルートディレクトリにフォルダを掘る方法がネットに書かれてました

メモっときます。ただしこれはボリュームをこの位置にマウントさせるという考え方になるみたいです。

HOGEって名前でルートにフォルダを掘りたいとします。

echo 'HOGE' | sudo tee -a /etc/synthetic.conf

/etc/synthetic.confにHOGEって書いただけです。で、マシンを再起動。これで、HOGEがルートに出来上がりますが、その状態だとアクセスはできません。そこで以下の処理をします。

sudo diskutil apfs addVolume disk1 APFSX HOGE -mountpoint /HOGE 
sudo diskutil enableOwnership /HOGE
sudo chflags hidden /HOGE
echo " LABEL=HOGE /HOGE apfs rw"|sudo tee -a /etc/fstab

disk1の部分は diskutil list でマウントされているボリュームの一覧を見て、たぶん、システムの入っているコンテナを指定してやることになります。自分のマシンでやったら disk1 ではなく disk3 でした。APFSXを使っているのはなんでなんだろう?
APFSボリュームをマウントするパス(synthetic.confで作成したHOGE)を指定してAPFSコンテナに追加するという処理をして、
その所有権を有効にし
デスクトップに表示されないようにして
以降も同じようにHOGEを動作させるためにfstabに記入しておきます。

そんな順序の模様。結果、このHOGEフォルダの中にフォルダを掘って、そいつにサーバーの共有フォルダをマウントさせることができるようになりました。たぶんこれで行けるのではないかと思うけど、さて。

<追記>テスト的にHOGEとかいう名前で作っちゃったので、それをちゃんと本番環境の名前にしておきたいと思いました。

/etc/synthetic.conf の中のHOGEと書かれた行のHOGEを本番環境の名前に変更して保存。仮にそれをHAGEとします。

DiskUtilityを開くとHOGEがマウントされているので、それを普通にHAGEとリネームします。diskutilコマンドのremaneを使ってもいいでしょう。(普通にFinderからリネームでもいいのか?)

fstabのHOGEとなっている部分をHAGEに書き換えます。

これだけでいいみたいでした。</追記>

コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。