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. | ||