参考链接:
问题描述:
DSM系统会在大量目录下各自生成一个 "@eaDir" 的目录(数量级参考:345个目录)
解释:
"@eaDir" 目录的作用:媒体/文件索引元数据、用于挂载加密共享的元数据、用户配额信息、macOS 扩展属性
去掉@eaDir的原因:
- 做压缩包、同步、复制、挂载等各种场景下,都会有大量@eaDir在里面
- 索引不是单独做数据库而是放在各个目录下新建一个文件夹,太蠢了
为了方便调试,输出并制作一份表格来排查DSM系统上的所有系统单元:
服务的路径基本都在:
- /usr/lib/systemd/system
- /usr/local/lib/systemd/system
流程:
先禁止生成,有如下操作:
Universal Search - 设置 - 系统 - 系统更新或重启后,预加载索引数据可加快搜索,取消勾选。控制面板 - 索引服务 - 索引文件夹,确保没有任何索引文件夹
分析systemd,以下服务如果在运行的话,屏蔽掉
## 原本就是没有启动的,暂不屏蔽
systemctl status synomkthumbd
# systemctl mask synomkthumbd
systemctl status synomkflvd
# systemctl mask synomkflvd
## 可能还有这些服务:
systemctl status synoindexd
## SynoFinder.slice中包含了pkg-SynoFinder-synoelasticd.service,这个就是Universal Search
systemctl status SynoFinder.slice
systemctl status pkg-SynoFinder-synoelasticd.service
分析套件
## 查看群晖套件列表
synopkg list
synopkg list | awk -F: '{print $1}'
## 看到Universal Search就是SynoFinder套件
synopkg status SynoFinder
## 停止套件,停止SynoFinder之后,对应的服务pkg-SynoFinder-synoelasticd.service也看到停止了【停止状态是持续的,DSM重启也不影响】
synopkg stop SynoFinder
systemctl status pkg-SynoFinder-synoelasticd.service
## 卸载套件(暂不卸载)
# synopkg uninstall SynoFinder
再删除现有的@eaDir:
## 先审计内容
find /volume* -name "@eaDir" -type d
find /volume* \( -path /volume1/storage -o -path /volume1/linux \) -prune -o -name "@eaDir" -print
find /volume* -name "@eaDir" -type d | xargs -i find {} -type f | egrep -v "@SynoEAStream|@SynoResource"
## 再删除
find /volume* -name "@eaDir" -type d -print0 | xargs -0 rm -rf
当前配置情况下,保持观察是否会生成新的@eaDir:
经过至少1年的观察,只有/volume*的根目录以及共享文件夹的根目录有"@eaDir",满足需求,示例如下:
/volume1/homes/@eaDir
/volume1/storage/@eaDir
/volume1/linux/@eaDir
/volume1/@eaDir