9

Why couldn't the Live ISOs just be a minimal Linux system with an installer? Is there any reason to use squashfs to hold the root of the filesystem? Is it just for better compression, or are there other reasons?

I've seen some answers (and comments) say that it's for read-only reasons. What about persistence, like what Ubuntu or EndeavourOS has in their Live USBs?

3
  • Because it's read-only I believe. Dec 5, 2021 at 20:25
  • what do you mean with "just be basically a minimal system"? What do you have in mind? Dec 5, 2021 at 20:29
  • 3
    live ISOs are / were designed to be burned to CDs (and DVDs) which are entirely read only. Squashfs makes sense if you don't want to persist changes it's more efficient and supports inline compression meaning you can fit more into a smaller image. Dec 5, 2021 at 20:36

2 Answers 2

15

There are a couple of important reasons for this, but the big two are space constraints, and requirements from the filesystem itself.

SquashFS is a highly optimized filesystem image format that provides, among other benefits:

  • High levels of data compression.
  • Built-in block-level deduplication (any given block is stored only once, and all files that contain a copy of that block just reference that one copy).
  • No practical limitations on file sizes (this usually does not matter, but is worth mentioning IMO).
  • Proper support for file ownership, file permissions, extended attributes (needed for example for SELinux)
  • Very low runtime overhead despite the above benefits.
  • Reasonably good performance.

A burnable live system image needs to conform to the filesystem format required by the media type it’s being used with, either ISO 9660 if it’s an optical disk (because while it could use UDF, almost nobody actually does that), or FAT32 on most USB connected storage devices. FAT32 notoriously supports none of those first four benefits listed above. ISO 9660 technically has support for POSIX-style file ownership and permissions (the Rock Ridge extensions), but it lacks practical support for compression and deduplication.

However, Linux needs POSIX-style file ownership and permissions to work correctly, and in most cases it’s extremely desirable for the final live system image to be as small as possible and therefore good compression is desirable, and because SquashFS does this better than any other options available for Linux right now, it’s what gets used for the root filesystem for the live image (since that is generally the biggest part of the image by a significant margin, and is also the only part that the bootloader does not need to understand).

5

ISOs are typically NOT stored as squashfs, because ISO typically refers to the ISO 9660 standard filesystem and its successors that was specifically designed for use with cdroms, and later dvds, etc.

This is not to be confused with generic filesystem images, which could use any format (and typically use .img instead of .iso for a filename).

ISO filesystems are typically used when it is possible or likely that the image would be burned to a cdrom, or for bios compatibility for booting, either from a cdrom or a USB stick or some similar medium.

squashfs is frequently used in linux for read only images and is highly optimized for this use, including data compression and minimum size data structures, and low overhead. This could be used for a live disk image, but it would not be bootable, as only linux recognizes this format, and the computer's firmware would not unless it was also linux or had direct linux support. However, squashfs images are frequently found inside ISO live disks as a large file. In addition to compression, squashfs has the advantage over ISO format that it supports full linux filesystem standards (for read only filesystems) including file attributes.

Other formats (for example vfat or ext4) can also be used for filesystem images, although these formats are optimized for read/write disk volumes.

6
  • 3
    ISO has become a genericised term meaning "burnable image". Files named "ISO" and with file names ending .iso are often used even when the content is not ISO9660. At this point on time it's not good to conflate the filesystem with the concept of a disk image. Dec 5, 2021 at 20:54
  • 3
    ISO hasn't become a genericised term except amongst those who don't know better. Saying that just confuses more people.
    – user10489
    Dec 5, 2021 at 20:58
  • 6
    I don't care if you think it is a "plan fact"; if they call it an iso and it isn't an ISO image, it's wrong. I have seen non-compliant ISO images that were still ISO images and were recognized by the linux ISO9660 filesystem driver. I've never seen a non-iso image that was called iso instead of img.
    – user10489
    Dec 5, 2021 at 21:10
  • 5
    No, iso images are iso-9660. The might be other type file systems wrapped within files within the iso image, and it is actually possible to write other file systems to optical media. But CD/DVD writers use ISO9660 format. They all boot using the el torito specification for CD/DVD.
    – Brian
    Dec 5, 2021 at 21:15
  • Even a couple of years since this argument I still see too many modern day uses in too many reputable places use "iso" without meaning ISO9660. Please note this modern example of formatting seed.iso with mkfs.vfat. However much it angers people's pedantry, .iso was popularised long before .img and this resulted in people still using it "incorrectly" more than a decade later. Aug 17 at 4:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .