How to Use a GL.iNet Flint 3 USB SSD as a Native Apple Time Machine Backup Target
Overview
How to Use a GL.iNet Flint 3 USB SSD as a Native Apple Time Machine Backup Target
Other models should work as well, I just wrote this up based on the current flagship but I have tried it on Puli AX and Slate 7 Pro as well
If you have a GL.iNet Flint 3 and a spare USB SSD, you can turn that router into a native Apple Time Machine backup destination. No Synology. No TrueNAS. No extra Mac mini sitting in a closet. Just the Flint 3, its built-in Samba server, and the correct hidden UCI options.
The important part is this: do not manually edit /var/etc/smb.conf and expect it to stick.
That file is generated by GL.iNet every time Samba restarts. Manual changes disappear. The correct fix is to enable the Time Machine options already built into the GL.iNet/OpenWrt Samba init script.
This guide is based on a real Flint 3 setup where Finder could mount the SMB share, but macOS Time Machine refused to show it as a backup disk until the hidden macos and timemachine UCI flags were enabled.
What You Are Building
You are going to configure your Flint 3 so that a USB SSD attached to the router appears in macOS as a valid Time Machine destination.
The final setup looks like this:
1MacBook / iMac
2 ↓ SMB over LAN/Wi-Fi
3GL.iNet Flint 3
4 ↓ USB
5External SSD used for Time Machine
This is not a full NAS replacement, but for one or two Macs at home it is a very clean use of hardware you may already own.
Tested Environment
This guide was tested with:
| Item | Value |
|---|---|
| Router | GL.iNet Flint 3 / GL-BE9300 |
| Samba version | 4.18.8 |
| Storage | USB SSD attached to Flint 3 |
| Share name | disk1_part1 |
| Mount path | /tmp/mountd/disk1_part1 |
| Protocol | SMB |
| macOS backup system | Time Machine |
Your share name may be different, but the process is the same.
Why Netatalk/AFP Is Not the Right Answer
You may find old OpenWrt guides that recommend Netatalk and AFP for Time Machine. That made sense years ago, but modern macOS Time Machine expects SMB-based backup targets.
Current Samba has Apple compatibility support through the fruit VFS module. Your Flint 3 firmware already includes that path. The trick is enabling it properly through UCI so the GL.iNet-generated Samba config survives service restarts and reboots.
The Problem With Editing smb.conf
A lot of tutorials tell you to add this directly to a Samba share:
1fruit:time machine = yes
2fruit:time machine max size = 1000G
That is the right idea, but the wrong place on GL.iNet firmware.
On the Flint 3, this file:
1/var/etc/smb.conf
is generated by the Samba init script. If you edit it manually and then run:
1/etc/init.d/samba4 restart
your custom Time Machine lines disappear.
That is exactly why Finder may mount the share successfully, while Time Machine still says the volume is unsupported or never shows it as a backup destination.
Step 1: Set Up Network Storage in the GL.iNet Web Interface
First, plug your USB SSD into the Flint 3.
In the GL.iNet admin panel, go to:
1Applications → Network Storage
Enable SMB sharing and make sure your drive is mounted.
You should have a share similar to:
1disk1_part1
Create or confirm an SMB user with read/write permissions.
Before touching SSH, verify the share works from Finder:
1Go → Connect to Server
Then connect to:
1smb://192.168.8.1/disk1_part1
Use your router's LAN IP if yours is different.
If Finder cannot mount the share, fix that first. Time Machine will not work until basic SMB access works.
You can use your tailnet IP as well but if you have your subnet advertised via tailscale even when your remote you should be able to hit the real local IP
Step 2: SSH Into the Flint 3
SSH into the router:
1ssh root@192.168.8.1
If your Flint 3 is not using the default GL.iNet subnet, replace 192.168.8.1 with your router's actual LAN IP.
Step 3: Confirm Samba Version
Check your Samba version:
1smbd -V
On the tested Flint 3, the output was:
1Version 4.18.8
That version is new enough for SMB Time Machine support.
Step 4: Identify the Samba Share
Run:
1uci show samba4
Look for your sambashare section.
Example:
1samba4.@sambashare[0].path='/tmp/mountd/disk1_part1'
2samba4.@sambashare[0].name='disk1_part1'
3samba4.@sambashare[0].read_only='no'
4samba4.@sambashare[0].guest_ok='no'
In this example, the share index is:
1@sambashare[0]
If you have multiple USB shares, make sure you modify the correct one.
Step 5: Enable the Hidden macOS Compatibility Flag
This is the part most people miss.
The GL.iNet Samba init script checks for a UCI option named:
1macos
If this is not set to 1, the script skips the Apple-specific Samba share options entirely.
Enable it:
1uci set samba4.@samba[0].macos='1'
Step 6: Enable Time Machine on the Share
Now enable Time Machine for the actual USB share.
For the first Samba share:
1uci set samba4.@sambashare[0].timemachine='1'
Then set the maximum size.
Example for a 1 TB Time Machine limit:
1uci set samba4.@sambashare[0].timemachine_maxsize='1000'
The GL.iNet Samba script appends G, so 1000 becomes:
11000G
Common values:
| Desired Limit | Command Value |
|---|---|
| 500 GB | 500 |
| 1 TB | 1000 |
| 2 TB | 2000 |
| 4 TB | 4000 |
Step 7: Commit and Restart Samba
Save the UCI configuration:
1uci commit samba4
Restart Samba:
1/etc/init.d/samba4 restart
Step 8: Verify the Generated Samba Config
Now verify that the generated config actually contains the Time Machine settings:
1grep -A25 "\[disk1_part1\]" /var/etc/smb.conf
Replace disk1_part1 with your actual share name if different.
You should see something like:
1[disk1_part1]
2 path = /tmp/mountd/disk1_part1
3 valid users = @xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-user
4 read only = no
5 guest ok = no
6 write list = @xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-w
7 read list = @xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-r
8 fruit:encoding = native
9 fruit:metadata = stream
10 fruit:veto_appledouble = no
11 fruit:time machine = yes
12 fruit:time machine max size = 1000G
If those fruit: lines appear, the Flint 3 is now advertising the share correctly for Apple Time Machine.
Step 9: Add the Disk in macOS Time Machine
On your Mac, open:
1System Settings → General → Time Machine
Click:
1Add Backup Disk
Your Flint 3 SMB share should now appear as a valid Time Machine destination.
Select the share, enter your SMB credentials, and start the backup.
Complete Command Block
For the common case where the USB share is @sambashare[0] and you want a 1 TB backup limit:
1uci set samba4.@samba[0].macos='1'
2uci set samba4.@sambashare[0].timemachine='1'
3uci set samba4.@sambashare[0].timemachine_maxsize='1000'
4uci commit samba4
5/etc/init.d/samba4 restart
6grep -A25 "\[disk1_part1\]" /var/etc/smb.conf
Why the options Field Does Not Work
You might be tempted to try:
1uci add_list samba4.@sambashare[0].options='fruit:time machine = yes'
That looks logical, but on the tested Flint 3 firmware it does not work.
The option is stored in /etc/config/samba4, but the GL.iNet Samba generator ignores it when writing /var/etc/smb.conf.
The correct settings are:
1uci set samba4.@samba[0].macos='1'
2uci set samba4.@sambashare[0].timemachine='1'
3uci set samba4.@sambashare[0].timemachine_maxsize='1000'
Those are the options the init script actually reads.
What the Init Script Is Doing
The Flint 3 Samba init script includes logic similar to this:
1config_get_bool MACOS "$1" macos 0
2config_get_bool timemachine "$1" timemachine 0
3config_get_sane timemachine_maxsize "$1" timemachine_maxsize
Then later:
1if [ "$MACOS" -eq 1 ]; then
2 vfs_objects="catia fruit streams_xattr $vfs_objects"
3 printf "\tfruit:encoding = native\n"
4 printf "\tfruit:metadata = stream\n"
5 printf "\tfruit:veto_appledouble = no\n"
6
7 if [ "$timemachine" -eq 1 ]; then
8 printf "\tfruit:time machine = yes\n"
9 [ -n "$timemachine_maxsize" ] && printf "\tfruit:time machine max size = %sG\n" "${timemachine_maxsize}"
10 fi
11fi
That means the feature was already there. It was just not exposed in the GL.iNet GUI.
Troubleshooting
Finder can mount the share, but Time Machine does not show it
Make sure macos is enabled globally:
1uci show samba4 | grep macos
Expected:
1samba4.@samba[0].macos='1'
Then make sure Time Machine is enabled on the share:
1uci show samba4 | grep timemachine
Expected:
1samba4.@sambashare[0].timemachine='1'
2samba4.@sambashare[0].timemachine_maxsize='1000'
The fruit: lines disappear after restart
That means you edited /var/etc/smb.conf directly.
Do not manually edit the generated file. Use UCI:
1uci set samba4.@samba[0].macos='1'
2uci set samba4.@sambashare[0].timemachine='1'
3uci set samba4.@sambashare[0].timemachine_maxsize='1000'
4uci commit samba4
5/etc/init.d/samba4 restart
Time Machine says the operation is not supported
That usually means macOS can mount the SMB share, but the Samba share is missing the Time Machine fruit options.
Verify:
1grep -A25 "\[disk1_part1\]" /var/etc/smb.conf
You need:
1fruit:time machine = yes
under the share.
I have more than one USB share
List the Samba config:
1uci show samba4
Find the correct @sambashare[x] index and use that instead of @sambashare[0].
Example:
1uci set samba4.@sambashare[1].timemachine='1'
2uci set samba4.@sambashare[1].timemachine_maxsize='1000'
Should I use Netatalk?
No, not for this setup. Modern macOS Time Machine works properly over SMB when Samba is configured correctly. The Flint 3 already has the needed Samba support.
Recommended Hardware
Here are practical hardware options for this setup.
Router
- GL.iNet Flint 3 / GL-BE9300
SSD Options
- Samsung T7 or T9 portable SSD
- Crucial X9 or X10 portable SSD
- SanDisk Extreme Portable SSD
- Any reliable USB 3.x SSD enclosure with a SATA or NVMe SSD
SSD Sizing
| Number of Macs | Suggested SSD Size |
|---|---|
| 1 MacBook Air / Pro | 1 TB |
| 1 desktop Mac with lots of data | 2 TB |
| 2 Macs | 2–4 TB |
| Multiple Macs | Use a real NAS instead |
Internal Linking Suggestions
If publishing this on TechRelay, link this guide to related posts such as:
- GL.iNet VLAN trunk setup
- GL.iNet Speedtest CLI install
- Tailscale exit node DNS leak fixes
- OpenClash on GL.iNet routers
- Using GL.iNet routers as homelab edge devices
Suggested anchor text:
1GL.iNet router storage setup
1Time Machine over SMB
1Flint 3 homelab router
FAQ
Can other GL.iNet Routers be used for Time Machine?
Yes. Current firmware with Samba 4.18.8 can expose a USB SSD as a valid Apple Time Machine SMB target when the hidden macos and timemachine UCI options are enabled.
Does this survive reboot?
Yes. The settings are stored in /etc/config/samba4 through UCI, so they survive Samba restarts and router reboots.
Why not just edit /var/etc/smb.conf?
Because GL.iNet regenerates that file. Manual edits disappear after restarting Samba.
Does this require Netatalk?
No. This setup uses SMB and Samba's Apple compatibility features.
What does timemachine_maxsize mean?
It sets the advertised Time Machine maximum size in gigabytes. For example, 1000 becomes 1000G.
Can multiple Macs use the same share?
They can, but it is cleaner to create separate shares or quotas for each Mac. For serious multi-Mac backups, use a dedicated NAS.
Final Thoughts
This is one of those cases where the feature is already built in, but hidden just enough to make the setup painful.
The GL.iNet Flint 3 already ships with a modern Samba package and the startup script already knows how to generate Time Machine-compatible configuration. The missing piece is enabling:
1uci set samba4.@samba[0].macos='1'
2uci set samba4.@sambashare[0].timemachine='1'
Once those are set, the USB SSD attached to the Flint 3 appears as a proper macOS Time Machine target.
For a home lab, travel router setup, or small office that needs simple Mac backups without a dedicated NAS, this is a solid little win.
So Long and Thanks for All the Fish!