This patch moves the /os.img that is embedded in a squashfs to
/LiveOS/os.img, to be consistent with non-embedded location.
I find this aesthetically pleasing, and suspect that it may facilitate
more elegant code in the future. And I see no downside.
This patch introduces a global variable 'interactive' which is defined
as true if stdout of livecd-creator is attached to a tty. This global
is then used to add the -no-progress option to mksquashfs for
non-interactive sessions. Thus making logfiles created by redirecting
the output of livecd-creator, reasonably readable (e.g. with less).
This may or may not solve the root issue that Jon Steer recently brought
up. (maybe he wants it disabled even in terminal situation, in which
case a --verbose/--debug/--quiet infrastructure is called for, which IMO
would be a great addition as well).
This specific case, might also be better as an upstream mksquashfs
modification (Phillip, should I submit a patch?), but I think the global
is handy, for instance if we want to provide our own progress bar.
Comments welcome on generic style issues as always (is there something
preferable to a global in this instance?)
The attached patch implements the solution recently discussed, to avoid
wasting 1.2M of ram during LiveOS sessions, during the non-install times
when the 1.2M of ram for the minimized filesystem overlay is not
This implementation involves putting osmin in its own squashfs, and
copying that 12kb image to ram, as opposed to an alternative of putting
osmin in the same squashfs as the main system image. I chose to
implement the seperate version, because it guarantees that the install
will remain one long ~2G seekless cdrom read.
This is seperate from the filesystem layout patchset I posted, but
straightforward merging would need to be done if they are both applied.
Jeremy recently committed a patch which changed the number of loop
devices created from 128 to 16. I don't know if there was some
measurable performance reason for this or not. I had always guessed
that the reason David chose such a large number originally was because
of the fact that unlike in a normal system, in a LiveOS system, a loop
device is used for the rootfs, and therefore the loop driver can never
be removed and readded with a larger number of devices if needed.
This patch adds an optional kernel commandline parameter
num_loopdevs=<int> which will cause that many loop devices to be created
instead of the default of 16. This will be useful for people using the
livecd who need lots of loop devices, but doesn't interfere with
whatever reasons justified the lowering from 128 to 16.
If you want to add this functionality without the prior patch which
removed the while-wait, somthing like-
maxloopdev="/dev/loop\$((\$num_loopdevs - 1))"
while [ ! -b \$maxloopdev ] ; do
should do the trick
The attached patch moves the loop modprobe call in mayflower generated
init, to before the udevsettle call. Thus also removing the while-wait
loop that Jeremy wisely added to my dynamic loop device patch.
Theoretically, one could argue that the while-wait loop is still needed,
as the udevsettle command is allowed to fail. I would personally feel
comfortable committing this without the while-wait loop, because it
seems like if udevsettle fails with a timeout of 30, it will never(tm)
be because the loop devices have not been created.
This is a (set of) proposal(s) that I don't feel too strongly about, but
if people agree, I wouldn't mind implementing.
First, I'd like to put together and submit a patch, that moves the
placement of /squashfs.img in the livecd iso to /LiveOS/squashfs.img
This would have the benefit of cleaning up some code that differentiates
between that placement on live-usb, and the current /squashfs.img on
Another benefit is making the iso directory structure look nicer and
more intuitively understandable for someone looking at it under windows.
A downside, is that an F7 version of livecd-iso-to-disk would not work
with an F8 livecd. I think its worth it, but I admit it is a downside.
Also, livecd-iso-to-disk would look a bit uglier, if it needed to
maintain the ability to support livecds made with the current scheme.
Along the same lines, I also suggest moving /isolinux(livecd) and
/syslinux(liveusb) to /boot/isolinux and /boot/syslinux. This also
would make the usb/iso directory structure look cleaner and more
intuitively understandable to less linux-guru users when they look at
the directory structure under windows (or anywhere)
And because it is somewhat on-topic, I would also suggest changing the
current squashfs.img:/os.img to be squashfs.img:/ext3fs.img, as that
would be consistent with what it is named in the --skip-compression case.
Also, I would modify the above to be ext3.img instead of ext3fs.img,
such that the naming convention is consistent with squashfs.img (i.e.
name of filesystem as passed to mount -t).
Finally, I would suggest changing squashfs.img:/ext3.img to
squashfs.img:/LiveOS/ext3.img, such that the general idea is that a
container filesystem such as squashfs presents the result in the same
place you would look for it without the extra container filesystem.