[Ovirt-devel] [PATCH] edit-livecd in python

Perry Myers pmyers at redhat.com
Tue Sep 22 21:06:36 UTC 2009


On 09/22/2009 03:48 PM, David Huff wrote:
> This is the second generation of the edit-livecd tool that replaces our
> original bash script with a python version and aims to reuse as much as
> the livecd-creator libraries as possible.  The main reason for the new
> creator class is to avoid the need for a kisckstart file in order to
> edit an existing livecd image.
> 
> edit-livecd is useful for people who don't have the development and yum
> infrastructure/repos set up to build livecd's from scratch. This is
> especially useful for custom livecd images.
> 
> Changes to packaging and binaries should always be done by
> modifying kickstart and rebuilding the image via livecd-creator.  But if
> all you want to do is add/edit a config file, public key for SSH, or
> change the root password this can be done with the edit-livecd script.

Actually edit-livecd can/should also be used for adding RPMs to an image.
 That's one of it's primary use cases.  We create a master ISO image and
someone else can take it and modify it using a lightweight process
(edit-lived) instead of needing to use the heavyweight process
(livecd-creator) which requires things like yum repositories.

That being said...

One issue with this script is that it forces you into a chroot shell for
both the script option and the interactive shell.  It's very useful
sometimes to be able to access outside filesystems during editing.  Is
there anyway we can have a flag that specifies whether or not to autochroot?

Also, I just ran the following command:
sudo ./edit-livecd ovirt-node-image.iso
and made zero changes in the interactive shell (i.e. just typed exit)

And the image grew substantially.
> -rw-r--r--.  1 pmyers users  76M 2009-09-22 16:36 ovirt-node-image.iso
> -rw-r--r--.  1 root   root   84M 2009-09-22 16:50 ovirt-node-image.iso.edited.iso

log from the run:
> mount: block device /dev/loop7 is write-protected, mounting read-only
> Launching shell. Exit to continue.
> ----------------------------------
> bash-4.0# exit
> exit
> e2fsck 1.41.4 (27-Jan-2009)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> ovirt-node-image: 6923/38400 files (1.8% non-contiguous), 52789/153600 blocks
> e2fsck 1.41.4 (27-Jan-2009)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> ovirt-node-image: 6923/15360 files (1.8% non-contiguous), 51304/51304 blocks
> e2fsck 1.41.4 (27-Jan-2009)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> ovirt-node-image: 6923/15360 files (1.8% non-contiguous), 51304/51304 blocks
> e2fsck 1.41.4 (27-Jan-2009)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> ovirt-node-image: 6923/38400 files (1.8% non-contiguous), 52789/153600 blocks
> Parallel mksquashfs: Using 4 processors
> Creating 4.0 filesystem on /var/tmp/edit-livecd-2HD1GU/iso/LiveOS/osmin.img, block size 131072.
> [================================================================================================================================================================================================================================|] 2/2 100%
> Exportable Squashfs 4.0 filesystem, data block size 131072
> 	compressed data, compressed metadata, compressed fragments
> 	duplicates are removed
> Filesystem size 1.49 Kbytes (0.00 Mbytes)
> 	0.76% of uncompressed filesystem size (196.20 Kbytes)
> Inode table size 57 bytes (0.06 Kbytes)
> 	77.03% of uncompressed inode table size (74 bytes)
> Directory table size 23 bytes (0.02 Kbytes)
> 	85.19% of uncompressed directory table size (27 bytes)
> Number of duplicate files found 0
> Number of inodes 2
> Number of files 1
> Number of fragments 0
> Number of symbolic links  0
> Number of device nodes 0
> Number of fifo nodes 0
> Number of socket nodes 0
> Number of directories 1
> Number of ids (unique uids + gids) 1
> Number of uids 1
> 	root (0)
> Number of gids 1
> 	root (0)
> Parallel mksquashfs: Using 4 processors
> Creating 4.0 filesystem on /var/tmp/edit-livecd-2HD1GU/iso/LiveOS/squashfs.img, block size 131072.
> [==========================================================================================================================================================================================================================-] 4800/4800 100%
> Exportable Squashfs 4.0 filesystem, data block size 131072
> 	compressed data, compressed metadata, compressed fragments
> 	duplicates are removed
> Filesystem size 68035.44 Kbytes (66.44 Mbytes)
> 	11.07% of uncompressed filesystem size (614419.03 Kbytes)
> Inode table size 4546 bytes (4.44 Kbytes)
> 	23.52% of uncompressed inode table size (19326 bytes)
> Directory table size 50 bytes (0.05 Kbytes)
> 	86.21% of uncompressed directory table size (58 bytes)
> Number of duplicate files found 0
> Number of inodes 3
> Number of files 1
> Number of fragments 0
> Number of symbolic links  0
> Number of device nodes 0
> Number of fifo nodes 0
> Number of socket nodes 0
> Number of directories 2
> Number of ids (unique uids + gids) 1
> Number of uids 1
> 	root (0)
> Number of gids 1
> 	root (0)
> I: -input-charset not specified, using iso-8859-1 (detected in locale settings)
> Using LIVEC000.;1 for  /var/tmp/edit-livecd-2HD1GU/iso/LiveOS/livecd-iso-to-disk (livecd-iso-to-pxeboot)
> Size of boot image is 4 sectors -> No emulation
>  11.67% done, estimate finish Tue Sep 22 16:50:43 2009
>  23.34% done, estimate finish Tue Sep 22 16:50:43 2009
>  34.98% done, estimate finish Tue Sep 22 16:50:43 2009
>  46.65% done, estimate finish Tue Sep 22 16:50:43 2009
>  58.29% done, estimate finish Tue Sep 22 16:50:43 2009
>  69.96% done, estimate finish Tue Sep 22 16:50:43 2009
>  81.60% done, estimate finish Tue Sep 22 16:50:43 2009
>  93.26% done, estimate finish Tue Sep 22 16:50:43 2009
> Total translation table size: 2048
> Total rockridge attributes bytes: 2769
> Total directory bytes: 8192
> Path table size(bytes): 64
> Max brk space used 1b000
> 42902 extents written (83 MB)
> Inserting md5sum into iso image...
> md5 = 42cb89a2c328bcc33b566e0038f8906c
> Inserting fragment md5sums into iso image...
> fragmd5 = 1fb1ab27a6f8524da8a3bd671b5664b6492e979fd13c97ed4636b62eacb6
> frags = 20
> Setting supported flag to 0




More information about the ovirt-devel mailing list