Why ISO was retired
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:
...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