Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m continuing work on a server that can take a bit better care of itself. Let’s get started!
Installing Micro Core was a whole unexpected challenge. I learned how to use a few of the boot options, but actually installing? The drive needed to be formatted, no doubt. I eventually gave in and turned to Ubuntu to format the drive. Doing my research, I went with ext4. I later found it was one of the top picks for SSD, but one of the worse ones for USB drives. I won’t pretend to fully understand it well enough to explain, but I think it has something to do with SSD having a limited number of read and write cycles per sector of the disk. The wrong format can overuse one part of the disk and wear it out prematurely.
Since I was booting from a USB drive, the installer I downloaded was having trouble finding the files to install — it may also be because the OS boots so fast, it doesn’t have time to wake up again after copying to RAM. I tried several approaches, including putting a separate disk image on the thumb drive and and failing to locate its path until I just told it to download the install files from the (N)et. Small joke was on me when Micro Core wanted to format its destination drive again.
While I was doing that, I took another look at just how much space I’d actually need, and an archive of several past servers was only 7GB. I removed the HDD with Ubuntu from any plans for this server and possibly onto another future project I’m not ready to announce.
Trying to learn Micro Core is like trying to learn Linux all over again. Imagine visiting a colony, be it a historic colony in the Americas or a futuristic colony on another planet. Each distro would be like a different family. Some distros are closely related so as to be in the same extended family, while others barely ever see each other in town hall meetings. Tiny Core, and by extension, Micro Core Linux feel like they’re across the town from members of the Debian and Ubuntu family I’ve previously met. While the file system feels similar, the shell and default text editor paint a completely unfamiliar face to look at. (Later edit: the Tiny Core family is a fork of a distro known as DSL, which is a fork of Debian, so the more I get to know the distro, the more familiar things show up.)
To date, I’m only familiar with the Bash shell and Nano text editor. Both provide a relatively open and friendly user experience for anyone not afraid of the command line. The Tiny Core family did not build its command line for people afraid of a text interface. With size and speed as priorities, ease of use isn’t given as much priority. The Ash shell is faster and slimmer, while Vim text editor provides a lot more customization opportunities.
Vim scares me. I had to spend hours just trying to figure out how to move around, and now, the only thing making me even consider keeping it around is the difficulty of adding Nano in.
Apt is the usual way you download programs in Linux setups I’m familiar with. Tce is its less well-known counterpart I have to work with. I’m having trouble learning it, likely because I’m looking first online and only looking through the PDF that came with that documents Tiny Core. It also doesn’t help that most TCL documentation seems to assume you’re working with a GUI.
Insuring Nano was properly installed was tough. I spent a whole evening trying to problem solve, thinking my install was corrupt. The best I could figure out was that I had installed Nano while booted to a thumb drive, but it saved to a different place. When I tried to fix it, tce told me Nano was already downloaded and installed while it was unavailable on the command line. A total of three drives were involved, including my first Linux project running Ubuntu MATE.
I tried bailing, but my attempt to wipe Micro Core failed due to the drive being mounted. I wasn’t able to “umount” it (note the lack of the expected first n in umount; that alone took me between half and a full hour to get). And here lies one of IT’s more haunting nightmares: things working when they reasonably shouldn’t. I came down before bed for a last shot at solving a possibly corrupted path somewhere, and Nano decided to work without either the Ubuntu HDD or the installation thumb drive. Nano has since been stable.
SSH is the next step, but I took a little cut in line for Java. I learned a lot during this period. Working with Micro Core, and I’d assume Tiny Core too, is all about managing persistent files. The OS is small enough to get away with basically reinstalling each time, so unless you protect your data, everything is effectively a temporary file. With that said, I doubt I’ll fully understand what all is where until I finish a second or third project. For all I know, this was just a case of Micro Core repairing itself.
From what I can tell, MCL is one of the few distros to ship without a SSH client. I’ll be using OpenSSH. After a full day of slow learning, I followed a list of directions, somewhat following what was supposed to be going on, only to mess up on the last one and have to start all over again. It went a bit faster this time, and I understood even more of what I was looking at.
Moving along into the final stretch of this week’s planned scheduled progress, I’ve downloaded the Minecraft 1.14.4 server file. Let me tell you: the world is not friendly to CLI denizens (denizen: person living in a place they are not a citizen). I had to search hard for how to download anything, and when I found a couple old blog pages pointing me to a little program called wget. They each provided an old URL that no longer works, even if you update the MC version numbers. The official server download page includes a 40 digit number in hexidecimal.
And here, I admit to cheating a tiny, little bit. After failing to manually copy the URL, I turned to my work on bringing SSH online. A quick paste, which for some reason works with a secondary mouse click to a PuTTY window, and the correct URL was woven into the command.
I realized I had only downloaded the Java installer. I spent the day trying to unpack the HTML for the download page as if it were the actual compressed Java tarball. The shell script I found directed me to a URL, and I thought that was the actual URL to plug into wget. The -O option I used robbed me of a vital clue by overwriting the file name and extension. Something worked, and I didn’t realize it was the wrong thing until I used Nano and read the code for myself.
I wasn’t too sure where to stash Java to make it go, so I put it in with the extensions so it wouldn’t disappear while rebooting. I don’t know what happened after that. I ended up with too many symbolic links between files, likely from recursion somewhere. A reboot broke Java. Things are just a little too messy now. I don’t know what’s what anymore. This job isn’t over.
Final Question: Have you ever gone out looking for instructions while the answer was there in front of you all along in manual form?