Family Photo Chest Part 9: NFS

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am exploring the my preferred method of accessing network drives. Let’s get started!

Storage of any kind is only as good as your ability to access it. On your typical modern, end-user computer, long-term storage is typically limited to a hard drive of some kind, and possibly some sort of cloud storage solution.

On another inbound tangential subject, file transfers within my family’s home network have thus far has been limited to using a USB thumb drive or bouncing it off an online host. But thumb drives are often already laden with data, and size limitations plague e-mail and chat services. SSH and SCP have helped, but they are a bit of a pain to get working smoothly.

File sharing has been around almost as long as computers could communicate. Different protocols have different strengths and weaknesses, and the best one for you can differ depending on your situation. I’m largely dealing with Linux, and NFS speaks Linux/Unix natively, or so I hear. The other easy choice would be SMB, a protocol with more overhead that Microsoft wants its customers to upgrade to Pro or Server to avoid having to use for file sharing. And according to data gathered over at Furhatakgun, I am drawing my own conclusion that SMB has more overhead per file than NFS.

If I would just follow a tutorial, I could have a much faster time with a lot less understanding. My target project was to backup my laptop’s home directory in preparation for migrating my drive from external to a newly installed internal drive.

I would have to say enabling NFS was easy only in the shallowest of terms. After enabling the protocol overall, I found my way over to the appropriate network share and had to resort to whitelisting my IP to mount that share (as root). And at that, I literally had no permissions to read, write, or execute that share — even as root. chmod!

All I know is that I am on the way to understanding, but I have much to learn before I can properly report back on it. For example, I’ve read that I need to have my NAS account name match my local user name. I’ve also read some about hard vs soft mounting, and how setting it up right can minimize the chance of data corruption.

Final question: Have you ever recognized that you know something, but not well enough to teach it?

Fine Tuning a Hosted Minecraft Server

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am covering the fine-tuning of my family’s Minecraft server. Let’s get started!

Rounding off the cliffhanger from last week, Apex’s tech support pointed me in the direction of making a contact account so I didn’t have to worry about impersonating someone else while getting support.

The next order of business was adjusting what I know to be Cron jobs, but they just call scheduled tasks. We want restarts twice a day, 6 hours off from our sister server. I set that up as two daily events with corresponding 15 minute warnings. The interface is still unfamiliar, but just now, I optimized it to have one event that reschedules itself every 12 hours (with a similarly arranged warning) instead of two warned tasks each going once a day.

I also set up auto saving. Before, while I controlled all the hardware myself, I was saving twice a day. I was even considering on bumping things up to four times per day on the new server, but they have a limit of two backups. Daily will give us the insulation we need while hopefully giving us enough time to address potential situations.

Next came the big one: a custom domain name. I won’t go sharing the actual URL here, because we are not a public server, but I’m glad we now have one to take with us if we decide to move hosts.

Setting up the domain name wasn’t so simple though. Sure registration felt great, but configuration was where it was all at. The last time I messed with this stuff was three years ago… HAPPY BIRTHDAY, BLOG! Anyway, I learned what I could about different kinds of DNS records. For the server, I used an A record to direct IPV4 traffic to the shared IP the server is on, and I used a CNAME record inappropriately to try and direct traffic to the XXXXXXX.apex.co server URL, thinking it would be handled from there. I actually needed an SRV record to specify more stuff about the kind of traffic to the particular port.

Along the way, I talked to three tech support representatives at NameSilo, my DNS host. I have the deepest respect for legit tech support, and I’m sure they all did their best, even if one or both of us didn’t follow the other at times. I’m just glad we managed to get things working.

Final Question: What uncommonly performed tasks have you learned more about on the second repetition?

First Week of Professional Minecraft Server Hosting

Good Morning from my Robotics Lab! This is Shadow_8472, and today, my family’s Minecraft server is off to external hosting. Let’s get started!

Apex Minecraft Hosting: If I had to give them one thing, it would be that it was easy to get things going first try. On the other hand, I’m having trouble with fine-tuning things. This is the story of how my family’s server, Creepers N Cream, is moving to professional hosting.

