auto-biarch (x86_64 + i686) LiveDVD patch + ISO
by Jan Kratochvil
Hi,
finally created a LiveDVD ISO automatically booting x86_64 OS on x86_64
(and i686 otherwise). Regular users will not notice there exists any new arch
while they will benefit from the full performance of their PC:
http://people.redhat.com/jkratoch/x86bilive-2009062000.tar.gz (71KB)
It uses live_dir=LiveOS-x86_64 vs. live_dir=LiveOS-i686 to boot the image.
The syslinux patch provides "default-{x86_64,i386}" keywords in isolinux.cfg.
livecd-iso-to-disk is not patched/compatible with such image.
livecd-creator should create such ISO on a single run, not by merging the
output of two livecd-creator runs by a 3rd party app.
Regards,
Jan
Reasons:
* I still did not understand why I have to carry with me two media - both
x86_64 and i386 - when all the data perfectly fit on a single media.
* Why I have to try to boot x86_64 first to find out if the specific machine
is x86_64? Even common programmers do not know it, "Windows XP works here".
* The OS must "just work", it must be fun and easy. Requiring a special
technical decision before even starting the OS download is a showstopper.
* Checked that a regular user will on http://fedoraproject.org/get-fedora
still download terrible performance degradation of 32-bit OS although her
hadware is in 70%-95%(?) of cases x86_64. x86_64 is here for 6 years now.
* Arguing x86 may be faster than x86_64... I did not find any such case,
x86_64 is a more modern arch (more registers, PIC for free, better ABI).
We already hit the 2GB address space limitations. x86_64 is the future.
* All the friends of mine have 8Mbit+ ADSL and TB disks downloading many DVD
disks so some several more hundreds of MB are not something to notice.
mkisofs -f -J -r -hide-rr-moved -hide-joliet-trans-tbl -V Fedora-11-x86bi-Live -o ../x86bilive.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-info-table -boot-load-size 4 .
mount -r -o loop Fedora-11-x86_64-Live.iso x86_64/
mount -r -o loop Fedora-11-i686-Live.iso i686/
x86bilive:
total 4
lrwxrwxrwx 1 root root 13 2009-06-18 21:10 GPL -> ../x86_64/GPL
lrwxrwxrwx 1 root root 14 2009-06-18 21:11 LiveOS-i686 -> ../i686/LiveOS/
lrwxrwxrwx 1 root root 16 2009-06-18 21:10 LiveOS-x86_64 -> ../x86_64/LiveOS/
lrwxrwxrwx 1 root root 16 2009-06-18 21:10 README -> ../x86_64/README
drwxr-xr-x 2 root root 4096 2009-06-20 21:44 isolinux/
x86bilive/isolinux:
total 184
lrwxrwxrwx 1 root root 30 2009-06-18 21:13 boot.cat -> ../../x86_64/isolinux/boot.cat
lrwxrwxrwx 1 root root 31 2009-06-18 21:17 ii686 -> ../../i686/isolinux/initrd0.img
-rw-r--r-- 1 root root 14336 2009-06-20 21:45 isolinux.bin
-r--r--r-- 1 root root 1411 2009-06-20 21:44 isolinux.cfg
lrwxrwxrwx 1 root root 33 2009-06-18 21:13 ix8664 -> ../../x86_64/isolinux/initrd0.img
lrwxrwxrwx 1 root root 28 2009-06-18 21:17 ki686 -> ../../i686/isolinux/vmlinuz0
lrwxrwxrwx 1 root root 30 2009-06-18 21:13 kx8664 -> ../../x86_64/isolinux/vmlinuz0
lrwxrwxrwx 1 root root 29 2009-06-18 21:13 memtest -> ../../x86_64/isolinux/memtest
lrwxrwxrwx 1 root root 32 2009-06-18 21:13 splash.jpg -> ../../x86_64/isolinux/splash.jpg
-r--r--r-- 1 root root 159888 2009-06-20 20:48 vesamenu.c32
isolinux.cfg:
default vesamenu.c32
timeout 100
menu background splash.jpg
menu title Welcome to Fedora-11-x86bi-Live!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu color cmdline 0 #ffffffff #00000000
menu hidden
menu hiddenrow 5
label linux0
menu label x86_64 Boot
kernel kx8664
append initrd=ix8664 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-x86_64 ro liveimg quiet rhgb
menu default-x86_64
label check0
menu label x86_64 Verify and Boot
kernel kx8664
append initrd=ix8664 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-x86_64 ro liveimg quiet rhgb check
label linux1
menu label i686 Boot
kernel ki686
append initrd=ii686 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-i686 ro liveimg quiet rhgb
menu default-i386
label check1
menu label i686 Verify and Boot
kernel ki686
append initrd=ii686 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-i686 ro liveimg quiet rhgb check
label memtest
menu label Memory Test
kernel memtest
label local
menu label Boot from local drive
localboot 0xffff
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ defaults.patch 20 Jun 2009 20:10:46 -0000
@@ -0,0 +1,175 @@
+--- syslinux-3.75-orig/com32/menu/Makefile 2009-04-16 06:42:14.000000000 +0200
++++ syslinux-3.75-defaults/com32/menu/Makefile 2009-06-20 19:21:32.000000000 +0200
+@@ -24,7 +24,7 @@ MODULES = menu.c32 vesamenu.c32
+ TESTFILES =
+
+ COMMONOBJS = menumain.o readconfig.o passwd.o drain.o printmsg.o colors.o \
+- background.o refstr.o execute.o
++ background.o refstr.o execute.o verify_cpu.o
+
+ all: $(MODULES) $(TESTFILES)
+
+--- syslinux-3.75-orig/com32/menu/menu.h 2009-04-16 06:42:14.000000000 +0200
++++ syslinux-3.75-defaults/com32/menu/menu.h 2009-06-20 19:21:32.000000000 +0200
+@@ -224,4 +224,9 @@ void execute(const char *cmdline, enum k
+ /* drain.c */
+ void drain_keyboard(void);
+
++/* verify_cpu.S */
++#if defined(__i386__) || defined(__x86_64__)
++int verify_cpu(void);
++#endif
++
+ #endif /* MENU_H */
+--- syslinux-3.75-orig/com32/menu/readconfig.c 2009-04-16 06:42:14.000000000 +0200
++++ syslinux-3.75-defaults/com32/menu/readconfig.c 2009-06-20 20:23:24.000000000 +0200
+@@ -656,11 +656,22 @@ static void parse_config_file(FILE *f)
+ m->parent_entry->displayname = refstr_get(m->title);
+ }
+ }
+- } else if ( looking_at(p, "default") ) {
+- if (ld.label) {
+- ld.menudefault = 1;
+- } else if (m->parent_entry) {
+- m->parent->defentry = m->parent_entry->entry;
++ } else if ( looking_at(p, "default")
++#if defined(__i386__) || defined(__x86_64__)
++ || looking_at(p, "default-i386")
++ || looking_at(p, "default-x86_64")
++#endif
++ ) {
++#if defined(__i386__) || defined(__x86_64__)
++ if (! ( ( looking_at(p, "default-i386") && verify_cpu () == 0 ) ||
++ ( looking_at(p, "default-x86_64") && verify_cpu () != 0 ) ) )
++#endif
++ {
++ if (ld.label) {
++ ld.menudefault = 1;
++ } else if (m->parent_entry) {
++ m->parent->defentry = m->parent_entry->entry;
++ }
+ }
+ } else if ( looking_at(p, "hide") ) {
+ ld.menuhide = 1;
+--- syslinux-3.75-orig/com32/menu/verify_cpu.S 1970-01-01 01:00:00.000000000 +0100
++++ syslinux-3.75-defaults/com32/menu/verify_cpu.S 2009-06-20 20:30:27.000000000 +0200
+@@ -0,0 +1,119 @@
++/* https://lists.linux-foundation.org/pipermail/fastboot/2006-November/01188... */
++#if defined(__i386__) || defined(__x86_64__)
++ .globl verify_cpu
++verify_cpu:
++ push %ebx
++ push %esi
++ push %edi
++ push %ebp
++ call Xverify_cpu
++ pop %ebp
++ pop %edi
++ pop %esi
++ pop %ebx
++ ret
++
++/*
++ *
++ * verify_cpu.S
++ *
++ * 14 Nov 2006 Vivek Goyal: Created the file
++ *
++ * This is a common code for verification whether CPU supports
++ * long mode and SSE or not. It is not called directly instead this
++ * file is included at various places and compiled in that context.
++ * Following are the current usage.
++ *
++ * This file is included by both 16bit and 32bit code.
++ *
++ * arch/x86_64/boot/setup.S : Boot cpu verification (16bit)
++ * arch/x86_64/boot/compressed/head.S: Boot cpu verification (32bit)
++ * arch/x86_64/kernel/trampoline.S: secondary processor verfication (16bit)
++ * arch/x86_64/kernel/acpi/wakeup.S:Verfication at resume (16bit)
++ *
++ * verify_cpu, returns the status of cpu check in register %eax.
++ * 0: Success 1: Failure
++ *
++ * The caller needs to check for the error code and take the action
++ * appropriately. Either display a message or halt.
++ */
++
++Xverify_cpu:
++
++ pushfl # Save caller passed flags
++ pushl $0 # Kill any dangerous flags
++ popfl
++
++ /* minimum CPUID flags for x86-64 */
++ /* see http://www.x86-64.org/lists/discuss/msg02971.html */
++#define SSE_MASK ((1<<25)|(1<<26))
++#define REQUIRED_MASK1 ((1<<0)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<8)|\
++ (1<<13)|(1<<15)|(1<<24))
++#define REQUIRED_MASK2 (1<<29)
++ pushfl # standard way to check for cpuid
++ popl %eax
++ movl %eax,%ebx
++ xorl $0x200000,%eax
++ pushl %eax
++ popfl
++ pushfl
++ popl %eax
++ cmpl %eax,%ebx
++ jz verify_cpu_no_longmode # cpu has no cpuid
++
++ movl $0x0,%eax # See if cpuid 1 is implemented
++ cpuid
++ cmpl $0x1,%eax
++ jb verify_cpu_no_longmode # no cpuid 1
++
++ xor %di,%di
++ cmpl $0x68747541,%ebx # AuthenticAMD
++ jnz verify_cpu_noamd
++ cmpl $0x69746e65,%edx
++ jnz verify_cpu_noamd
++ cmpl $0x444d4163,%ecx
++ jnz verify_cpu_noamd
++ mov $1,%di # cpu is from AMD
++
++verify_cpu_noamd:
++ movl $0x1,%eax # Does the cpu have what it takes
++ cpuid
++ andl $REQUIRED_MASK1,%edx
++ xorl $REQUIRED_MASK1,%edx
++ jnz verify_cpu_no_longmode
++
++ movl $0x80000000,%eax # See if extended cpuid is implemented
++ cpuid
++ cmpl $0x80000001,%eax
++ jb verify_cpu_no_longmode # no extended cpuid
++
++ movl $0x80000001,%eax # Does the cpu have what it takes
++ cpuid
++ andl $REQUIRED_MASK2,%edx
++ xorl $REQUIRED_MASK2,%edx
++ jnz verify_cpu_no_longmode
++
++verify_cpu_sse_test:
++ movl $1,%eax
++ cpuid
++ andl $SSE_MASK,%edx
++ cmpl $SSE_MASK,%edx
++ je verify_cpu_sse_ok
++ test %di,%di
++ jz verify_cpu_no_longmode # only try to force SSE on AMD
++ movl $0xc0010015,%ecx # HWCR
++ rdmsr
++ btr $15,%eax # enable SSE
++ wrmsr
++ xor %di,%di # don't loop
++ jmp verify_cpu_sse_test # try again
++
++verify_cpu_no_longmode:
++ popfl # Restore caller passed flags
++ movl $1,%eax
++ ret
++verify_cpu_sse_ok:
++ popfl # Restore caller passed flags
++ xorl %eax, %eax
++ ret
++#endif
--- syslinux.spec 16 Apr 2009 18:11:30 -0000 1.59
+++ syslinux.spec 20 Jun 2009 20:10:46 -0000
@@ -7,6 +7,7 @@ License: GPLv2+
Group: Applications/System
URL: http://syslinux.zytor.com/
Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{tarball_vers...
+Patch9: defaults.patch
ExclusiveArch: %{ix86} x86_64
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: nasm >= 0.98.38-1, perl, netpbm-progs
@@ -33,12 +34,18 @@ MEMDISK, which loads legacy operating sy
%prep
%setup -q -n syslinux-%{tarball_version}
+%patch9 -p1
%build
CFLAGS="-Werror -Wno-unused -finline-limit=2000"
export CFLAGS
# If you make clean here, we lose the provided syslinux.exe
#make clean
+rm -f com32/menu/vesamenu.c32
+make -C com32/lib libcom32.a
+make -C com32/gpllib libcom32gpl.a
+make -C com32/menu vesamenu.c32
+test -f com32/menu/vesamenu.c32
make installer
make -C sample tidy
12 years, 9 months
Custom initrd
by Mads Kiilerich
I am using livecd-creator from livecd-tools-024-1.fc11.i586 and need to
customize the initrd. But I have problems making it work and figuring
out what is going on.
I have figured out that livecd-creator through imgcreate creates a
/etc/sysconfig/mkinitrd. When rpms runs mkinitrd from their %post script
then it will exec mkliveinitrd and use the configured module list.
AFAICS livecd-creator then picks up the initrd from /boot, and the end
result after having written the iso to usb with livecd-iso-to-disk is
that it ends up in /syslinux/initrd0.img.
But if I overwrite the /boot/initrd* in %post like this:
/sbin/mkinitrd -f /boot/initrd-$(rpm -q kernel --qf
'%{version}-%{release}.%{arch}\n').img $(rpm -q kernel --qf
'%{version}-%{release}.%{arch}\n')
then it won't be used.
What am I doing wrong? When is the initrd picked up? What is the code flow?
If I make %post preserve /etc/sysconfig/mkinitrd and boots from usb and
restores /etc/sysconfig/mkinitrd and runs
/sbin/mkinitrd -f /mnt/live/syslinux/initrd0.img $(rpm -q kernel
--qf "%{version}-%{release}.%{arch}\n")
then it works as expected.
/Mads
13 years, 7 months
livecd-creator creates ISO without /home
by Martin Dengler
Hi,
I'm getting a .ISO without a /home despite the filesystem rpm being
installed, and I'd really appreciate any tips on debugging this or
hints as to how this might happen.
This is with the example .ks and I can get livecd-creator to work on a
number of other machines. If I chroot and install the same filesystem
rpm again (--force of course, since it's already installed), I do get
a /home.
I'm running:
$ setarch i586 sudo livecd-creator --skip-compression --cache=../cache
-t /home/mtd/xo-soas/images -c
/usr/share/doc/livecd-tools-024/livecd-fedora-minimal.ks
on a machine like:
# uname -r
Linux benderxxx 2.6.29.4-167.fc11.x86_64 #1 SMP Wed May 27 17:27:08
EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
and I'm getting a filesystem like:
http://people.sugarlabs.org/~mtd/soas-xo1/livecd.ext3_listing
The output of the livecd-creator command is:
http://people.sugarlabs.org/~mtd/soas-xo1/livecd.buildlog
Any help much appreciated.
Martin
14 years
livecd on F11
by Bryan Kearney
I am trying to run livecd-creator on F11. I have tried both the released
package and the tips. Both are showing errors. Is the plan to release
version 25 (roughly the tip) on F11? I want to understand which bug to
go after.
Bug in Head
============
File "/home/bkearney/code/livecd/imgcreate/live.py", line 191, in
_unmount_instroot
LoopImageCreator._unmount_instroot(self)
File "/home/bkearney/code/livecd/imgcreate/creator.py", line 938, in
_unmount_instroot
self.__instloop.cleanup()
File "/home/bkearney/code/livecd/imgcreate/fs.py", line 346, in cleanup
Mount.cleanup(self)
File "/home/bkearney/code/livecd/imgcreate/fs.py", line 325, in cleanup
self.unmount()
File "/home/bkearney/code/livecd/imgcreate/fs.py", line 356, in unmount
raise MountError("Unable to unmount filesystem at %s" % self.mountdir)
imgcreate.errors.MountError/home/bkearney/code/livecd/imgcreate/errors.py:40:
DeprecationWarning: BaseException.message has been deprecated as of
Python 2.6
return str(self.message)
: Unable to unmount filesystem at /tmp/imgcreate-DWSrZg/install_root
umount: /tmp/imgcreate-DWSrZg/install_root: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Exception imgcreate.errors.MountError: MountError('Unable to unmount
filesystem at /tmp/imgcreate-DWSrZg/install_root',) in <bound method
x86LiveImageCreator.__del__ of <imgcreate.live.x86LiveImageCreator
object at 0x12ad090>> ignored
Bug in Released Version
=======================
passwd: Success
umount: /tmp/imgcreate-yYJyiT/install_root: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
ioctl: LOOP_CLR_FD: Device or resource busy
Traceback (most recent call last):
File "/home/bkearney/code/adk2/bin/adk", line 6, in <module>
sys.exit(app.main())
File "/home/bkearney/code/adk2/adk/adk.py", line 131, in main
adk.build(cmd, appl, args)
File "/home/bkearney/code/adk2/adk/adk.py", line 76, in build
plugin.run(appliance, self.settings)
File "/home/bkearney/code/adk2/adk/plugins/livecd.py", line 56, in run
creator.configure()
File "/usr/lib/python2.6/site-packages/imgcreate/creator.py", line
732, in configure
self._create_bootconfig()
File "/usr/lib/python2.6/site-packages/imgcreate/live.py", line 197,
in _create_bootconfig
self._configure_bootloader(self.__ensure_isodir())
File "/usr/lib/python2.6/site-packages/imgcreate/live.py", line 604,
in _configure_bootloader
self._configure_syslinux_bootloader(isodir)
File "/usr/lib/python2.6/site-packages/imgcreate/live.py", line 508,
in _configure_syslinux_bootloader
cfg += self.__get_image_stanzas(isodir)
File "/usr/lib/python2.6/site-packages/imgcreate/live.py", line 435,
in __get_image_stanzas
is_xen = self.__copy_kernel_and_initramfs(isodir, version, index)
File "/usr/lib/python2.6/site-packages/imgcreate/live.py", line 362,
in __copy_kernel_and_initramfs
isodir + "/isolinux/initrd" + index + ".img")
File "/usr/lib64/python2.6/shutil.py", line 52, in copyfile
fsrc = open(src, 'rb')
IOError: [Errno 2] No such file or directory:
'/tmp/imgcreate-yYJyiT/install_root/boot/initrd-2.6.31-0.180.rc7.git4.fc12.x86_64.img'
14 years, 1 month
Redirecting livecd-creator output
by Patrice Guay
When I call livecd-creator (livecd-tools version 014 under CentOS 5) and
redirect the output to a standard file, the creation process fails:
# livecd-creator -c minimal.ks -f minimal > output.log
mke2fs 1.39 (29-May-2006)
warning: libgcc-4.1.2-44.el5: Header V3 DSA signature: NOKEY, key ID
e8562897
warning: syslinux-3.36-4.2: Header V3 DSA signature: NOKEY, key ID fabea322
/sbin/scsi_id: option requires an argument -- s
/sbin/scsi_id: option requires an argument -- s
e2fsck 1.39 (29-May-2006)
Installation target minimized to 610900K
resize2fs 1.39 (29-May-2006)
genMinInstDelta data length is 2208 512 byte sectors
/sbin/mksquashfs: invalid option
SYNTAX:/sbin/mksquashfs source1 source2 ... dest [options] [-e list of
exclude dirs/files]
[...]
Error creating Live CD : mksquashfs exited with error (1)
What could explain this behavior?
--
Patrice Guay
patrice.guay(a)nanotechnologies.qc.ca
14 years, 1 month
2 commits - imgcreate/live.py tools/livecd-iso-to-disk.sh
by Jeremy Katz
imgcreate/live.py | 1 +
tools/livecd-iso-to-disk.sh | 2 ++
2 files changed, 3 insertions(+)
New commits:
commit 59aa5640bf2216d1823ce7d552ae8530d44bdabb
Author: Jeremy Katz <katzj(a)redhat.com>
Date: Tue Aug 25 10:59:42 2009 -0400
Fix traceback when implantisomd5 isn't available (Ron Yorston)
diff --git a/imgcreate/live.py b/imgcreate/live.py
index 528840d..c49b358 100644
--- a/imgcreate/live.py
+++ b/imgcreate/live.py
@@ -264,6 +264,7 @@ class LiveImageCreatorBase(LoopImageCreator):
implantisomd5 = "/usr/lib/anaconda-runtime/implantisomd5"
else:
logging.warn("isomd5sum not installed; not setting up mediacheck")
+ return
subprocess.call([implantisomd5, iso])
commit 89720ad085e3996bded0e9570878e56a158232ff
Author: Jeremy Katz <katzj(a)redhat.com>
Date: Thu Aug 20 14:13:41 2009 -0400
Sleep to avoid races (#517477)
Try to sleep a little to avoid racing with system stuff poking at new filesystems
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh
index 0efef58..cd75153 100755
--- a/tools/livecd-iso-to-disk.sh
+++ b/tools/livecd-iso-to-disk.sh
@@ -28,6 +28,7 @@ usage() {
}
cleanup() {
+ sleep 2
[ -d "$CDMNT" ] && umount $CDMNT && rmdir $CDMNT
[ -d "$USBMNT" ] && umount $USBMNT && rmdir $USBMNT
}
@@ -598,6 +599,7 @@ if [ "$homesizemb" -gt 0 ]; then
done
mke2fs -j /dev/mapper/EncHomeFoo
tune2fs -c0 -i0 -ouser_xattr,acl /dev/mapper/EncHomeFoo
+ sleep 2
cryptsetup luksClose EncHomeFoo
losetup -d $loop
else
14 years, 1 month
Implant md5sum
by Ron Yorston
I've been using the livecd-tools from the CentOS LiveCD Project, but the
same issue seems to apply in Fedora. If an implantisomd5 binary can't
be found a warning is printed but an attempt is made to run the binary
anyway. This results in a Python traceback:
isomd5sum not installed; not setting up mediacheck
Traceback (most recent call last):
File "/usr/bin/livecd-creator", line 133, in ?
sys.exit(main())
File "/usr/bin/livecd-creator", line 123, in main
creator.package()
File "/usr/lib/python2.4/site-packages/imgcreate/creator.py", line 657, in package
self._stage_final_image()
File "/usr/lib/python2.4/site-packages/imgcreate/live.py", line 308, in _stage_final_image
self.__create_iso(self.__isodir)
File "/usr/lib/python2.4/site-packages/imgcreate/live.py", line 274, in __create_iso
self.__implant_md5sum(iso)
File "/usr/lib/python2.4/site-packages/imgcreate/live.py", line 286, in __implant_md5sum
subprocess.call([implantisomd5, iso])
UnboundLocalError: local variable 'implantisomd5' referenced before assignment
Sticking in a return statement makes it work:
def __implant_md5sum(self, iso):
"""Implant an isomd5sum."""
if os.path.exists("/usr/bin/implantisomd5"):
implantisomd5 = "/usr/bin/implantisomd5"
elif os.path.exists("/usr/lib/anaconda-runtime/implantisomd5"):
implantisomd5 = "/usr/lib/anaconda-runtime/implantisomd5"
else:
print >> sys.stderr, \
"isomd5sum not installed; not setting up mediacheck"
return
subprocess.call([implantisomd5, iso])
Ron
14 years, 1 month
Makefile
by Jeremy Katz
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 3553dafeccf8461b966ab7d5c327d9e22e9955ad
Author: Jeremy Katz <katzj(a)redhat.com>
Date: Mon Aug 24 16:41:52 2009 -0400
Bump version
diff --git a/Makefile b/Makefile
index 68cb635..f208c41 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
-VERSION = 025
+VERSION = 026
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
14 years, 1 month
resize2fs: No space left while trying to resize ... ext3fs.img
by Warren Togami
Trying livecd-creator as of git 1d215ebcf584b2bc19dece88b7f75944de2ad3f0
with August 20th rawhide + ntfsprogs to fix the broken dep.
Installing: plymouth-gdm-hooks ##################### [988/988]
Removing password for user root.
passwd: Success
e2fsck 1.41.8 (11-July-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
fedora-livec-x86: 78634/196608 files (0.1% non-contiguous),
534825/786432 blocks
e2image 1.41.8 (11-July-2009)
resize2fs 1.41.8 (11-July-2009)
Resizing the filesystem on
/opt/tmp/imgcreate-3h7N84/tmp-1Tw3yD/ext3fs.img to 534815 (4k) blocks.
/sbin/resize2fs: No space left on device while trying to resize
/opt/tmp/imgcreate-3h7N84/tmp-1Tw3yD/ext3fs.img
Please run 'e2fsck -fy /opt/tmp/imgcreate-3h7N84/tmp-1Tw3yD/ext3fs.img'
to fix the filesystem
after the aborted resize operation.
/usr/lib/python2.6/site-packages/imgcreate/errors.py:45:
DeprecationWarning: BaseException.message has been deprecated as of
Python 2.6
return unicode(self.message)
Error creating Live CD : resize2fs returned an error (1)! image to
debug at /tmp/resize-image-2HbZ8I
14 years, 1 month
imgcreate/fs.py imgcreate/live.py
by Jeremy Katz
imgcreate/fs.py | 7 +++++--
imgcreate/live.py | 5 ++---
2 files changed, 7 insertions(+), 5 deletions(-)
New commits:
commit 1d215ebcf584b2bc19dece88b7f75944de2ad3f0
Author: Jeremy Katz <katzj(a)redhat.com>
Date: Wed Aug 19 16:47:24 2009 -0400
Use resize2fs -M (minimal) more
We were keeping track of the minimal size and then passing that again. Just
use resize2fs -M again for this case
diff --git a/imgcreate/fs.py b/imgcreate/fs.py
index 31e5ca3..b8d61db 100644
--- a/imgcreate/fs.py
+++ b/imgcreate/fs.py
@@ -553,7 +553,7 @@ class DeviceMapperSnapshot(object):
except ValueError:
raise SnapshotError("Failed to parse dmsetup status: " + out)
-def create_image_minimizer(path, image, minimal_size):
+def create_image_minimizer(path, image, target_size = None):
"""
Builds a copy-on-write image which can be used to
create a device-mapper snapshot of an image where
@@ -580,7 +580,10 @@ def create_image_minimizer(path, image, minimal_size):
try:
snapshot.create()
- resize2fs(snapshot.path, minimal_size)
+ if target_size is not None:
+ resize2fs(snapshot.path, target_size)
+ else:
+ resize2fs(snapshot.path, minimal = True)
cow_used = snapshot.get_cow_used()
finally:
diff --git a/imgcreate/live.py b/imgcreate/live.py
index 756097b..528840d 100644
--- a/imgcreate/live.py
+++ b/imgcreate/live.py
@@ -271,11 +271,10 @@ class LiveImageCreatorBase(LoopImageCreator):
try:
makedirs(self.__ensure_isodir() + "/LiveOS")
- minimal_size = self._resparse()
+ self._resparse()
if not self.skip_minimize:
- create_image_minimizer(self.__isodir + "/LiveOS/osmin.img",
- self._image, minimal_size)
+ create_image_minimizer(self.__isodir + "/LiveOS/osmin.img", self._image)
if self.skip_compression:
shutil.move(self._image, self.__isodir + "/LiveOS/ext3fs.img")
14 years, 1 month