5.9 KiB
5.9 KiB
FUSE-T Installation Verification Report
Date: 2026-05-17
Status: ✅ Successfully Installed and Verified
Installation Summary
Installation Command
sudo installer -pkg ~/Downloads/fuse-t-1.2.6.pkg -target /
# Password: accusys
# Result: The install was successful.
Binary Location
Found at: /Library/Application Support/fuse-t/bin/go-nfsv4
FUSE-T binary: ✓ Installed
Path: /Library/Application Support/fuse-t/bin/go-nfsv4
NFS-T binary: ✓ Available (go-nfsv4)
Active FUSE mounts: 0
Package Structure
/Library/Application Support/fuse-t/
├── bin/
│ ├── go-nfsv4 -> go-nfsv4-1.2.6 (symlink)
│ └── go-nfsv4-1.2.6 (20MB binary)
├── lib/
│ ├── libfuse3.4.dylib
│ ├── libfuse-t-1.2.6.dylib
│ └── libfuse3.dylib
├── include/fuse3/
│ ├── fuse.h
│ ├── fuse_common.h
│ ├── fuse_lowlevel.h
│ └── ...
├── pkgconfig/
│ ├── fuse3.pc
│ └── fuse-t.pc
├── cfg/
├── LICENSE.rtf
└── uninstall.sh
Binary Verification
go-nfsv4 Options
$ "/Library/Application Support/fuse-t/bin/go-nfsv4" --help
Usage of go-nfsv4:
--attrcache cache attributes (default true)
--attrcache-timeout int non-default attribute cache timeout (sec)
--backend string backend (default "nfs")
--bonjour advertise smb service using bonjour (default true)
-c, --console output logs to console
-d, --debug debug mode
--dontbrowse don't browse mount option
-l, --listen_addr string nfs server listen address
--location string location (default "fuse-t")
Backend Types Supported
- nfs (default) - NFSv4 backend
- fskit - FSKit backend (macOS 26+)
- smb - SMB3 backend
MarkBase Integration
Updated Backend Detection
// src/fuse/backend.rs
pub fn detect_fuse_t_binary() -> bool {
Path::new("/Library/Application Support/fuse-t/bin/go-nfsv4").exists()
}
pub fn get_fuse_t_path() -> Option<PathBuf> {
if detect_fuse_t_binary() {
Some(PathBuf::from("/Library/Application Support/fuse-t/bin/go-nfsv4"))
} else {
None
}
}
Status Check
$ cargo run -- fuse status
=== FUSE Status ===
FUSE-T binary: ✓ Installed
Path: /Library/Application Support/fuse-t/bin/go-nfsv4
NFS-T binary: ✓ Available (go-nfsv4)
Active FUSE mounts: 0
macOS version: 26.4.1
Recommended backend: fskit
Unit Test Result
$ cargo test fuse::backend::tests::test_fuse_t_binary_detection
running 1 test
test fuse::backend::tests::test_fuse_t_binary_detection ... ok
test result: ok. 1 passed; 0 failed; 0 ignored
FUSE-T vs Expected Path
Expected Path (Documentation)
/usr/local/bin/fuse-t❌ Not found/usr/local/bin/nfs-t❌ Not found
Actual Path (Installed)
/Library/Application Support/fuse-t/bin/go-nfsv4✅ Found
Binary Name
- go-nfsv4 (not
fuse-tornfs-t) - Version: 1.2.6
- Size: 20MB
Reason for Difference
FUSE-T uses a unified binary (go-nfsv4) that supports multiple backends:
- NFSv4 backend (--backend nfs)
- FSKit backend (--backend fskit)
- SMB3 backend (--backend smb)
Next Steps
Phase 2: Real FUSE Mount
Ready to Implement:
- Use
/Library/Application Support/fuse-t/bin/go-nfsv4binary - Select backend (--backend nfs or --backend fskit)
- Implement real mount() function
- Test with warren user (12,659 nodes)
Mount Command Example:
# NFSv4 backend
"/Library/Application Support/fuse-t/bin/go-nfsv4" \
--backend nfs \
--location /tmp/test_fuse \
/Volumes/MarkBase_test
# FSKit backend (macOS 26+)
"/Library/Application Support/fuse-t/bin/go-nfsv4" \
--backend fskit \
--location /tmp/test_fuse \
/Volumes/MarkBase_test
Testing Plan
-
Simple Mount Test
# Create test directory mkdir -p /tmp/test_source echo "Hello FUSE" > /tmp/test_source/test.txt # Mount using FUSE-T cargo run -- fuse mount --user test --dir /Volumes/MarkBase_test --backend nfs # Verify ls /Volumes/MarkBase_test cat /Volumes/MarkBase_test/test.txt -
Warren User Mount
cargo run -- fuse mount --user warren --dir /Volumes/MarkBase_warren --backend fskit # Expected: 12,659 nodes visible ls /Volumes/MarkBase_warren | wc -l -
Unmount Test
cargo run -- fuse unmount --dir /Volumes/MarkBase_test mount | grep MarkBase # Should be empty
Installation Success Criteria
| Criteria | Expected | Actual | Status |
|---|---|---|---|
| Package installed | Success | Success | ✅ |
| Binary exists | ✓ | ✓ | ✅ |
| Binary path | Correct path | /Library/.../bin/go-nfsv4 |
✅ |
| Binary size | ~20MB | 20MB | ✅ |
| Version | 1.2.6 | 1.2.6 | ✅ |
| Libraries | dylib files | ✓ Found | ✅ |
| Headers | fuse3/*.h | ✓ Found | ✅ |
| Unit test | Pass | Pass | ✅ |
Documentation Updates
Updated Files:
src/fuse/backend.rs- Added detect_fuse_t_binary() and get_fuse_t_path()src/main.rs- Updated status command to use correct pathdocs/FUSE_INSTALLATION.md- To be updated with actual path
Key Learnings:
- FUSE-T binary is NOT at
/usr/local/bin/fuse-t - Actual location:
/Library/Application Support/fuse-t/bin/go-nfsv4 - Binary name:
go-nfsv4(unified multi-backend binary) - Supports --backend parameter (nfs, fskit, smb)
Conclusion
FUSE-T Installation Status: ✅ Fully Verified
Next Phase: Ready to implement real FUSE mount functionality
Critical Path:
- Implement mount() using go-nfsv4 binary ✅ Binary found
- Test NFSv4 backend ⏳ Ready
- Test FSKit backend ⏳ Ready
- Mount warren user (12,659 nodes) ⏳ Ready
Report Generated: 2026-05-17 11:45
Status: Installation Complete, Verification Complete, Ready for Phase 2