Sugar on a Stick/Sugar Clone: Difference between revisions

No edit summary
No edit summary
Line 11: Line 11:
See my comments in this mailing list post,
See my comments in this mailing list post,
http://www.mail-archive.com/livecd@lists.fedoraproject.org/msg01506.html
http://www.mail-archive.com/livecd@lists.fedoraproject.org/msg01506.html
It includes several new options for adjusting the image filesystem size as well as home.img and overlay file sizes. Expand the [[#editliveos.py --help]] listing below.


It includes editliveos.py, liveimage-mount, and temporary versions of fs.py, live.py, creator.py, util.py (pending incremental patches for livecd-tools acceptance).  The livecd-iso-to-disk version is not up-to-date with all the recent changes and improvements.
It includes editliveos.py, liveimage-mount, and temporary versions of fs.py, live.py, creator.py, util.py (pending incremental patches for livecd-tools acceptance).  The livecd-iso-to-disk version is not up-to-date with all the recent changes and improvements.
Line 169: Line 171:
** ''livecd-iso-to-disk'' uses the --home-size-mb NNN options to specify the home.img installation.  
** ''livecd-iso-to-disk'' uses the --home-size-mb NNN options to specify the home.img installation.  
* With edit-liveos (disk-to-iso), a nearly-consumed overlay can be refreshed by rebuilding the system into a new, SquashFS image that re[[wikipedia:Sparse_file|sparse]]s the system files and repackages them into an iso installation file for reuse or distribution.
* With edit-liveos (disk-to-iso), a nearly-consumed overlay can be refreshed by rebuilding the system into a new, SquashFS image that re[[wikipedia:Sparse_file|sparse]]s the system files and repackages them into an iso installation file for reuse or distribution.
====editliveos.help====
Below is the output of editliveos --help in a working version from 17 June 2012.
{{Show|'''editliveos.py --help'''|<pre>Usage:
              editliveos.py: [options] <LiveOS_source>
              Edit a LiveOS image to insert files or to clone a customized
              instance, rebuild the image into a new, .iso image installation
              file, and refresh the source's persistent filesystem overlay.
              options:  [-n, --name <name>]
                        [-o, --output <output directory>]
                        [-k, --kickstart <kickstart-file>]
                        [-S, --force-SELinux]
                        [-s, --script <script.sh>]
                        [-N, --noshell]
                        [-t, --tmpdir <tmpdir>]
                        [-y, --yumcache <cachedir>]
                        [-e, --exclude <exclude, s>]
                        [-i, --include <include, s>]
                        [-u, --seclude <seclude, s>]
                        [-r, --releasefile <releasefile, s>]
                        [-b, --builder <builder>]
                        [--clone]
                        [--refresh-only]
                        [--skip-refresh]
                        [-c, --compress-type <compression type>]
                        [--compress]
                        [--skip-compression]
                        [--refresh-uncompressed]
                        [--skip-minimize]
                        [--skip-reboot]
                        [--expand-image-gb [+[<size>]]
                        [--shift-home-mb [+|-]<size>]
                        [--adjust-overlay-mb [+|-]<size>]
                        [-a, --extra-kernel-args <arg s>]
                        [--extra-space-mb <size>]
                       
USAGE HELP  editliveos.py --help
              LiveOS_source must be entered as "live" to edit or clone the
              currently running LiveOS image.  An attached LiveOS installed
              device may be edited or cloned through its node id, such as
              /dev/sdd1, or, if it is mounted, through its mount point path.
              An .iso image file is addressed through its pathname, such as
              /path/to/build.iso, or, if mounted, through the mount point
              directory path.  A mounted Live CD-ROM image is addressed through
              its device node, such as /dev/sr0.  Even a directory containing a
              LiveOS and iso/syslinux folders with the appropriate files can be
              edited or cloned through that parent directory path.
              The --clone option copies the home.img or persistent home folder
              to the new build .iso file, allowing user customizations to be
              replicated.  A new version of livecd-iso-to-disk with the
              --copy-home installation option may be used to propagate clones.
              By default, other files and folders in the source device's outer
              file system are included in the new build.  Options are provided
              to --include, --exclude, and --seclude files or folders for the
              new build.  The new builds are branded to distinguish them with
              the --name, --builder, and --releasefile options.
              Space requirements for stageing the build files are estimated by
              the script and compared to the space available in a -t <TMPDIR>
              option.
              Invoke the --help option to learn about other optional features.
             
Options:
  -h, --help            show this help message and exit
  -n NAME, --name=NAME  Name for the new LiveOS image (don't include .iso, it
                        will be added.) Unless the name is prefixed with a
                        colon, :, the build will be branded with a date-
                        builder-Remix-releasename string, and the .iso will be
                        named as NAME-arch-Ymd.HM
  -o OUTPUT, --output=OUTPUT
                        Specify directory location for the new .iso file.
  -k KSCFG, --kickstart=KSCFG
                        Path or URL to kickstart config file.
  -S, --force-SELinux  Force setting SELinux attributes on install root.
  -s SCRIPT, --script=SCRIPT
                        Specify a script to run chrooted in the LiveOS
                        filesystem hierarchy.
  -N, --noshell        Specify no breaking to shell after edit.
  -t TMPDIR, --tmpdir=TMPDIR
                        Temporary directory to use for staging the build.
                        (default: /var/tmp)
  -y CACHEDIR, --yumcache=CACHEDIR
                        Directory to use for for the yum cache. default: None
                        (A temporary filesystem cache will be used.)
  -e EXCLUDES, --exclude=EXCLUDES
                        A string of filename patterns to exclude from the copy
                        of the outer device filesystem.  See _copy_src_root().
                        Denote multiple patterns as "pattern1, pattern2, ...".
                        To exclude all device content except for the
                        iso/syslinux and LiveOS directories, enter  "all".
  -i INCLUDES, --include=INCLUDES
                        A string of file or directory paths to copy to the
                        .iso file in _copy_src_root().  Denote multiple files
                        as "path1, path2, ..."  (The paths are referenced
                        relative to the source mount directory, either
                        /mnt/live/ or /run/initramfs/live for the running
                        LiveOS, or /TMPDIR/editliveos-<random>/<srcmnt>/ for
                        an attached or .iso file.  So ../../../<mount
                        point>/INCLUDE or ../../../../<mount point>/INCLUDE
                        may be used, respectively, to include files from other
                        branches of the active hierarchy.)
  -u SECLUDES, --seclude=SECLUDES
                        A string of file or directory paths in the LiveOS
                        filesystem to seclude from the final build
                        configuration.  The user directory may be denoted with
                        ~/.  Denote multiple files as "path1, path2, ..."
  -r RELEASEFILE, --releasefile=RELEASEFILE
                        Specify release file/s for branding.  Denote multiple
                        files as "path1, path2, ..."
  -b BUILDER, --builder=BUILDER
                        Specify the builder of a Remix.
  --clone              Specify copying of the home.img filesystem or the
                        /home folder contents to the new .iso file.
  --expand-image-gb=EXPAND_IMAGE_SIZE
                        Specifies a new size of NN GiB for the image (or
                        changing the size by a difference of +NN GiB, if a +
                        sign is prefixed).  This is useful when a larger image
                        is needed for a script, or during package updates in
                        the chroot shell.
  --shift-home-mb=SHIFT_HOME_MB
                        Specify copying of the /home folder contents into a
                        home.img filesystem of size NN MiB, or changing the
                        size of an existing home.img filesystem to NN MiB (or
                        by a difference of +NN or -NN MiB, if a sign is
                        prefixed).  If NN = 0 (or nets to <= 0), the home.img
                        filesystem contents will be shifted to the the /home
                        folder, which is normally compressed; however, it
                        subsequently will not have access to the --encrypted-
                        home installation option of livecd-iso-to-disk.  If
                        the selected or calculated size is insufficient for
                        the current home contents, the edit will be to a size
                        10% larger than the current home size.
  --adjust-overlay-mb=ADJUST_OVERLAY_MB
                        Specifies a new size of NN MiB for the overlay (or
                        changing the size by a difference of +NN or -NN MiB,
                        if a sign is prefixed).  If NN = 0 (or nets to <= 0),
                        no change will be made.
  --refresh-only        Specify replacing the squashfs.img or ext3fs.img of
                        the source LiveOS installation instance with such
                        files from the new build, and resetting any overlay.
                        No new .iso installation file will be produced.
  --skip-refresh        Specify no refreshening of source filesystems.
  -c COMPRESS_TYPE, --compress-type=COMPRESS_TYPE
                        Specify the compression type for SquashFS. Will
                        override the current compression or lack thereof.
  --compress            Specify compression of the filesystem image,
                        ext3fs.img. Used when overriding an uncompressed
                        source.
  --skip-compression    Specify building the .iso with an uncompressed
                        ext3fs.img file system.
  --refresh-uncompressed
                        Specify refreshing the source with an uncompressed
                        ext3fs.img
  --skip-minimize      Specify no osmin.img minimal snapshot.
  -a KERNELARGS, --extra-kernel-args=KERNELARGS
                        Specify extra kernel arguments to include in the new
                        .iso file boot configuration.  Multiple arguments
                        should be specified in one string, i.e., --extra-
                        kernel-args "arg1 arg2 ..."
  --extra-space-mb=EXTRA_SPACE_MB
                        Specify extra space in MiB to reserve for unexpected
                        staging area needs.
  Debugging options:
    These options control the output of logging information during image
    creation
    -d, --debug        Output debugging information
    -v, --verbose      Output verbose progress information
    -q, --quiet        Supress stdout
    --logfile=FILE      Save debug information to FILE</pre>}}
===SoaS-remix===
===SoaS-remix===
'''SoaS-remix''' is a bundle of edit-liveos.py and supporting scripts to make testing and use easier.
'''SoaS-remix''' is a bundle of edit-liveos.py and supporting scripts to make testing and use easier.