I've often had problems with putting Linux on USB sticks. Fedora, Ubuntu, and CentOS have been hit or miss. I decided to be a little more adventurous with Fedora 19.
I decided to use livecd-iso-to-disk.sh so that I could know better what was going on.
(Is it time to change the name? Fedora Live no longer fits on a CD these days. It's great on DVDs and USB sticks.)
I wanted a LARGE overlay (I wanted to experiment with installing updates). When I tried sudo ./livecd-iso-to-disk.sh --format --overlay-size-mb 4095 --home-size-mb 200 --unencrypted-home Fedora-Live-Desktop-x86_64-19-1.iso /dev/sdi it tried to create an MSDOS filesystem and consequently complained that it was too big: mkfs.fat 3.0.20 (12 Jun 2013) Can't have an overlay of 2048MB or greater on VFAT
Why didn't it use ext[34]? Reading the script, I found the answer: I hadn't installed the systlinux-extlinux package on my host system. There was no message to this effect.
I suggest something like this (untested!) patch be applied:
==== start diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index c4fb4db..0e65d3e 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -868,7 +868,10 @@ if [ -n "$format" -a -z "$skipcopy" ]; then
if [ -n "$efi" ]; then createGPTLayout $TGTDEV - elif [ -n "$usemsdos" -o ! -x /sbin/extlinux ]; then + elif [ -n "$usemsdos" ]; then + createMSDOSLayout $TGTDEV + elif [ ! -x /sbin/extlinux ]; then + echo "Warning: syslinux-extlinux package not installed; formatting as VFAT filesystem instead of EXT" createMSDOSLayout $TGTDEV else createEXTFSLayout $TGTDEV ==== end
On Sat, Jul 06, 2013 at 03:06:00PM -0400, D. Hugh Redelmeier wrote:
Why didn't it use ext[34]? Reading the script, I found the answer: I hadn't installed the systlinux-extlinux package on my host system. There was no message to this effect.
How did you install it? The rpm requires /sbin/extlinux so normally it should already be installed?
| From: "Brian C. Lane" bcl@redhat.com
| On Sat, Jul 06, 2013 at 03:06:00PM -0400, D. Hugh Redelmeier wrote: | | > Why didn't it use ext[34]? Reading the script, I found the answer: I | > hadn't installed the systlinux-extlinux package on my host system. | > There was no message to this effect. | | How did you install it? The rpm requires /sbin/extlinux so normally it | should already be installed?
Well, I was reading https://fedoraproject.org/wiki/LiveOS_image and found a reference to http://git.fedorahosted.org/cgit/livecd/tree/tools/livecd-iso-to-disk.sh so I fetched that and ran it.
I now realize that I was supposed to have installed livecd-tools.rpm.
Anyway, it seemed to run fine except for this (silent) problem.
| From: Brian C. Lane bcl@redhat.com | | On Sat, Jul 06, 2013 at 03:06:00PM -0400, D. Hugh Redelmeier wrote: | | > Why didn't it use ext[34]? Reading the script, I found the answer: I | > hadn't installed the systlinux-extlinux package on my host system. | > There was no message to this effect. | | How did you install it? The rpm requires /sbin/extlinux so normally it | should already be installed?
It looks like you aren't going to accept my patch to warn when /sbin/extlinux isn't present. Fair enough: "Can't happen".
If it cannot happen, I recommend that you remove the "-o ! -x /sbin/extlinux" from elif [ -n "$usemsdos" -o ! -x /sbin/extlinux ]; then
That way an error message will be generated by the shell in the impossible case (that would have helped me). And the script becomes simpler.
livecd@lists.fedoraproject.org