Netinstall fails with brand new CRS310-8G+2S+IN

As I wrote in the article, your Linux host’s routing is far more complex than that of a VM bridged to a single interface on that host.

When you remove all freedom of action, you give it only one path to success.

2 Likes

When this kind of things happen, I always think at what the future alien archeologists studying our extinct civilization will think of us if the thread will be one of the few texts surviving.

A brief explicative message to them is needed:
Yes, in the year 2025, one of the most basic operations in computing (running a simple, stupid program to start a stupid machine) is still a challenge.
Of the two most commonly used operating systems one has become so complex and full of largely unneeded overlays and complications that Is not advised to use It for this.
The other one has instead become so complex and full of largely unneeded overlays that It doesn't work for this.
So we need to use the one or the other to run a complex program capable of simulating a simpler environment that actually works.
Imagine this same complication of simple things everywhere ...
... everything that should be done in a few minutes takes hours ...
... don't be surprised we became extinct.

Mikrotik is still living in 90s/00s computing ecosystem/mindset. Where things like Windows bluescreens, regedit where still a thing and people were fine with troubleshooting Windows DLL issues for hours or days. Now everything needs a repair wizard and if this not works out, you throw things away.

And while we're piling on the absurdities of where comp tech has evolved, this thread made me re-read the Windows instructions for NetInstall (because I'm not a Linux person):

While this is old-hat to me, the idea that running NetInstall should require such a complex reconfiguring of a Windows machine is sad to me. No way a typical/average Windows user can (or would want to) do this.

(Yes, an argument can be that a typical/ave user won't be in the position of needing NetInstall, but that is (1) debatable and (2) not the point: Make it easier on even the people that can indeed handle this.)

That's odd. IIRC a few years ago you had to specify interface and IP address. And you had to properly configure the network interface as well accordingly (with ifconfig) to make it all work. But AFAIK recent versions of netinstall CLI have the ability to setup network interface themselves. At least I remember a changelog lone claiming this. And last time when I used netinstall CLI a few months ago, all I had to do was attach my USB ethernet adapter to my laptop, execute netinstall with interface parameter and I was in the game. For me, the Linux netinstall CLI is much easier to use than the Windows version. It has crystal clear CLI arguments and I can save a working CLI call in a text file and next time I need to netinstall I look it up. The GUI thing where you have to remember all the confusing checkboxes and clumsy file list and the whole steps to get the network adapter in the "correct state" to make it work. It is a PITA, probably the definition of PITA when you look it up on Wikipedia.
Netinstall for Windows should be deprecated or replaced by something that works more reliably. Anyways, I like the Linux netinstall CLI. And I think Mikrotik likes it as well, as they constantly improve it.

BUT the Windows user would download a portable version of the "other" common OS available, that - until recently at least - just worked, write it on a spare USB stick, boot from it and run netinstall-cli, while looked upon with disdain by Linux users, that proclaimed how better it was to just run it on their installed system.

The article by tangent and this thread both prove that at least for fully installed systems this is not (or not largely) true anymore.

Only for the record, I have my own version of this, only done with a real machine instead of virtual ones, for some reasons I have to periodically re-program some remotes via an infrared (USB attached) programmer and the proprietary software (or the device, or both) for whatever reasons doesn't like to run on anything newer than XP, so I keep a (good ol') tiny Acer Aspire One (8.9") only for that use (and for some other "old" tasks that newer Windows make more difficult, such as connecting via USB-to-serial to various devices, running some old USB stick diagnostics, etc.).

Sorry, but I'm having a hard time following.

Are you saying that you have an Aspire with a Linux distro on it that know works with netinstall and use that machine when you need to run NetInstall?

I don't know what would need reprogramming.

Is there a simpler/easier/more-straightforward way to use Windows as the OS for Netinstall? Ideally, without worrying about a direct, single wire connection to the device to be NetInstall'ed (i.e., through switches)?

No, not Linux, and not for netinstall, Xp SP2 and a proprietary program for a specific make of infared remotes (and other few programs).
It is the same principle, a (real, in my case, virtual as used on this thread)) machine dedicated to a single use.

1 Like

I see now.

You're using a dedicated Windows XP machine for (1) NetInstall and for (2) IR remote programming software that requires XP (as opposed to Win10/11).

I like the idea of an old laptop dedicated to NetInstall, but I'm not clearly not nearly as organized and disciplined as you; for example: I can see putting a big "NETINSTALL" label on the machine, and then not remembering where I put the machine when it comes time to need it.

Still wish NetInstall were more auto-adaptive (i.e., no need for basic network reconfig and dedicated ether cable to device).

I have 2 netinstall options:

Old Dell 2007 laptop with Linux
AX3 with netinstall container

Both are mostly first time right.
Recently I had to do netinstall from Windows laptop, took 6 attempts before it succeeded.

