Flame2026がリリースされてから約1年が経ちますが、
Rocky LinuxとmacOS間のプロジェクト共有については特に意識せず運用していました。
今回、Wire接続の動作確認を行ったところ、
従来の/hosts経由によるNFSマウントが機能しないことに気づきました。
検証環境
| オペレーションシステム | バージョン | ホストネーム | プロジェクト名 |
| Rocky Linux | v9.5 | Rocky | Rocky_Project |
| macOS | Tahoe 26.2 | FIgo | Apple_Project |


/hosts運用の変化
Rocky Linux / macOSのどちらでも、Flameを起動すると以前は/hostsから自分自身をNFSマウントし、
同一ネットワーク上のFlameワークステーション間でメタデータを共有していました。
Rocky Linux
[admin@Rocky ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 3879780 1464 3878316 1% /dev/shm
tmpfs 1551916 18080 1533836 2% /run
efivarfs 150 75 71 52% /sys/firmware/efi/efivars
/dev/sda5 213253392 81249084 132004308 39% /
/dev/sda3 1046508 7192 1039316 1% /boot/efi
/dev/sdb1 60015596 911856 59103740 2% /mnt/StorageMedia/Rocky_Project
tmpfs 775956 44 775912 1% /run/user/1000
[admin@Rocky ~]$
/dev/sdb1をプロジェクト用ストレージとしてマウントしています。
[admin@Rocky ~]$ mount | grep Rocky
/dev/sdb1 on /mnt/StorageMedia/Rocky_Project type xfs
従来通り/hosts経由でアクセスしてみます。
[admin@Rocky ~]$ cd /hosts/192.168.1.13/mnt/StorageMedia/Rocky_Project
[admin@Rocky Rocky_Project]$ ls -l
total 0
drwxr-xr-x 3 root root 16 Mar 19 11:07 Cache
drwxrwxrwx 2 root root 6 Mar 19 10:58 Footage
drwxrwxrwx 4 root root 53 Mar 23 10:11 Project
[admin@Rocky Rocky_Project]$
同じファイルパスに対して
・autofs
・xfs(ローカル)
の2系統が存在しています。
[admin@Rocky ~]$ mount | grep Rocky
-hosts on /hosts/192.168.1.13/mnt/StorageMedia/Rocky_Project type autofs
/dev/sdb1 on /hosts/192.168.1.13/mnt/StorageMedia/Rocky_Project type xfs
この状態ではautofs経由で名前解決が行われても、
ローカルデバイスとして最適化され、実際のNFSマウントが行われません。
/hostsでマウントされない理由
今回の流れを整理すると以下のようになります。
/hosts/192.168.1.13/mnt/StorageMedia/Rocky_Projectにアクセス
↓
autofsが起動
↓
内部でNFSマウントを試みる
↓
192.168.1.13 = 自分自身
↓
カーネルが判断 > 「ローカルデバイスとしてアクセス可能」
↓
NFSを行わずローカルパスに最適化
↓
/dev/sdb1(xfs)を直接使用
macOSの場合
192.168.1.11:/Volumes/StorageMedia/... → /System/.../hosts/192.168.1.11/...
/System/…/hosts/192.168.1.11/…にマウント
↓
常にNFSマウントとして扱われる
つまり、macOSでは自己参照であってもローカル最適化は行われません。
まとめ
- macOSの/hostsは常にNFSマウント
- Rocky Linuxの-hostsは自己参照時にローカルへ最適化される
- dfに表示されない理由はこの最適化のため
- Flameプロジェクト共有用途では大きな問題となる
すべてのOSで同じファイルパスを作成してマウント
/hosts運用に制限があるので、Rocky Linux / macOSそれぞれに共通のファイルパスのマウントを考えました。
例えば、/mnt/StorageMedia/Rocky_Projectに、Rocky Linux / macOSからアクセスできればいいんじゃないかと。
・Rocky Linux > /mntにローカルストレージやネットワークストレージがマウントされることが多い。
・macOS > /Volumesにローカルストレージやネットワークストレージがマウントされる。
理論上、macOS側でも/mnt/StorageMedia/Rocky_Projectを作成し、
同一パスにRocky LinuxをNFSマウントすればプロジェクト参照が可能になりますが、
デフォルトではRead-onlyになります。
Figo:~ admin$ sudo mkdir -p /mnt/StorageMedia/Rocky_Project
Password:
mkdir: /mnt: Read-only file system
Figo:~ admin$
macOSの制約
macOS (最近のバージョン)は
/System → 完全Read-only (SIP)/直下 → 一部書けるが制限あり- 実体
は/System/Volumes/Dataにある
SIPの制約があるため、対応方法の判断に迷い、
オートデスク社の記事にヒントがないか確認。すると、synthetic.confファイルから/mntが作れる行を発見。
Figo:~ admin$ sudo vi /etc/synthetic.conf
mnt > 追加して保存
再起動後、mkdirコマンドを実行すると、リードオンリーのまま。
/mntは作られてるけど、rootボリューム側(Read-only)に作られてるみたい。
Figo:~ admin$ sudo mkdir -p /mnt/StorageMedia/Rocky_Project
Password:
mkdir: /mnt: Read-only file system
Figo:mnt admin$ df /mnt
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk3s3s1 1942700360 23947960 1491809568 2% 453019 4294181648 0% /
Figo:mnt admin$
正しいsynthetic.confの書き方
Figo:~ admin$ sudo vi /etc/synthetic.conf
mnt System/Volumes/Data/mnt > スペースではなくTABキーから区切ってください
再起動後確認すると、mount on > /System/Volumes/Data
Figo:~ admin$ df /mnt
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk3s1 1942700360 407995384 1491992264 22% 721204 7459961320 0% /System/Volumes/Data
Figo:~ admin$
mkdirコマンドからフォルダ作成。macOS側のマウントポイント完成。
Figo:~ admin$ sudo mkdir -p /mnt/StorageMedia/Rocky_Project
Password:
Figo:~ admin$
Rocky Linux側 公開 (/etc/exports)
192.168.1.0/24は、同一ネットワーク内のすべてのIPアドレスからのアクセスを許可する設定になります。
Flameのプロジェクト共有では、メタデータの整合性とアクセス権限が重要になるため、
rw,sync,no_root_squash,no_subtree_checkのオプションを使用しています。
[admin@Rocky ~]$ cat /etc/exports
/mnt/StorageMedia/Rocky_Project 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
[admin@Rocky ~]$
[admin@Rocky ~]$ showmount -e
Export list for Rocky:
/mnt/StorageMedia/Rocky_Project 192.168.1.0/24
[admin@Rocky ~]$
| オプション | 理由 |
|---|---|
| rw | 書き込み必要 |
| sync | データ整合性 |
| no_root_squash | permission維持 |
| no_subtree_check | パフォーマンス |
macOS マウントコマンド
そもそも、macOSからmountコマンドでマウントできるか疑問。
やっぱりエラーになった。
Figo:etc admin$ sudo mount -t nfs 192.168.1.13:/mnt/StorageMedia/Rocky_Project /mnt/StorageMedia/Rocky_Project Password: mount_nfs: can't mount /mnt/StorageMedia/Rocky_Project from Rocky onto /System/Volumes/Data/mnt/StorageMedia/Rocky_Project: Operation not permitted mount: /System/Volumes/Data/mnt/StorageMedia/Rocky_Project failed with 1 Figo:etc admin$
マウントオプションについて調べたこと
- vers=4 > macOSのmount -t nfsは、バージョンを指定しない場合、NFSv3になることが多い
- resvport > 互換性のために特権ポートを使用して接続
- hard > サーバー応答を待ち続ける安全なマウント方式
- intr > NFS待機を割り込み可能
- noatime > アクセス時刻更新を無効化しI/O負荷を軽減
Rocky Linux側でNFSv4が有効になっていることを確認します。
通常はデフォルトで有効になっているため、特別な変更は不要な場合が多いです。
[admin@Rocky ~]$ sudo vi /etc/nfs.conf
修正したら保存してNFSを再起動
[admin@Rocky ~]$ sudo systemctl restart nfs-server
オプションを追加 > -o vers=4,resvport,hard,intr,noatimeしてマウント完了
Figo:~ admin$ sudo mount -t nfs -o vers=4,resvport,hard,intr,noatime 192.168.1.13:/mnt/StorageMedia/Rocky_Project /mnt/StorageMedia/Rocky_Project Password: Figo:~ admin$ df Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk3s3s1 1942700360 23947960 1490198248 2% 453019 4294181648 0% / devfs 406 406 0 100% 705 0 100% /dev /dev/disk3s6 1942700360 40 1490198248 1% 0 7450991240 0% /System/Volumes/VM /dev/disk3s4 1942700360 15878440 1490198248 2% 1271 7450991240 0% /System/Volumes/Preboot /dev/disk3s2 1942700360 93952 1490198248 1% 105 7450991240 0% /System/Volumes/Update /dev/disk2s2 1024000 12328 984792 2% 1 4923960 0% /System/Volumes/xarts /dev/disk2s1 1024000 11488 984792 2% 27 4923960 0% /System/Volumes/iSCPreboot /dev/disk2s3 1024000 5672 984792 1% 81 4923960 0% /System/Volumes/Hardware /dev/disk3s1 1942700360 409789400 1490198248 22% 721720 7450991240 0% /System/Volumes/Data /dev/disk6s2 7813365344 1922414688 5890950656 25% 23092 4294944187 0% /Volumes/StorageMedia map auto_home 0 0 0 100% 0 0 - /System/Volumes/Data/home map -hosts 0 0 0 100% 0 0 - /System/Volumes/Data/hosts 192.168.1.13:/mnt/StorageMedia/Rocky_Project 120031192 1823712 118207480 2% 423 30040089 0% /System/Volumes/Data/mnt/StorageMedia/Rocky_Project Figo:~ admin$
マウント詳細
Figo:~ admin$ mount | grep Rocky 192.168.1.13:/mnt/StorageMedia/Rocky_Project on /System/Volumes/Data/mnt/StorageMedia/Rocky_Project (nfs) Figo:~ admin$
デスクトップにRocky_Projectアイコンが追加

まとめ
Rocky Linux側でNFS公開、macOSから適切なマウントオプションを指定することで、
Flameプロジェクトの共有が可能になりました。






次に、このコマンドをログイン時にオートマウントする設定を行います。
macOS オートマウント (LaunchDaemon)
今回はシェルスクリプトを使用せず、launchdのplistから直接mountコマンドを実行します。
com.flame.mount.rocky.plistを作成
Figo:~ admin$ sudo vi /Library/LaunchDaemons/com.flame.mount.rocky.plist
plist内容を保存
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.flame.mount.rocky</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/mount</string>
<string>-t</string>
<string>nfs</string>
<string>-o</string>
<string>vers=4,resvport</string>
<string>192.168.1.13:/mnt/StorageMedia/Rocky_Project</string>
<string>/mnt/StorageMedia/Rocky_Project</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/com.flame.mount.rocky.out</string>
<key>StandardErrorPath</key>
<string>/var/log/com.flame.mount.rocky.err</string>
</dict>
</plist>
launchdにサービスを登録
Figo:~ admin$ sudo launchctl bootstrap system /Library/LaunchDaemons/com.flame.mount.rocky.plist
即時実行 / 強制再実行 (-k)
Figo:~ admin$ sudo launchctl kickstart -k system/com.flame.mount.rocky
Figo:~ admin$ sudo launchctl list | grep flame
- 1 com.flame.mount.rocky
systemdとの比較
| launchd | systemd |
|---|---|
| bootstrap | daemon-reload |
| kickstart | systemctl start |
| boot時実行 | enable |
オートマウント成功
Figo:~ admin$ df Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk3s3s1 1942700360 23947960 1490198248 2% 453019 4294181648 0% / devfs 406 406 0 100% 705 0 100% /dev /dev/disk3s6 1942700360 40 1490198248 1% 0 7450991240 0% /System/Volumes/VM /dev/disk3s4 1942700360 15878440 1490198248 2% 1271 7450991240 0% /System/Volumes/Preboot /dev/disk3s2 1942700360 93952 1490198248 1% 105 7450991240 0% /System/Volumes/Update /dev/disk2s2 1024000 12328 984792 2% 1 4923960 0% /System/Volumes/xarts /dev/disk2s1 1024000 11488 984792 2% 27 4923960 0% /System/Volumes/iSCPreboot /dev/disk2s3 1024000 5672 984792 1% 81 4923960 0% /System/Volumes/Hardware /dev/disk3s1 1942700360 409789400 1490198248 22% 721720 7450991240 0% /System/Volumes/Data /dev/disk6s2 7813365344 1922414688 5890950656 25% 23092 4294944187 0% /Volumes/StorageMedia map auto_home 0 0 0 100% 0 0 - /System/Volumes/Data/home map -hosts 0 0 0 100% 0 0 - /System/Volumes/Data/hosts 192.168.1.13:/mnt/StorageMedia/Rocky_Project 120031192 1823712 118207480 2% 423 30040089 0% /System/Volumes/Data/mnt/StorageMedia/Rocky_Project Figo:~ admin$
まとめ
launchdのplistを使用することで、macOS起動時に自動的にRocky LinuxのNFSストレージを
マウントできるようになります。これにより、ログイン後に手動でmountコマンドを実行する必要がなくなります。
次に、Rocky Linux側からmacOSのプロジェクトを参照する設定を行います。
macOS側 公開 (/etc/exports)
Rocky Linuxと同じように、同一ネットワーク内のすべてのIPアドレスからのアクセスを許可する設定になります。
Figo:~ admin$ cat /etc/exports
/Volumes/StorageMedia/Apple_Project -alldirs -mapall=501:20 192.168.1.0/24
マウントオプションについて調べたこと
- -alldirs > サブディレクトリ全部アクセスOK
- -mapall > 全アクセスを、uid=501(macユーザー) / gid=20 (staff)に統一
正常に公開されているか確認すると、/etc/exportsが正しく読み込まれていない
Figo:~ admin$ cat /etc/exports
/Volumes/StorageMedia/Apple_Project -alldirs -mapall=501:20 192.168.1.0/24
Figo:~ admin$ showmount -e
Exports list on localhost:
Figo:~ admin$
調べてみると、macOSの場合は、CIDR(/24)ではなく、-network / -maskを使うのが正式みたい。
Figo:~ admin$ cat /etc/exports /Volumes/StorageMedia/Apple_Project -alldirs -mapall=501:20 -network 192.168.1.0 -mask 255.255.255.0 Figo:~ admin$
サービス再起動
Figo:~ admin$ sudo nfsd update
確認
Figo:~ admin$ showmount -e
Exports list on localhost:
/Volumes/StorageMedia/Apple_Project 192.168.1.0
Figo:~ admin$
まとめ
macOSの/etc/exportsでは、CIDR表記が正しく解釈されない場合があるため、
設定後はnfsd Updateを実行、showmount -eから公開状態を確認します。
次に、Rocky Linux側からmacOSプロジェクトストレージをマウントします。
Rocky Linux マウントコマンド
macOS NFSストレージのマウントポイントを作成
[admin@Rocky ~]$ sudo mkdir -p /Volumes/StorageMedia/Apple_Project > (macOSと同じパスにするのが重要)
マウントコマンドから問題なくマウントできた。
Rocky Linuxは賢いと思ったけど、しばらくすると突然フリーズだったり、ls・dfコマンドからのプロンプトも戻らない。
[admin@Rocky ~]$ sudo mount -t nfs 192.168.1.11:/Volumes/StorageMedia/Apple_Project /Volumes/StorageMedia/Apple_Project [sudo] password for admin: [admin@Rocky ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 4096 0 4096 0% /dev tmpfs 3879784 1060 3878724 1% /dev/shm tmpfs 1551916 18300 1533616 2% /run efivarfs 150 77 69 53% /sys/firmware/efi/efivars /dev/sda5 213253392 81253280 132000112 39% / /dev/sda3 1046508 7192 1039316 1% /boot/efi /dev/sdb1 60015596 911856 59103740 2% /mnt/StorageMedia/Rocky_Project tmpfs 775956 44 775912 1% /run/user/1000 192.168.1.11:/Volumes/StorageMedia/Apple_Project 3906682880 961207296 2945475584 25% /Volumes/StorageMedia/Apple_Project [admin@Rocky ~]$ mount | grep Apple 192.168.1.11:/Volumes/StorageMedia/Apple_Project on /Volumes/StorageMedia/Apple_Project type nfs
マウントオプションについて調べたこと
通常の運用から、Rocky Linuxは起動しているけど、macOSはシャットダウンしていることが多く、
マウントできないケースも考えてnofailオプションを追加。
- vers=4 > NFSv4
- rw > Read / Write
- hard > 切断時待機 (Flame向け)
- intr > NFS待機を割り込み可能
- nofail > mount失敗しても起動続行 > /etc/fstab追記時
- _netdev > ネットワークが有効になったらマウント > /etc/fstab追記時
オプションからNFSマウントを実行すると、Protocol not supportedでマウントできない。
[admin@Rocky ~]$ sudo mount -t nfs -o vers=4,rw,hard,intr 192.168.1.11:/Volumes/StorageMedia/Apple_Project /Volumes/StorageMedia/Apple_Project [sudo] password for admin: mount.nfs: Protocol not supported [admin@Rocky ~]$
NFSv4ではマウントできなかったため、NFSv3を指定してするとマウント成功
[admin@Rocky ~]$ sudo mount -t nfs -o vers=3,rw,hard,intr 192.168.1.11:/Volumes/StorageMedia/Apple_Project /Volumes/StorageMedia/Apple_Project [sudo] password for admin: [admin@Rocky ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 4096 0 4096 0% /dev tmpfs 3879784 1464 3878320 1% /dev/shm tmpfs 1551916 18288 1533628 2% /run efivarfs 150 77 69 53% /sys/firmware/efi/efivars /dev/sda5 213253392 81310928 131942464 39% / /dev/sda3 1046508 7192 1039316 1% /boot/efi /dev/sdb1 60015596 911856 59103740 2% /mnt/StorageMedia/Rocky_Project tmpfs 775956 44 775912 1% /run/user/1000 192.168.1.11:/Volumes/StorageMedia/Apple_Project 3906682880 961207296 2945475584 25% /Volumes/StorageMedia/Apple_Project [admin@Rocky ~]$ mount | grep Apple 192.168.1.11:/Volumes/StorageMedia/Apple_Project on /Volumes/StorageMedia/Apple_Project type nfs
整理すると
- macOS → Rocky Linuxの場合、vers=4,resvportで安定
- Rocky Linux→ macOSの場合、ver=3の方がマウントできる可能性が高い
/etc/fstab最終形
[admin@Rocky ~]$ cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Dec 30 11:52:30 2025 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=927f6f4a-d56d-4768-9af7-9a817d8c02a0 / xfs defaults 0 0 UUID=CFC3-97EC /boot/efi vfat umask=0077,shortname=winnt 0 2 UUID=5a44e5e7-21c3-4594-a5e5-911ed237f0b1 none swap defaults 0 0 #/dev/vg00/lvol1 /mnt/StorageMedia xfs rw,noatime,inode64,nofail #### DKU - IMPORTANT #### # - You need to use the option 'nofail' for device that can not be present on boot (ex: external storage). # Without the option 'nofail', the boot process will stop in rescue mode if the device doesn't exist # - 'noatime' option on SSD devices can improve SSD lifespan. #### # KEEP THIS LINE FOR CDROM -- from DKU /dev/cdrom /mnt/cdrom auto pamconsole,exec,noauto,managed 0 0 /dev/sdb1 /mnt/StorageMedia/Rocky_Project xfs rw,noatime,inode64,nofail 192.168.1.11:/Volumes/StorageMedia/Apple_Project /Volumes/StorageMedia/Apple_Project nfs _netdev,nofail,vers=3,hard,intr,timeo=600 [admin@Rocky ~]$
まとめ
マウントオプションに_netdev,nofailを追加して、Flameプロジェクトの共有が可能になりました。






今回の構成で一番重要な注意点
macOS NFSサーバーは、特定の条件を満たさない限り、5分以上アイドル状態が続くと、
Linuxクライアントからのアクセスに応答しなくなります。
この問題に対する、洗練された方法ではありませんが確実な解決策は、
5分に1回以上マウントポイントにアクセスすることです。
Rocky Linuxからマウントポイントの/Volumes/StorageMedia/Apple_Projectに5分に1回アクセスが必要。
[admin@Rocky ~]$ ls /Volumes/StorageMedia/Apple_Project > 定期実行が必要
最もシンプルな対策 (Rocky Linux)
cron追加
[admin@Rocky ~]$ crontab -e
追記して保存
*/5 * * * * /bin/ls /Volumes/StorageMedia/Apple_Project >/dev/null 2>&1
| ファイル | コマンド | user指定 |
|---|---|---|
| /etc/crontab | システム | 必要 |
| crontab -e | ユーザー | 不要 |
まとめ
- 問題:macOS NFS idle timeout
- 対策:定期アクセス
- 推奨:cron
- 影響:Rocky → macOS
最後に