site  contact  subhomenews

Why ISO was retired

December 08, 2021 — BarryK

Some time ago I stopped releasing EasyOS as an ISO file, from then onward as a drive image file only. This has been contentious, and I receive emails from people lamenting the demise of the ISO. So, I should post some thoughts why I made this decision. Not an exhaustive rationale, just some thoughts while I think of them right now...

The ISO9660 file format is very old, going right back to 1988, and has since then had enhancements bolted on, see the Wikipedia ISO9660 page. In addition, there is the "hybrid ISO", enabling booting from a USB-stick, and on top of that enhancements to enable booting from either or both legacy-BIOS and UEFI firmware computers, see here.

What all of the above means is that ISO files are a "dogs breakfast", a hodge podge of changes bolted on over the years.

A Linux distribution provided on a drive image file, in comparison, is very simple. And, very simple to setup to boot on either or both legacy-BIOS and UEFI computers.

Given that optical drives are rapidly receeding into history, and these days we boot from either a USB-stick or install direct to a hard drive partition, what are the differences in doing that, ISO versus image file?

In the case of booting from USB-stick, the answer is: none

You need a tool for writing the file, ISO or image-file, to the USB-stick, and plenty of such tools are available. For example, 'Etcher' available on Windows, Mac and Linux, 'easydd' on Linux, or on Linux you can even use the 'dd' utility.

As you are no longer writing to an optical media, you don't use a CD/DVD burner tool. That is the only change that you have to make.

Having written the file to the USB-stick, ISO or drive-image, you need to configure the PC to boot from it, and you are in business.

So, why have I received so many requests, via email and forum, to bring back an ISO file, and expressing opposition to the drive-image-file? That is an very interesting question, that puzzled me for a long time. OK, some more thoughts...

The ISO file is a "wrong fit" for a USB-stick

The iso file is a complete self-contained package. Let's say that you write a 550MB hybrid-ISO file to a 16GB USB-stick. This is what will be on the USB-stick:

ISO
--unusable--

Why is creating a USB-stick that is mostly unusable, considered to be acceptable by most mainline Linux distributions? Simply because they only want to be able to boot the distribution for the purpose of installing it to a internal hard drive. So, they don't care that the rest of the USB-stick is unusable.

On the other hand, a live-CD type of distribution, like Puppy Linux, it is an issue, because the "save file" can only be created on some other drive, usually an internal drive. Wouldn't it be nice if the "save file" or "save folder" could be on the USB-stick, or rather it would be nice if you had that choice.

With a drive-image, the entire USB-stick is available. The EasyOS drive image has two partitions, a vfat "boot partition" and a ext4 "working partition". Initially, the working-partition is only 640MiB or 816MiB, but at first bootup it automatically expands to fill the drive. So, this is what you have on the 16GB USB-stick:

boot
 --working-partition, using entire drive--

...think about the implication of that for a moment. Unlike traditional Puppy, you don't have to try and decide where to create a "save file". It already exists, as a "save folder" in the working-partition. First bootup and you are in business, nothing else to do.

And, you never again have to worry about the size of your "save file". At first bootup you have automatically got the entire drive to play in.

This is momentous, and thanks to Dima (forum member 'dimkr'), our most prolific woof-CE developer, the next-generation Puppy is being offered as a drive-image.

Why so much opposition to dropping the ISO file?

I receive regular messages expressing opposition to dropping ISO files, mostly by email.

What I have observed is that the messages are from Puppy old-timers. They have a collection of vintage PCs, all with optical drives. Optical media, CD/DVD, ISO files, that's what they know.

Yes, I can understand, if you know something very well, have done it that way for years, there is resistance to change, even if there are compelling arguments to do so.

About a year ago, I received an email from a representative of a German Linux magazine. I think that magazine still ships printed magazines with a CD stuck on the front. Anyway, he wanted to review EasyOS and had some questions, and I replied, yeah, go for it.

But, I became increasingly puzzled by his questions. They didn't make any sense. The penny finally dropped when I realised that he didn't have a clue what a Linux distribution on a drive-image file is. His knowledge was ISOs, ISOs and ISOs.

...that taught me that even Linux experts, people who review Linux distributions, may have severe misunderstandings outside of their beloved ISO format.

