A safe macOS menu bar utility for external disks and NTFS read/write mounting.
English · 简体中文
Download · Give the project a Star
Support continued development —
⌘-click to keep this README open
Current version: 0.2.10
DiskMount detects USB drives and external disks, displays them in a compact menu bar panel, and provides mount, Finder, and safe-eject actions. NTFS volumes can be remounted with read/write access through the bundled anylinuxfs runtime without changing their file-system format. Normal mode exposes one clear eject action; per-volume unmount is reserved for advanced volumes in Expert Mode.
Important
DiskMount never formats, erases, repartitions, or converts a disk. “Mount NTFS Read/Write” changes only the active mount method.
Warning
Known limitation — Chinese and other non-ASCII volume names: After DiskMount remounts an NTFS volume read/write through anylinuxfs/NFS, Finder and the macOS desktop may temporarily show a safe English mount name such as DiskMount-disk35s1. This does not rename the disk's original volume label or any files, and it does not affect normal read/write use. DiskMount continues to show the original volume name in its panel. A safe ASCII mount point is currently required to avoid a known macOS NFS issue.
Note
Bootable ISO/CD9660 USB media: DiskMount 0.2.10 can detect file systems written directly to an entire USB disk even when the device has no partition table. ISO/CD9660 installer media is inherently read-only: DiskMount can display it, open it in Finder, and safely eject it, but cannot make it writable. Making that device writable would require erasing and reformatting it, which DiskMount never performs.
Warning
Permissions required for NTFS read/write:
- Enter an administrator password when DiskMount requests authorization. This authorization is used only for NTFS mounting, stopping its disk service, safe eject, and failure recovery. The password is never stored, logged, or uploaded.
- Enable DiskMount under System Settings → Privacy & Security → Full Disk Access.
- If macOS shows the option, also enable System Settings → Privacy & Security → Files & Folders → DiskMount → Removable Volumes.
- Fully quit and reopen DiskMount after changing either macOS permission.
- Native macOS menu bar app with an AppKit lifecycle and WebKit control panel;
- automatic refresh when external volumes are mounted, unmounted, or renamed;
- English and Simplified Chinese UI with a persistent language switch;
- device name, identifier, whole disk, file system, capacity, mount point, and write state;
- detects whole-disk USB file systems without a partition table, including read-only ISO/CD9660 installer media;
- regular mounting for FAT, exFAT, and APFS data volumes;
- NTFS read/write mounting through bundled
anylinuxfs 0.18.0; - Chinese and other non-ASCII NTFS volume names use a safe ASCII NFS destination automatically while their original names remain visible in DiskMount;
- reports NTFS success only after the exact writable NFS mount is observed; otherwise it restores the native macOS read-only mount and shows an error;
- remembers per-disk Auto Read/Write preferences and automatically retries recognized NTFS disks while the app is running;
- open mounted volumes in Finder and safely eject external disks;
- one clear
Safely Ejectaction in normal mode; per-volume unmount is reserved for advanced volumes in Expert Mode; - safe eject stops anylinuxfs/NFS services before releasing the physical disk, reports disks still in use, and stops waiting after 30 seconds instead of leaving the panel busy indefinitely;
- reuses the active administrator authorization while stopping NTFS services, avoiding an unnecessary second password prompt during the same authorized session;
- keeps a safely ejected disk hidden while it remains physically connected and restores it only after a real unplug/reinsert cycle;
- checks the official latest stable GitHub Release at launch and on manual refresh; a pulsing green dot beside the installed version appears only when an update is available, with a hover explanation and click-through to the download page;
- update checks never download or install software automatically, and trusted links are restricted to this project's GitHub Releases path;
- fixed header and footer with an independently scrollable device list;
- compact Ko-fi and GitHub icon links plus a Star button inside the app.
Safe Mode is the default. It hides the active macOS boot disk and technical partitions such as EFI, Recovery, Preboot, VM, and Update.
Expert Mode makes advanced volumes visible but does not unlock them automatically. Access requires a second confirmation for each individual volume. An authorized advanced volume can be mounted, opened in Finder, and unmounted for the current app session.
Safety boundaries remain enforced in Swift, not only in the WebUI:
- authorization expires when Expert Mode is closed or the app exits;
- protected whole disks cannot be ejected through Expert Mode;
- DiskMount does not bypass SIP or macOS security policy;
- sealed macOS system volumes are not forced writable;
- no format conversion, erase, or repartition operation exists.
DiskMount may need three separate macOS permissions. They are controlled by macOS and serve different purposes.
NTFS read/write mounting needs administrator privileges because the bundled engine must access the external block device and replace macOS's read-only NTFS mount.
When this prompt appears, enter the password for a macOS administrator account and choose Continue. The password is used only for the current privileged operation:
- the password is entered in a native secure field;
- DiskMount passes it directly to
/usr/bin/sudothrough standard input; - the field is cleared immediately after submission;
- the password is never saved to disk, preferences, logs, analytics, or a network service;
- the elevated operation is used only for the bundled NTFS mount command, stopping its service for safe eject, and restoration of the normal macOS read-only mount after failure.
DiskMount maintains the macOS sudo authorization timestamp while the app remains open. This lets an already authorized, remembered disk mount automatically when reinserted without saving the password. Quitting DiskMount ends this keep-alive behavior; macOS may request authorization again after the app is reopened.
macOS may separately block raw external-disk access even after the administrator password is accepted. If this happens, allow DiskMount under:
- System Settings → Privacy & Security → Full Disk Access → DiskMount;
- System Settings → Privacy & Security → Files & Folders → DiskMount → Removable Volumes, when that switch is shown;
- fully quit and reopen DiskMount after changing either permission.
Full Disk Access is a broad permission managed by macOS. DiskMount uses disk access only to discover external volumes, mount or unmount the selected device, provide NTFS read/write access, and restore a safe read-only mount after failure. The app does not format disks or upload their contents.
Expert Mode confirmation is an additional in-app safety check. It does not replace administrator authorization or macOS privacy permissions.
- Apple Silicon Mac: M1, M2, M3, M4, M5, or later;
- macOS 26 or later;
- network access for the first Alpine microVM root-file-system initialization;
- administrator approval when a mount operation requires elevated access;
- user approval for removable-volume access on first NTFS raw-disk access.
Intel/x86 Macs are not supported in 0.2.10 because the upstream anylinuxfs/libkrun runtime currently targets Apple Silicon.
- Download
DiskMount-0.2.10-macOS26.dmgfrom Releases; - open the DMG and drag
DiskMount.apptoApplications; - launch DiskMount from Applications;
- use the menu bar item after the initial panel appears.
The 0.2.10 package is signed with the developer's Apple Development certificate but is not Apple-notarized. A different Mac may block the first launch after downloading the DMG from the internet.
If macOS blocks DiskMount, try to open it once, then go to System Settings → Privacy & Security → Security → Open Anyway, authenticate, and confirm Open. Use this per-app exception; do not permanently disable Gatekeeper. Organization-managed Macs may require approval from an IT administrator.
See the complete English installation and permissions guide or Simplified Chinese guide. Apple also documents this flow in Open apps safely on your Mac.
The first NTFS read/write mount may require an administrator password, Full Disk Access, and Removable Volumes access. These approvals are independent. DiskMount explains why each permission is needed and does not persist the administrator password.
The DMG bundles the ARM64 anylinuxfs executable, Linux kernel, VM helpers, modules, and libblkid. End users do not need Homebrew, Xcode, XcodeGen, or a separately installed anylinuxfs package.
The current release uses an Apple Development certificate for project testing. Warning-free public distribution still requires a Developer ID Application certificate, Apple notarization, and stapling. The Gatekeeper exception above does not grant disk access; macOS privacy permissions must still be enabled separately.
cd DiskMount
xcodegen generate
xcodebuild \
-project DiskMount.xcodeproj \
-scheme DiskMount \
-configuration Debug \
-derivedDataPath build/TestDerived \
testBuild the signed local DMG:
cd DiskMount
./scripts/build_dmg.shThe workflow at .github/workflows/release.yml runs on every v* tag using GitHub's Apple Silicon macos-26 runner. It validates the tag against VERSION, builds a self-contained DMG, generates a SHA-256 file, and creates a GitHub Release with automatic release notes.
Release sequence:
# Update VERSION and release notes first
git tag -a v0.2.10 -m "DiskMount 0.2.10"
git push origin main
git push origin v0.2.10Automated packages are ad-hoc signed unless Developer ID signing and notarization secrets are configured. See RELEASING.md for the maintenance checklist.
Explicit AppKit lifecycle
└─ Menu bar NSStatusItem
└─ NSPopover
└─ WKWebView (HTML/CSS/JavaScript)
└─ Restricted Swift message bridge
├─ DiskService
│ ├─ external-disk discovery
│ ├─ boot/APFS System/EFI risk filtering
│ └─ /usr/sbin/diskutil
└─ AnyLinuxFSService
└─ bundled anylinuxfs runtime
NTFS read/write support is built on nohajc/anylinuxfs, which combines Linux file-system drivers, a libkrun microVM, and NFS. Thank you to the anylinuxfs author and the contributors to libkrun, libkrunfw, vmnet-helper, gvproxy, docker-nfs-server, and util-linux.
DiskMount invokes an unmodified anylinuxfs executable as a separate process. The distributed app preserves the upstream license, README, SBOM, and util-linux license material. Versions, source links, checksums, and license details are listed in THIRD_PARTY_NOTICES.md.
DiskMount is not an official anylinuxfs GUI and is not endorsed by the upstream project.
- anylinuxfs exposes the mounted volume to macOS as a local NFS network volume;
- Chinese and other non-ASCII NTFS labels may appear under a temporary English mount name in Finder and on the desktop; the original label and files are unchanged;
- ISO/CD9660 bootable USB media is read-only by design; DiskMount can identify, open, and eject it but cannot enable write access;
- Microsoft Word may not directly edit files on this type of network volume;
- long, heavy transfers with the default ntfs-3g driver may occasionally report retryable I/O errors;
- first-time microVM initialization requires network access;
- do not unmount or unplug a device while files are being written.
See CHANGELOG.md for the current formal release notes.



