Netgear Stora in 2026: a long, painful guide for anyone who finds this plastic curse in a drawer
I spent way too much time making a Netgear Stora boot a usable Linux system in 2026.
It now works.
That is not the same as saying it was worth it.
This post is for the next poor soul who finds one of these things, thinks “nice, old NAS, maybe I can reuse it”, and then accidentally loses several evenings to an underpowered ARM box with a broken software ecosystem, prehistoric bootloader behavior, dead vendor software, misleading old guides, and just enough success to keep you from throwing it into the trash immediately.
So here is the full story:
- what I did
- what failed
- what eventually worked
- what still sucks
- and why my honest recommendation is still: unless you specifically enjoy low-level recovery, serial consoles, ancient bootloaders, and pain, just throw it away
What the machine is
The Netgear Stora is an old Marvell Kirkwood-based NAS with a vendor stack from another geological era.
By the end of this process, mine was running:
|
That one line already tells you most of the problem:
- old hardware
- old kernel
- ARMv5
- vendor-patched weirdness
- modern distro userspace compatibility landmines everywhere
This machine is not “retro but charming.”
It is “retro and hostile.”
The idea
The original plan sounded reasonable:
- connect via serial
- interrupt U-Boot
- boot a Debian installer or custom rootfs from USB
- keep the OS on USB
- use internal disks only for storage
- get a small LAN-only box for backups / SFTP / staging
On paper, fine.
In reality, every single layer fought back.
Step 1: serial console, because of course
The first thing I had to do was attach a USB-to-TTL serial adapter.
That means:
- opening the case
- finding the UART header
- wiring TX/RX/GND correctly
- not connecting power incorrectly
- hoping the board still speaks
Eventually the serial wiring was correct and I got into U-Boot.
That was the first tiny victory.
The machine booted and showed:
|
At that moment it felt like progress.
In hindsight, that was just the machine luring me deeper.
Step 2: old guides are half-right and half-dead
The old OpenStora / Debian install guides are not completely useless, but they are not something you can just follow line by line in 2026.
The rough flow still matters:
- serial console
- TFTP boot
mainlineLinux=yesarcNumber=2743- USB root
- custom Stora kernel
- generate
uImageanduInitrd
But the actual ecosystem around those steps is decayed.
The first big example: the old Debian installer path points to Debian squeeze era images and mirror assumptions.
That means you can get surprisingly far and then hit a wall like:
- “Choose a mirror”
- “This release is not available”
- “Download installer components failed”
Which is not your fault. It is because you are trying to use ancient installer components in a modern network reality.
So yes, the guide is useful as a skeleton.
No, it is not a living install guide.
Step 3: TFTP, old U-Boot, and dumb firewall problems
To load installer/kernel images, I needed a TFTP server on my Arch host.
That part sounds easy until you remember:
- old U-Boot networking is annoying
- the Stora had no useful link until the right conditions
- the U-Boot environment had stale IPs
- my host firewall blocked TFTP
- the device would happily print useless retry spam instead of telling me the real problem
The actual chain of nonsense looked like this:
- U-Boot tried to TFTP boot
- nothing loaded
- I chased Ethernet link issues
- I rebooted the box multiple times
- eventually discovered the host firewall was blocking UDP 69
- opened that
- suddenly TFTP worked
Classic embedded experience:
you spend most of your time fixing infrastructure around the actual task.
Step 4: machine ID nonsense
Once I successfully loaded the installer kernel and initrd into RAM, I hit this:
|
That is where the guide says to do:
|
Reasonable.
Except on this box, those values appeared to be set in RAM, but the kernel still kept seeing the old machine ID.
So then I had to discover the actual trick:
- the values needed to be saved persistently
- then U-Boot needed a reset
- only then did the machine ID change actually matter
So this part was not:
“set two variables and continue”
It was:
“set variables, discover they seem ignored, suspect insanity, save environment, reset, retry, confirm the ancient bootloader only respects them after persistence”
That is the kind of machine this is.
Step 5: the original installer path is basically dead
After fixing the machine ID, the old Debian installer could boot.
Great.
Then it wanted package mirrors for squeeze.
Not great.
I tried the archive route. It still failed while downloading installer components.
At that point the message was clear:
- the old net installer path is not a serious way to do this now
- stop trying to resurrect a dead workflow
- move to a manually built USB rootfs
This is where the project stopped being “install Debian on old hardware” and became “cross-bootstrap a foreign-arch root filesystem by hand because the official path rotted years ago.”
Again: if your goal is a convenient NAS, this is the moment you should reconsider your life choices.
Step 6: build the system by hand on a USB stick
So I moved the USB stick back to my main machine and built the system manually.
The rough process:
- partition USB
- format it
- mount it
- debootstrap a Debian rootfs for
armel - use
qemu-arm-static - chroot into it
- run second-stage bootstrap
- configure networking
- set hostname
- set
fstab - install SSH
- install the custom Stora kernel package
- generate
/boot/uImageand/boot/uInitrd
This part was actually more reliable than the old installer.
Not easier.
Just more honest.
At least when it broke, it broke in ways that made technical sense.
Step 7: Bookworm was a trap
My first manual rootfs build used Debian 12 Bookworm.
It booted.
That sounds like success.
It was not.
Bookworm userspace on this old 3.10.26 Stora kernel produced all sorts of subtle breakage. The most annoying one was SSH.
Symptoms:
- system boots
- network comes up
sshdappears to start- connecting to port 22 resets immediately
- localhost SSH also resets
- no useful normal logs
When I finally forced sshd into foreground debug mode, the real story appeared:
- missing
/run/sshdat first - then after fixing that, deeper failures:
- seccomp-related weirdness
- glibc entropy failure
arc4randomproblems- kernel/userspace mismatch garbage
In plain language:
Bookworm booted, but parts of the modern userspace were too new for this ancient vendor kernel.
So yes, Bookworm could boot.
No, Bookworm was not a sane base for this machine.
That entire branch of work got thrown away.
Step 8: rebuild again, this time with Bullseye
So I rebuilt the USB rootfs again, this time with Debian 11 Bullseye armel.
This was the “less modern, less broken” compromise.
That second rebuild involved repeating almost the entire manual process:
- wipe USB rootfs
- debootstrap Bullseye
- second stage
- set root password
- configure network
- configure
fstab - set archive APT sources
- install SSH
- install boot tooling
- install custom Stora kernel
- regenerate
uImageanduInitrd
This time the result was much better:
- boot worked
- network worked
- SSH worked
- userspace and kernel were old enough to tolerate each other
At that point the box finally stopped fighting every single login.
Step 9: U-Boot is a petty little goblin
Even after Bullseye booted properly, U-Boot was still annoying.
Problems included:
- long
setenvcommands getting mangled over serial - quoted commands behaving inconsistently
- semicolons misparsed
- environment changes that worked interactively but not in saved bootcmd chains
- command sequences that ran partway and silently stopped
I eventually got to a stable boot flow by breaking everything into short env vars and using simpler commands.
Then I made the automatic boot path use:
|
instead of /dev/sda1.
That was one of the most important fixes in the whole project.
Because once I reconnected HDDs, the USB device number changed:
- sometimes root was
sda1 - later
sdb1 - later
sdc1
Using the partition label solved the boot-order problem.
That one change made the difference between:
- “fragile demo”
- and
- “boots reliably with internal disks attached”
Step 10: internal disks, finally
Once USB root boot was stable, I reconnected the internal drives.
One old disk had an NTFS partition with basically nothing useful on it.
The other had no real partition layout worth keeping.
So I wiped and repurposed them.
The final layout became:
USB:
- root OS
small HDD:
stora-appsstora-staging
bigger HDD:
stora-data
Mounted as:
/srv/appstate/srv/staging/data
That part actually went well.
Once you are past boot hell, ordinary Linux storage work feels almost luxurious.
Step 11: low-memory weirdness everywhere
Because this machine has very little RAM, stupid package-management and systemd issues kept appearing.
One especially annoying one:
- package installs would complain
systemctlreloads would fail/run/systemddemanded more free memory than the default tmpfs size allowed
So I had to enlarge /run via tmpfs.
Again: not hard, but another reminder that this box lives on the edge of what modern-ish userspace tolerates.
Nothing is impossible.
Everything is just more brittle than it should be.
Step 12: firewall pain, because modern nftables was too much too
I wanted the Stora to be LAN-only.
So I first tried nftables.
That failed.
Why?
Because the userspace and the old kernel were once again not a friendly pair.
So I had to switch to:
iptables- then specifically
iptables-legacy
Then I had the classic mistake:
- set
INPUT DROP - temporarily lost SSH from another terminal
- recovered from serial
- reapplied rules in safer order
Eventually it worked and survived reboot.
So yes, the Stora is now LAN-only.
But of course even “just apply a small firewall” became another side quest.
What works now
After all that, the machine now does work.
Current stable state:
- boots Bullseye automatically from USB
- works with both internal HDDs attached
- SSH key auth works
- root/password SSH disabled
- LAN-only firewall
- persistent ext4 data mounts
- SMART tools installed
- usable as a simple storage box
Practical things that work fine:
- SSH
- SFTP
- SCP
rsync- basic filesystem storage
- staging directories
- backup target usage
- shell access
- tmux
- basic Linux admin work
For a LAN-only archive / backup target / SFTP box, it is now finally usable.
What does not work well
A lot.
1. The original installer workflow
Dead enough to waste your time.
2. Modern Debian userspace
Bookworm was a trap on this kernel.
3. Modern service expectations
A lot of newer software assumes newer kernels, more RAM, more support.
4. Package availability on Bullseye armel
Spotty enough to be annoying.
5. NFS / Samba dreams
This is not the easy platform for that if you want a pain-free setup.
6. Timekeeping
The clock is still stupid unless you fix it explicitly.
7. Debugging overhead
Every “small” task becomes layered:
- old kernel
- old bootloader
- old hardware
- weird userspace compatibility
- weak resources
- strange package support
8. Trustworthiness
I would not trust this as a serious primary storage device without strong external backups.
It is a hobby box.
Not a serious platform.
The biggest drawbacks
Here is the real warning section.
The hardware is old
Not “vintage cool.”
Just old.
The kernel is old
And tied to this platform in ugly ways.
The bootloader is ancient
And serial interaction is fragile.
The software ecosystem is partially dead
You are standing between:
- old vendor assumptions
- old community guides
- modern Debian archive reality
- broken compatibility in the middle
The effort-to-value ratio is terrible
If your goal is:
- a home NAS
- a backup target
- a simple file server
you can get something easier, faster, quieter, safer, and more supportable almost anywhere else.
An old mini PC.
A Raspberry Pi-class board.
A used thin client.
A normal x86 box.
Even a random forgotten laptop is often better.
So was it worth it?
As a learning exercise:
Yes.
I learned or reinforced a lot:
- UART recovery
- U-Boot behavior
- TFTP booting
- ARM rootfs bootstrap
- old-kernel/new-userspace mismatch debugging
- how to recover from self-inflicted firewall stupidity
- how to stabilize a broken old device into something usable
As a practical appliance project:
Mostly no.
This machine consumed far more time than it justified.
The only reason it was worth continuing was because I had already fallen into the hole and wanted to get out with something working.
Who should keep one of these?
Only people who enjoy at least some of this:
- serial consoles
- debootstrap
- ancient ARM weirdness
- custom boot image generation
- fighting dead install guides
- debugging old bootloaders
- treating hardware recovery like a puzzle
If that sounds fun, keep it.
If your goal is simply “I want a little NAS,” this is not a project, it is a warning.
Final recommendation
If you have a Netgear Stora and you are asking:
should I revive this?
My honest answer is:
- if you want a learning project, sure
- if you want a practical storage appliance, no
- if you value your time, absolutely no
- if you enjoy suffering and stubborn recovery work, go ahead
And if you are not specifically curious about embedded Linux archaeology:
throw it in the trash, or at least donate it to someone who enjoys pain more than you do
Because yes, I got it working.
But the fact that it can be made to work is not the same as saying it deserves to.
If you want, I can turn this into a cleaner publishable blog post with a sharper intro, nicer section names, and a more dramatic ending.