Which also taught me that resistance to the drive-image format may be due to not understanding it.

In conclusion

As mentioned above, the mainline distributions may stick with ISO format just because they have no compelling reason to change. They just want to boot the CD/DVD and then install their distribution to an internal drive.

Other than that use-case, ISO has had it's day, and should be retired.

Oh yes, there are some old computers that won't boot from USB, well they are ancient and approaching relegation to "Silicon Heaven" (you need to be a fan of the Red Dwarf TV series to know what Silicon Heaven is).

There are some multi-boot tools, that enable putting many ISO files on the one USB-stick; however, the ISO format does not have any intrinsic avantage, these boot managers could also be made to boot image files.

I cannot think of a single other use-case where you would want to stay with ISO files.

For Linux developers, if you are interested, I have a script for creating a skeleton drive-image file, with a boot-partition and a working-partition, that will boot on either a legacy-BIOS or a modern UEFI PC. There are three scripts, '2createpcskeletonimage', '2createpcskeletonimage-encrypt' and '2createpcskeletonimage-gpt' -- for easyOS I currently use the middle one, which creates a MSDOS partition table and enables ext4 fscrypt in the working-partition. Syslinux is used for legacy-BIOS booting, rEFInd for UEFI booting. These scripts are in the woofQ tarball, available here.

Dima has a similar script. He is using Syslinux and Efilinux.

What motivated me to create this blog post, is discussion starting here on the Puppy Forum:

https://forum.puppylinux.com/viewtopic.php?p=43658#p43658

EDIT 2021-12-11:
The above link is to Dima's "Vanilla Dpup" next-generation Puppy thread, and ongoing discussion about the merits or demerits of ISO format is hijacking the thread, so I have started another thread:

https://forum.puppylinux.com/viewtopic.php?t=4690

There have been a few posts about using a multi-boot tool such as Ventoy, how convenient to just drop an ISO file onto the Ventoy USB stick, and add it to the boot-list.

However, what needs to be pointed out is that the ISO file has no intrinsic advantage over an image-file. The boot manager can be made to treat an image file as a package, just like an ISO file, and boot it. Quoting from the Ventoy front page:

Directly boot from ISO/WIM/IMG/VHD(x)/EFI files, no extraction needed

And I see that EasyOS is ticked:

img1

...snapshot is from here. Numbering on the left column is Distrowatch ranking.

I received one email that EasyOS is more difficult to boot in a virtual machine, such as qemu. Again, there is no intrinsic reason why the drive image file should be any more difficult than with an ISO.

I have received messages from people who have run EasyOS in a virtual machine, but as it hasn't interested me personally, I never got into documenting how to do it. Good, news, I see that Dima has posted how to run his next-generation Puppy image-file with qemu:

https://forum.puppylinux.com/viewtopic.php?p=43900#p43900

So, I am repeating, there are no use-cases where the ISO format has an advantage over a Linux distribution as a drive image file. The perceived advantages are only due to ignorance.

One more thing, while I think of it. A couple of people have commented that it is more difficult to extract the contents of an image file, vmlinuz, etc., if you want to do a direct frugal install to a internal hard drive. WRONG, WRONG, WRONG!

In EasyOS, you just click on the image file and it opens up and you can copy out the files. You do not have to write it to a USB-stick or try to figure out how to mount the partition inside the image file.

In the pups, you have single-click opening of ISO and SFS files. EasyOS has added that for image files. It is just an implementation detail, easy enough to add to the pups.

EDIT 2021-12-15:
There is now a "Why ISO was retired part-2":

https://bkhome.org/news/202112/why-iso-was-retired-part-2.html

EDIT 2022-11-14:
With reference to the above statement "Syslinux is used for legacy-BIOS booting, rEFInd for UEFI booting", EasyOS has moved to the Limine boot-loader, for both legacy-BIOS and UEFI booting.

If you want to know more how to "open up" a drive-image file and extract the contents, as stated above it is achieved just by clicking on the file. However, for a different Linux distribution, it can be done manually. Scan down near the bottom of this page to see how:

https://easyos.org/user/how-to-update-easyos.html     

Tags: easy