A streamer friend by the name of DS9Fireblade speaks highly of Apex’s customer support, particularly their live chat service. I’ve only interacted with them over support tickets, and I will say they get back decently quickly.

I know I said the server was graduating a while a while ago, but there is something to be said about keeping things going with the hardware you have, and I had a hard time accepting the transition. It took a soft merger with DS9’s newer, but larger community before I was willing to budge. With more people possibly coming on, the already overworked CPU would be at even more of a loss to keep things going smoothly. When DS9’s server experienced an anomaly during a version upgrade, I moved to push Creepers up to hosting.

I would say anyone with a decent amount of basic Minecraft server hosting experience should be able to migrate a world with Apex. I prefer the sleek aesthetics of MineOS’s web interface to Apex’s panel, but Apex’s panel has more complete functionality.

Another thing I noticed right away was how Apex is using less RAM than MineOS with just G1GC: at baseline, the server is now at just under 2GB while before, it was at 3GB when it wasn’t starting at 4.

Learning a new interface can be overwhelming. My MineOS experience helped a lot, but I came up wtih a list of things I wanted to talk with customer support about. I gave it a night or two, but when I got back into panel, I found the answers to some of my questions, though not all.

At present, I still have a few concerns for tech support. Apex’s account information appears to be directly linked to billing information, and that includes e-mail. So far, I am the one maintaining the back end, but I am not the one financing things. I’d also like to see about getting all those UTC times moved to something I’m a little more familiar with; I couldn’t find that setting anywhere. And then, maybe I can see about addressing the scheduling for bi-daily restarts and backups.

Final Question: When was the last time you have asked someone something, but got a bad answer because of a slightly different working definition of a word?

Emergency Teardown

Good Morning from my Robotics Lab! This is Shadow_8472 and today, I am not the hero of this week’s story. Let’s get started!

My laptop has had no business continuing to run for a few years now. It’s working on 10 years old, hardly ran Windows before I formatted over the wrong drive, and now it has suffered through a little more than a sprinkling from a water cup.

The first few seconds, everything was “normal” as I was panicking to turn the thing off, but capillary action won out, and everything shut off.

There was a minute of shock and confusion before I regained my composure enough to realise the possible danger of leaving a wet appliance plugged in. While liberating my laptop from its various plugs, I realized there might be hope if it could be dried out.

I can not thank my father enough for his help on this project! He literally dropped what he was doing to take care of my emergency while I was in no shape to handle it myself. I just shoved it into his hands wet side down and ran off and he did the rest.

I don’t know much about the actual teardown, but I hear the dust and critter fur at the bottom of the unit was dry. Parts were left to dry for around a day and a half. I wanted to do a rice bath, but my father told me that those are usually just for phones and then you gotta deal with any rice dust afterwards.

Before reassembling, there was an upgrade to make. I have a 1TB SSD intended for my desktop, but running Linux from a USB 3 drive with a small cable is kind of the opposite of portable, and with that sad excuse for a proper power port evicted, I’ve been able to take the laptop on Sabbath afternoon drives with my father, where we listened to a seminar by AWR. Two talks a week for roughly 45 minutes each, I had to mind OS’s umbilical.

Installing the internal SSD was straightforward. The original drive is the same length and width, but is noticeably thinner and much lighter. Most importantly, it fits the provided bracket so I don’t need some improvised block to hold things in place. Personally, I think the new drive is so lightweight that friction with the SATA connection alone would be enough to keep it from moving, barring impact from the wrong side.

Reassembly was delayed a few hours because my father wanted to try an epoxy to fix some plastic studs that have broken off over time. I always remember three of them rattling about, but one post’s superglue job was still holding and a small post with a fin was unfamiliar and didn’t fit any of the three holes. I surmised the later was from under the motherboard, a component that requires removing the whole screen assembly (not fun), but I actually identified the wrong screw hole. The remaining peg was located and all were affixed to their rightful positions once again.

I was not privy to most of the reassembly, but I did catch that going by pure memory has its drawbacks when you don’t have the teardown guide memorized. Also, the F9 key popped off, and we are waiting on a magnifying glass to aid in the particularly delicate work.

