site  contact  subhomenews

Why ISO was retired, part-2

December 15, 2021 — BarryK

Part-1 is here:

I started a forum thread and received a lot of feedback:

I have replied in a few places, but there is a need for more details, with pictures, hence this part-2 blog post.

How to extract vmlinuz, etc., for a frugal install

It has been repeated so many times, not just in that forum thread, but elsewhere in the forum, that it is easier to extract vmlinuz, *.sfs and initrd files from an iso than it is from an img file.

I have replied no, that is wrong. It is just as easy to open up an image file as it is an iso or sfs -- you just click on it. It is just a matter of implementing click-on-an-img file in the pups.

It is theoretically possible to click on an .img.gz (compressed img file) and extract the contents without uncompressing it. However, in EasyOS I implemented the simpler way, which is one click to uncompress the file, another click to open it.

Photo showing the first click:


Photo showing the second click:


...that's it! Copy out the files for a frugal install. Click on the img file to unmount -- just like you do in the pups with iso and sfs files.

And it is also, unlike iso and sfs, editable. You can make changes and update the img file.

Hybrid-iso can have a working-partition

A couple of more knowledgeable people, for example dungsaga, have replied that the hybrid-iso is a drive image containing the iso as a partition, and another working-partition could be added. That working-partition could even expand to fill the drive.

In theory, yes. In practice "I wouldn't touch it with a barge pole". It is a question really, why would you go for the very complicated hybrid-iso architecture compared with very simple img file. Let me show the hybrid-iso in action...

I wrote the Fatdog 811 iso to a usb-stick, then looked at the partitions. The OS sees 2 partitions, sdb1 and sdb2, the first is a iso9660 filesystem and the second is a small vfat filesystem. Clicking on them to see the contents:


First observation: If you were booting from this usb-stick, as a "live-cd", with a save-file on the internal drive, if you wanted to change the kernel vmlinuz, or edit the initrd, you can't, you have to rebuild the entire ISO.
Second observation: Very complicated. This is elaborated on further down.
Third observation: There are two different boot systems, lick/refind and grub. This means that at bootup there have to be two menus to be negotiated!

Let me digress and show the UEFI bootup of Fatdog. Firstly, the UEFI boot menu:


...huh, two UEFI boot choices!!! Very nice if you are setting out to confuse newbies.

I have highlighted my choice, it then shows firstly a lick/refind boot menu, which times out if you do nothing and goes to a grub menu, which will also timeout if you do nothing, and you will be able to get to a desktop.

Now, swapping over to EasyOS when I released it as an iso...

I did not want the boot to go through two menus, I implemented, with some difficulty, an iso that boots with one-stage, just one menu. Here is the same thing, the EasyOS iso written to a usb-stick:


...ha ha ha (hysterical laughter), see there are two copies of vmlinuz and initrd.gz! I eventually settled on that contorted arrangement to get it to boot with just one stage, one menu.

I don't want to go back over the decisions made back-then. It was a long process of experimenting, and is now consigned to history.

EasyOS image structure

The EasyOS image file, in comparison, is extremely simple. Two partitions, a vfat boot-partition and a ext4 (or f2fs) working-partition. Here they are mounted:


...that working-partition gets expanded to fill the drive and populated with some folders at first bootup.

First observation: Compare with the "First observation" above, analogous to booting like a "live-cd". The major difference is that the files in the boot-partition are directly editable. They are not locked away as in the case of the iso file.
Second observation: Very simple.
Third observation: Compare with the above "Third observation". Bootup is single-stage, with only one menu.

That first point is important. If you upgrade the kernel, no problem, just replace vmlinuz. If you are into the technical side of things and want to edit the initrd file, no problem, just click on it.

Yes, EasyOS also supports single-click to open the initrd, edit it, then click on the initrd file to update it.

In this snapshot, the boot-partition is sdb1, I clicked on it to mount, then clicked on the 'initrd' file to open it up:


Actually, all of these single-click activities have been in EasyOS since the first year of its inception, 2017. So, very old news to me. Features that I use regularly and have come to take for granted.


I have whittled away at the use-cases in favour of using the iso file, so what are the hold-outs? In part-1 I mentioned computers that won't boot from USB. Hmmm, they are getting pretty long-in-the-tooth, perhaps only 32-bit CPUs -- which immediately invalidates that use-case for EasyOS.

But, the pc-won't-boot-from-usb is a pretty weak argument anyway. A boot manager can be installed, even one that boots from CD, that will be able to see and boot from USB. Or, there can be a direct frugal install.

So what else? ...nothing.

Well, someone could argue that you can do a frugal install to a usb-stick from an iso. Yes, but it still comes down to why would you have an iso in the first place?

Of course, someone may still come up with a genuine reason why the iso file is the best choice. Please do post to the forum if you know of such a use-case.      

Tags: easy