I'd love to hear more about the ax3 w/NetInstall container solution.

Can this be a truly simple way?

That is, assume a Mikrotik device (hex, ac, ax, rb, etc.) that needs to be NetInstalled. Connect the ax3-NetInstall server and power up, then go through the reset button process on the device that needs to be netinstalled and poof (English translation of voila): NetInstalled on device? No other steps of PC needed?

I'd love to hear more about the ax3 w/NetInstall container solution.

Here.

No other steps of PC needed?

No, but you do still have to set up the container on a per-case basis. Each difference in:

  • CPU type
  • package set
  • init script

etc. will require a new container.

Fight it if you like, but a Linux VM bridged to a single host-side interface and running my provided wrapper shell scripts is the easy path.

1 Like

I was hoping that the ax3-container-NetInstall solution would include the ability to load it with all the CPU-types and packages and "it" would figure out the appropriate one to load on to the taget device.

I understand how it seems like I want to fight it, but what I really don't want is to fight Linux.

For someone who doesn't know Linux (except the most basic usage (as opposed to config) aspects), is your wrapper shell script the easy path?

We are talking about this, right:

https://tangentsoft.com/mikrotik/wiki?name=NetInstall%20on%20EL9

It may be the easiest, but it's not easy.

For example, I am not clear if this requires an already running Linux box. Then, I see that options in order of reliability include (1) a direct ethernet cable from Linux box to the target device or (2) a dumb switch in between. And, that a smart switch might make the process fail if it's running DHCP snooping.

Then, do I need to set up a VM on the Linux box? If so, are there options to how to achieve this that would affect the instructions?

Do I need to make any changes to your instructions based on the existing network config of the box, or based on the network config of the VM?

Nothing I'm saying here is in any way of criticism of your work; they simply reflect the challenges a non-Linux person might face.

what I really don't want is to fight Linux.

I suspect you are applying 1990s era Linux on the desktop horror stories to 2025. It's time to give it another try. Things have changed.

Using your VMM of choice, install a copy of Fedora 42. The only tricky bit is bridging the intended hardware network interface to the VM, as the article advises. Everything else is just next-next-next through the installation wizard.

With Fedora 42's live media installer, you don't even have to reboot to continue, but do it anyway so your work isn't lost. (Until then, any local changes you make are applied to the in-memory copy of the OS, not the one just installed.) Walk through the remaining steps of the OS installer, including creating your first user account.

At that point, simply follow along with this screencast, which I have just recorded, for you.

Yes, it's sped-up, but as you will see, it isn't all that complicated.

The only tricky bit here is that the same phenomenon that results in WinBox showing no updates to download until you retry a few times can cause the "./update 7.19.4 arm64" command in the screencast to need to be repeated a few times, with an "rm -r 7.19.4" in between until you see that everything is downloaded. That's why I run it through bash -x: to monitor all the steps.


It doesn't have to be Fedora 42, but if you choose a non-Red Hat type distro, my article's firewall-cmd steps won't apply. These aren't shown in the video, but two of the three do have to be done on this particular OS. (The port 5000 one isn't needed on Fedora because of a stock rule that supercedes it.)

@Josephny
There must be something not letting the meaning of "NO, not for netinstall" pass through. :confused:

It was a comparison, an approach that I use for OTHER, NOT Mikrotik related, "pesky" programs, specifically ONLY for the specific infrared remote programmer and a few USB stick "manufacturer tools" and for serial/TTL access on OTHER, NOT Mikrotik related devices.

What I would probably try doing if I wanted to have something "dedicated" to netinstall, would probably be a simple Linux distro like Tiny Core Linux on a USB stick, BUT I would have the same issue you just reported: Where (the heck) did I put that USB stick?

So, the "right" way (but not at all "universal" or "easy") would be a similar small "live" distro stored somewhere on the network and boot to it via PXE when needed (hopefully never).

A similar small "live" distro somewhere on the network and boot it to via PXE is not simple enough.

Seems I am stuck with the hit-or-miss Windows NetInstall.

On Windows try netinstall at 32 bit instead of 64... Do miracles sometimes....

Re: netinstall container
It needs the right container image for the architecture it runs on, obviously.
Other then that, you need to feed it the correct NPK files for the device to be installed.
Nothing more.

Only to keep things as together as possible tangent has just posted on another thread a link to a new related article (essentially a re-write of his previous one, making it more generic and adding to it a quick screencast with useful commands):
https://tangentsoft.com/mikrotik/wiki?name=Run%20NetInstall%20in%20a%20VM

Though very nice :smile: I still stand by my take on the matter, there must be a simpler way than having to install a 2.2 Gb Linux distro on a VM running on a stupidly powerful machine to run a simple program that only transfers a few megabytes over an ethernet connection.

2 Likes

Container runtimes also allow bridged networking. The trick will be coming up with the minimum and sufficient incantation.