I brought a battery to the testing bench and arranged for the laptop to be booted to a live USB instead of my usual OS. I wasn’t there for the smoke test, as it’s called. My father reported, “The patient lives!”

Further operations are believable. There is a power status LED that’s broken off a tiny circuit board that I’d like replaced some time. We also have a faster CPU I might like to try, if neither are soldered in, the sockets are compatible, and my cooling system is up to it. For now, I’m just glad my old friend is still around.

Final Question: I have been trying to look into Firewalld for weeks now for my “supercomputer” project. Any ideas where to find a tutorial with some theory and isn’t just someone demonstrating a list of tasks?

A Pesky Game to Run in WINE

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am revisiting a very old topic from a few days short of two years ago. Spoiler alert: I don’t have a full solution for running SimCoaster (aka Theme Park Inc.), but I might have a clue or two. With that depressing ending out of the way, let’s get started!

Sim Coaster is a special game to me for the nostalgia factor. Read any write up by a well-read reviewer, and he’ll say it was a meh sequel when there was a better competing game on the market. Love for this game is so rare, I’ve even been referred to myself while researching how to get it to work, see hyperlink in opening paragraph.

Wine is not an emulator, nor is it a toxic beverage in this context; it is a compatibility layer. It looks at Windows executables’ logic, makes its best guess at what the equivalent logic in the local Linux or Mac operating system, and runs those instructions. Windows’ long legacy means it has an almost unfathomable library of software, so there are a mind boggling amount of settings to ensure maximum compatibility with as much of it as possible.

Lutris is a tool primarily used for playing games on Linux. It provides a nice graphical interface that configures and launches a number of “runners,” weather they be compatibility layers like Wine, or emulators like MAME, DOSBOX, or Dolphin. I don’t even recognize most of them, but I doubt anyone uses everything on a regular basis outside development — if that. The community can contribute installers for other people to use, but if your game doesn’t have one, you can still configure it manually.

From what I can tell, the Sim Coaster (sometimes spelled without the space: SimCoaster) installer for Windows has always been very stable in Wine; I’ve never had a problem with the installer. The WineHQ page on the game says the full game should be stable as of Wine 2.5. (For reference, I would have to go out of my way to find a version older than Wine 4.0.) I have it on credible authority that once a program gets full compatibility status, it usually doesn’t get worse.

Yet that’s where I have been for years here. I’ll update my progress, but I feel like I’ve been poking at a wall for loose bricks here, only to find one with the next wall behind it.

My biggest development was getting into the Lutris community’s Discord server. Linux is expansive to the point no one person can know everything, and the more focused of a community you can find for help, the more effective any help you find will generally be.

My second development was learning about the inner workings of Wine. Windows programs expect a certain file structure, so Wine creates a directory at ~/.wine called a Wine prefix –sometimes called a “Wine bottle”– to contain this file structure. In this Wine bottle, it provides free and open source equivalents to libraries Windows programs commonly expect, among other things to fool its programs into believing they’re running on an actual Microsoft Windows operating system.

I eventually made some tangible progress when I successfully created a 32 bit Wine bottle. While most programs can be made to work in 64 bit bottles, a few like Sim Coaster, just crash without much interesting to say to the debug log accessed by launching Lutris with lutris -d (Not just the one launched from the GUI). For all my trouble, I ended up with a text box titled A debugger has been detected saying Unload the debugger and try again.

And here are some miscellaneous clues I hope people like me might find useful:
1. 64 bit Wine bottles can only go back as far as XP, while 32 bit go back to Windows 2.
2. Sim Coaster only gives me its debugger error box when it’s trying to run in Win98 or ME, but not 2000 or XP.
3. It’s been suggested I may be bumping into DRM here. I have the CD, and Wine has that mapped to drive I (as in indigo).

Future things to try are getting the development version of Wine and making a bug report based on that. By the time I try this project again, I’m likely going to be trying on a distro friendlier to gaming. I’ve been interested in learning Arch, and I hear Manjaro is a good trade off for my needs. I’d just like to finish a project or two before learning another major Linux branch.

Final Question: What game from your past do you wish you could play again?