在系统启动/引导Mojave 10.14.6时通过sshfs挂载文件系统

问题描述

我在rsync.net上有一个帐户。
我现在已经使用sshfs挂载了这个文件系统。现在,rsync.net帐户将显示在查找程序中,并且我可以使用查找程序进行拖放。

莫哈韦沙漠10.14.6

现在,我想在启动/系统启动时通过sshfs挂载rsync.net文件系统。如何才能做到这一点 ?如果很难在启动时挂载,也可以在登录时自动挂载。

下面是各种命令的一些输出,以便更好地了解系统。

Tormods-MacBook-Pro:〜tormod $ sshfs --version

SSHFS版本2.5(OSXFUSE SSHFS 2.5.0)OSXFUSE 3.10.3 FUSE库 版本:2.9.7保险丝:无安装点Tormods-MacBook-Pro:〜tormod $

Tormods-MacBook-Pro:〜tormod $ kextstat | grep保险丝185 0 0xffffff7f85a93000 0x19000 0x19000
com.github.osxfuse.filesystems.osxfuse(3.10.3) AF3874A9-CF4E-39BF-A807-F61D1E6FABBF Tormods-MacBook-Pro:〜tormod $

解决方法

我将对此事进行更新。

脚本的名称为:startup.sh 脚本内容:

#!/usr/bin/env bash
#Load modules for Fuse
/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse
/usr/sbin/sysctl -w vfs.generic.osxfuse.tunables.allow_other=1
#Connect to rsync_net
/usr/local/bin/sshfs XXXX@prio.ch-s011.rsync.net: /mnt/sshfs -oauto_cache,reconnect,local,volname=rsync_net,allow_other,defer_permissions

无论如何,我都可以通过终端运行脚本,但是只有在终端中输入以下命令时才可以:

Tormods-MacBook-Pro:Scripts tormod$ sudo bash startup.sh
Password:
vfs.generic.osxfuse.tunables.allow_other: 1 -> 1
Tormods-MacBook-Pro:Scripts tormod$ 

不可能通过键入脚本名称并输入来运行脚本。 因此,有些事情在起作用,而有些事情却不起作用....... 任何帮助表示赞赏!

更新:

我看过一个Launched教程: https://medium.com/@chetcorcos/a-simple-launchd-tutorial-9fecfcf2dbb3

这是我尝试运行时收到的错误代码:

Tormods-MacBook-Pro:LaunchDaemons tormod$ launchctl load com.startup.plist

Console.app中的错误代码:

Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.xpc.launchd.user.domain.501.100009.Aqua): com.startup (lint): UserName is not supported for non-System services.
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.xpc.launchd.user.domain.501.100009.Aqua): com.startup (lint): GroupName is not supported for non-System services.
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.startup[680]): Could not find and/or execute program specified by service: 2: No such file or directory: /usr/bin/env bash /Users/root/Scripts/startup.sh
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.startup[680]): Service setup event to handle failure and will not launch until it fires.
Sep  5 21:08:08 Tormods-MacBook-Pro com.apple.xpc.launchd[1] (com.startup[680]): Service exited with abnormal code: 78

我认为问题可能出在目录,文件或命令的chmod属性中。

我相信该脚本将以root用户身份运行。那么,脚本所在的目录应具有什么所有权/ chmod?

脚本文件应具有什么所有权/ chmod?

我看到osxfuse有几个属性。 我在这里找到了不同的属性:

https://github.com/osxfuse/osxfuse/wiki/Mount-options

现在,我运行:allow_other

,

新的“ com.startup.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.startup</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/bash</string>
        <string>/Library/Scripts/Startup/startup.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/com.startup.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/com.startup.stdout</string>
</dict>
</plist>

现在运行LaunchDaemons启动文件。 在此系统上,我还配置了Apple的自动挂载。 我的坐骑列表:

bash-5.0# compgen -c | grep ^mount
mount_sshfs
mount_hfs
mount_apfs
mount_udf
mount_cd9660
mount_sshfs
mount_exfat
mount_webdav
mount_msdos
mount_9p
mount_ntfs
mount_nfs
mount_ftp
mount
mount_afp
mount_smbfs
mount_cddafs
mount_fdesc
mount_acfs
mount_devfs
bash-5.0# 

现在,禁用SIP后一切正常。 到rsync.net的sshfs连接已建立,在启动/启动时已连接。 我用于挂载点的设置:

/mnt/sshfs

这是为了使自动安装和引导时的安装能够一起工作。

“ / etc / auto_master”的新内容

#
# Automounter master map
#
+auto_master       # Use directory service
/net               -hosts       -nobrowse,hidefromfinder,nosuid
/home              auto_home    -nobrowse,hidefromfinder
/Network/Servers   -fstab
/-                 -static
/mnt/sshfs         auto_sshfs   -nobrowse,nosuid

由于

,在finder中,磁盘或远程sshfs连接称为rsync_net。
volname=rsync_net

设置sshfs连接。

所以,现在一切都好,直到我打开SIP,当打开SIP时,保险丝将不再负载。

输出

kextstat|grep fuse

没有启用SIP的输出。 换句话说,启用SIP后,用于保险丝的模块不会加载到内核中。 我希望可以解决此问题,因为我希望在启用SIP的情况下运行操作系统。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...