Flame2026がリリースされてから約1年が経ちますが、
Rocky LinuxとmacOS間のプロジェクト共有については特に意識せず運用していました。
今回、Wire接続の動作確認を行ったところ、
従来の/hosts経由によるNFSマウントが機能しないことに気づきました。

検証環境

オペレーションシステムバージョンホストネームプロジェクト名
Rocky Linuxv9.5RockyRocky_Project
macOSTahoe 26.2FIgoApple_Project

/hosts運用の変化

Rocky Linux / macOSのどちらでも、Flameを起動すると以前は/hostsから自分自身をNFSマウントし、
同一ネットワーク上のFlameワークステーション間でメタデータを共有していました。

Rocky Linux

/dev/sdb1をプロジェクト用ストレージとしてマウントしています。

従来通り/hosts経由でアクセスしてみます。

同じファイルパスに対して
・autofs
・xfs(ローカル)
の2系統が存在しています。

この状態ではautofs経由で名前解決が行われても、
ローカルデバイスとして最適化され、実際のNFSマウントが行われません。

/hostsでマウントされない理由

今回の流れを整理すると以下のようになります。

/hosts/192.168.1.13/mnt/StorageMedia/Rocky_Projectにアクセス

autofsが起動

内部でNFSマウントを試みる

192.168.1.13 = 自分自身

カーネルが判断 > 「ローカルデバイスとしてアクセス可能」

NFSを行わずローカルパスに最適化

/dev/sdb1(xfs)を直接使用

macOSの場合

/System/…/hosts/192.168.1.11/…にマウント

常にNFSマウントとして扱われる

つまり、macOSでは自己参照であってもローカル最適化は行われません。

まとめ

  • macOSの/hostsは常にNFSマウント
  • Rocky Linuxの-hostsは自己参照時にローカルへ最適化される
  • dfに表示されない理由はこの最適化のため
  • Flameプロジェクト共有用途では大きな問題となる

オートデス社の記事ではauto.directを利用したオートマウントで同一パスを構成する方法が紹介されています。
本記事では固定マウントのフローを紹介しますが目的は同じです。
すべてのワークステーションで同一パスを使用することが重要になります。

すべての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になります。

macOSの制約

macOS (最近のバージョン)は

  • /System → 完全Read-only (SIP)
  • /直下 → 一部書けるが制限あり
  • 実体/System/Volumes/Dataにある

SIPの制約があるため、対応方法の判断に迷い、
オートデスク社の記事にヒントがないか確認。すると、synthetic.confファイルから/mntが作れる行を発見。

再起動後、mkdirコマンドを実行すると、リードオンリーのまま。
/mntは作られてるけど、rootボリューム側(Read-only)に作られてるみたい。

正しいsynthetic.confの書き方

再起動後確認すると、mount on > /System/Volumes/Data

mkdirコマンドからフォルダ作成。macOS側のマウントポイント完成。

Rocky Linux側 公開 (/etc/exports)

192.168.1.0/24は、同一ネットワーク内のすべてのIPアドレスからのアクセスを許可する設定になります。
Flameのプロジェクト共有では、メタデータの整合性とアクセス権限が重要になるため、
rw,sync,no_root_squash,no_subtree_checkのオプションを使用しています。

オプション理由
rw書き込み必要
syncデータ整合性
no_root_squashpermission維持
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が有効になっていることを確認します。
通常はデフォルトで有効になっているため、特別な変更は不要な場合が多いです。

修正したら保存してNFSを再起動

オプションを追加 > -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を作成

plist内容を保存

launchdにサービスを登録

Figo:~ admin$ sudo launchctl bootstrap system /Library/LaunchDaemons/com.flame.mount.rocky.plist

即時実行 / 強制再実行 (-k)

systemdとの比較

launchdsystemd
bootstrapdaemon-reload
kickstartsystemctl 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アドレスからのアクセスを許可する設定になります。

マウントオプションについて調べたこと

  • -alldirs > サブディレクトリ全部アクセスOK
  • -mapall > 全アクセスを、uid=501(macユーザー) / gid=20 (staff)に統一

正常に公開されているか確認すると、/etc/exportsが正しく読み込まれていない

調べてみると、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$ 

サービス再起動

確認

まとめ

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回アクセスが必要。

最もシンプルな対策 (Rocky Linux)

cron追加

追記して保存

ファイルコマンドuser指定
/etc/crontabシステム必要
crontab -eユーザー不要

まとめ

  • 問題:macOS NFS idle timeout
  • 対策:定期アクセス
  • 推奨:cron
  • 影響:Rocky → macOS

最後に

ローカル運用はDAS、
リモート運用(クリップ参照)はNFSと分離することで、
シンプルかつ安定した運用が可能になります。

単純にリモートプロジェクトから素材を使用する場合は、
NFSマウントされたパスから直接インポートするだけの運用になります。

プロジェクト共有を前提にしない場合でも、この構成で十分実用的な運用が可能です。