# ZFS Pool Mountpoint Fix ## Issue ZFS pool creation was failing with error: ``` cannot mount '/default': failed to create mountpoint: Read-only file system ``` The issue was that ZFS was trying to mount pools to the root filesystem (`/default`), which is read-only. ## Solution Updated the ZFS pool creation code to set a default mountpoint to `/opt/calypso/data/pool/` for all pools. ## Changes Made ### 1. Updated `backend/internal/storage/zfs.go` - Added mountpoint configuration during pool creation using `-m` flag - Set default mountpoint to `/opt/calypso/data/pool/` - Added code to create the mountpoint directory before pool creation - Added logging for mountpoint creation **Key Changes:** ```go // Set default mountpoint to /opt/calypso/data/pool/ mountPoint := fmt.Sprintf("/opt/calypso/data/pool/%s", name) args = append(args, "-m", mountPoint) // Create mountpoint directory if it doesn't exist if err := os.MkdirAll(mountPoint, 0755); err != nil { return nil, fmt.Errorf("failed to create mountpoint directory %s: %w", mountPoint, err) } ``` ### 2. Directory Setup - Created `/opt/calypso/data/pool` directory - Set ownership to `calypso:calypso` - Set permissions to `0755` ## Default Mountpoint Structure All ZFS pools will now be mounted under: ``` /opt/calypso/data/pool/ ├── pool-name-1/ ├── pool-name-2/ └── ... ``` ## Testing 1. Backend rebuilt successfully 2. Service restarted successfully 3. Ready to test pool creation from frontend ## Next Steps - Test pool creation from the frontend UI - Verify that pools are mounted correctly at `/opt/calypso/data/pool/` - Ensure proper permissions for pool mountpoints ## Date 2026-01-09