💾 Archived View for gemini.circumlunar.space › users › kraileth › neunix › eerie › 2019 › illumos_on… captured on 2023-03-20 at 19:25:45. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-05)
-=-=-=-=-=-=-
Here I'm republishing an old blog post of mine originally from October 2019. The article has been slightly improved.
Over the last month or so I've written a couple of articles on an old SunFire v100 machine that I own for a while now. First I took a look at the hardware of the machine and the LOM (Lights Out Management). Then I installed OpenBSD 6.0 from CD and updated all the way to 6.5. Finally I played a bit with OpenBSD to see what it can do and how well it supports SPARC64. This post will be the last SPARC64 one before I visit other topics again.
A SPARC in the night - SunFire v100 exploration
OpenBSD on SPARC64 (6.0 to 6.5)
Running OpenBSD on SPARC64 (HTTPd, packages, patching, X11, ...)
While I was pretty happy with OpenBSD on the SunFire, there's one reason that I wanted to try out something else, too. That reason has three letters: _Z-F-S_. The first thing that I tried out when I got the hardware, was FreeBSD - but I ran into problems. I've managed to overco... er, circumvent them (might be worth another story in the future), only to find that FreeBSD does not support ZFS on SPARC64! Or at least not root on ZFS.
One option that suggests itself, is just putting Solaris on there. I have a copy of Solaris 10 for SPARC, but I prefer to keep things Open-Source. Also there's the problem, that my machine is old enough to not have a DVD drive and it doesn't support booting from USB and the like.
So it's illumos. Since I'm really just getting started with the broader Solaris universe, I had to do a little research first. And I was a little surprised that most illumos distros seem to not even support SPARC at all! Of the four that do:
As you can see, there wasn't so much choice after all! While v9os is an experimental one-man project that you should probably stay away from for production use, it might be just right for my purposes of tinkering with an old machine.
There are not many preparations necessary: I downloaded the ISO image and burned it to a CD. Then I connected to my SunFire via serial, powered it on and put the CD into the drive. It takes quite some time, but after a while I can read that v9os is in fact starting.
Booting up v9os from the CD (PNG)
After the system booted, it gives the user the option to select a keymap.
Then it shows the installation menu. There you can choose if you want to install, load additional drivers, drop to a shell, change the terminal type or reboot. I go with the first option.
After a moment the installer has started an a welcome screen is printed. Unfortunately in my case there's a problem with the CD, so that four lines of debug info overwrite important information: How to actually proceed with the installation! But this is an OpenSolaris derivative, and so it's not that hard to figure out that _F2_ is the key to go on.
v9os installer: Welcome screen (PNG)
Next it's selecting the disk to install on. I thought that it all looked good - and didn't pay much attention to the message "A VTOC label was not found.". _VTOC_ is the _Volume Table Of Contents_, the SPARC partition scheme (think MBR/GPT on amd64). We'll come back to that a little later. 😉
v9os installer: Disk selection (PNG)
I think that the installer is quite nice. It even offers help pages that give newcomers like me an idea of what they should do for the current step. Great work on that!
v9os installer: Disks help page (PNG)
Then you can choose to either dedicate the whole disk to v9os or just use a slice. I decide to go the easy route and select the former.
v9os installer: Disk layout selection (PNG)
Now the installer wants to know the hostname for the new system. The suggested default of _v9os_ is fine for me since I don't plan to add another machine with that OS to my network anytime soon.
v9os installer: Hostname selection (PNG)
Finally you can select the time zone - or rather: the zone region.
v9os installer: Time zone selection (PNG)
Unfortunately things went sideways after that choice and I had to reset the machine...
Ok, after going through the previous steps again, I decided to give the advanced setup a try and selected slicing up the drive.
v9os installer: Slice selection (PNG)
Unfortunately the result was the same as before: The installer just died. I tried again a few times, playing with different slice setups, but didn't have any luck.
The installer died... Time to reboot. (PNG)
At this point I was out of ideas on what else I could try, so I removed the CD and powered down the system.
When I powered the system on again next time, I had forgotten that I removed the CD and to my surprise OpenBSD (the system that I had previously installed on the machine) booted up! This meant that the installer had not even changed anything on the disk, yet!
My next guess was (and still is) that the v9os installer might have problems with BSD disklabels being present on the drive. I took a look at the disklabel from OpenBSD, just to find out some information about the drive.
OpenBSD's disklabel information of the system hard drive (PNG)
Then I booted the v9os install medium again but this time selected the shell option. After a little research I found out how to get some drive information on Solaris with _iostat_.
v9os shell session: Collecting drive hardware info (PNG)
Next I decided to give the format utility a try. I don't know if v9os stripped down some hardware information and that together with the disk being really old, it wasn't properly auto-detected. So I had to do something that I haven't done in years (and never missed it): Typing in the geometry information by hand!
Typing in disk geometry information (Ah, the (bad!) memories...) (PNG)
Once the drive has been described to the utility, it shows a menu of what it can do. I haven't used that program before and judging from the name alone was a bit surprised at how powerful it seems to be. Things like being able to define profiles must have been pretty useful in the past.
Solaris' _format_ utility (PNG)
Since I want to partition the drive, I select that. I'm presented with a sub-menu, giving me some more choices.
Partitioning menu of format (PNG)
I have no clue what a Solaris partitioning scheme should look like (need to explore some older versions of that OS somewhen!).
Partitioning the drive for Solaris (PNG)
So I look around a little but eventually accept the proposed default and just hope that this works.
After restarting the machine again and choosing the installer, it looks like this time there is no missing partition label. At least! But will it make a difference?
Returning to the installer: Partitioning was detected
And yes: Now the installer continues and gets the data written to disk!
Finally installing the OS! (PNG)
The process takes quite a while - but that's due to the slow machine that I'm using. Eventually the installation is finished.
v9os installer: All done! (PNG)
Another reboot and after removing the CD-ROM from the drive, the freshly installed system boots up. A moment later it displays the prompt where I can log in using the user _root_ and the password _solaris_.
The first thing that I want to do is to get rid of the serial console. So I set up networking and enable SSH.
Setting up networking and enabling SSH (PNG)
Then I disable the automounter to make the home directory writable and create a user for remote SSH login. Finally I enable the machine to do name resolution and give the new user a password.
Adding a user and name resolution capabilities (PNG)
That should suffice to SSH into the box from another machine.
Logging in remotely works just fine. As v9os does not have an online package repository, I have to download a compressed copy of the repository from SourceForge.
SSHing into the v9os box and downloading the package repository (PNG)
I don't know much about the IPS package system and thus really struggle to make it all work. There is no guide on the v9os site and so I try to put the downloaded file in various locations, decompress it and try everything again. Since that also doesn't work, I unpack the contents of the archive but still cannot get it right...
Struggling to get the repo working... (PNG)
After more than an hour of struggling with _pkg_, reading manpages, doing online research and trying to fit everything together, I finally manage to remove the default publisher that comes with the system and add a new one that eventually works!
Finally figured out how to deal with IPS publishers (PNG)
The v9os operating system is one of the strangest Unices that I've ever touched in not providing the _vi_ editor with the system! But now that I have the repository available, I can simply install vim to find out that using packages does work after all.
Installing packages (vim) works! (PNG)
This is about how far I wanted to take this quick post on v9os. If I had a faster machine, I might have been tempted to try and build the system from source. But with my old SunFire... No.
While v9os might not be fit for production use, I accomplished one goal over OpenBSD: I have an operating system on the machine that is installed on ZFS!
ZFS on SPARC64 with v9os (PNG)
The v9os operating system is an exotic one for sure. But it's nice to see that somebody values SPARC64 machine _and_ illumos enough to put the time required to built something like this into such a project. And actually I think it's not half bad! I didn't do too much with it, but it seemed stable and except for the installer problem (it would probably just have worked on an empty drive) everything worked fine.
Well, maybe some hints on how to get the package repo in place would have saved me some time... On the other hand Solaris veterans are likely to get it working with just a few commands. And while it has been kind of frustrating for a while, it has also lead to at least a basic understanding of what IPS is and how it works. I'm sure that I'd have missed at least some of that if I had just copied some lines from a guide.
I might not end up making v9os my primary operating system (for various obvious reasons). But it's another nice little part in the mosaic of the illumos world that I've started exploring. Also I noticed that I've become a little bit more comfortable with using an OpenSolaris-derivative. Compared to my first encounter with OmniOS, it didn't take me as long to figure out the very basics again. Which is always a good sign.