Commit Graph

256 Commits

Author SHA1 Message Date
Peter Jones
a05348ee9f Look for "BOOT${efiarch}.EFI" in mkefiboot as well.
The aarch64 change to use shim (6907567) also stopped using mixed-case
names for BOOT${efiarch}.efi (so it's always .EFI and ${efiarch} is X64
IA32 AA64 etc. now), and mkefiboot needs to match that.

Related: rhbz#1043274
Related: rhbz#1100048
2014-10-07 10:53:08 -04:00
Brian C. Lane
1688a3c3a9 livemedia-creator: Make sure ROOT_PATH exists (#1144140)
If ROOT_PATH doesn't exist when making a tar file, create it first.

Related: rhbz#1144140
(cherry picked from commit da68471b33)
2014-09-23 11:49:02 -07:00
Brian C. Lane
c8afae35b4 livemedia-creator: Add ppc64 live creation support (#1102318)
The ppc config files were missing from the live config_files directory
and ppc needs the correct lib directory so lmc has been switched to use
ArchData driven from the installed kernel arch.

Resolves: rhbz#1102318
(cherry picked from commit 59f256e989)
2014-08-27 16:40:50 -07:00
Brian C. Lane
bb445e2deb livemedia-creator: Padd disk size by 2MiB
When using GPT it reserves a few more sectors at the end of the disk for
the copy of the GPT so pad the size of the partitions in the kickstart
by 2MiB instead of 1MiB to account for this.
2014-08-08 15:38:33 -07:00
Brian C. Lane
ffa40722dd livemedia-creator: Run setfiles after no-virt installation
Depending on the environment that --no-virt is run inside the resulting
filesystem may need to have the SELinux labels updates. Run setfiles on
the new filesystem after the anaconda run has finished.

eg. when run from inside mock the labels will be incorrect.
2014-08-06 09:11:59 -07:00
Colin Walters
611cef1823 https is a sane package source URL scheme
Add https as a URL source and use list comprehension to check the
supported protocols.
2014-07-31 14:29:02 -07:00
Brian C. Lane
c875a72020 livemedia-creator: close the socket when done
In some cases the socket may not be closed, so make sure it is to
prevent hangs when shutting down the virt.
2014-07-16 11:50:25 -07:00
Brian C. Lane
41b58f8f6c livemedia-creator: Allow the boot.iso to be shared
This allows the boot.iso to be used by multiple instances of lmc (or
virt-install if they also set --disk shareable=on)
2014-07-09 10:05:18 -07:00
Brian C. Lane
5f96701caf livemedia-creator: log more failure information
This switches on the rc checking in execWithRedirect and logs the error
it raises.
2014-07-08 13:24:58 -07:00
Brian C. Lane
fd4afe2530 livemedia-creator: drop console=ttyS0
This no longer seems to be needed, and causes images created without
passing --vnc vnc to start up with a serial console. If you need a
serial console you can pass it using --kernel-args
2014-07-08 13:24:58 -07:00
Brian C. Lane
ee54cc6c31 livemedia-creator: Log the line that caused the failure
Sometimes it can be hard to tell exactly what triggered the error
detection, so log the line that matched.
2014-07-08 13:24:58 -07:00
Brian C. Lane
380a6ddd6d livemedia-creator: add more errors
Add check for running traceback script and when the retry fails.

This also indicates something went wrong with the installation, exit
when they are seen in the logs.

Also drop looking for WARNING in the regex errors, they will be errors
after the syslog level name remap patch goes into anaconda.
2014-07-08 13:24:58 -07:00
Chris Lumens
b7be1d97fe Allow doing non-URL installs if using virt.
In this case, we don't need to pass a repo parameter to anaconda.  It's running
in a VM and knows how to deal with a kickstart file.
2014-07-07 10:01:43 -04:00
Peter Jones
c789f20b66 Don't emit media labels with spaces in them.
Spaces cause various bugs like #923374 and #855849 , and it would be
better if we just didn't use them.

Note that there's a corresponding pungi change to go with this.

Signed-off-by: Peter Jones <pjones@redhat.com>
2014-07-01 11:59:19 -04:00
Brian C. Lane
29de1d43a5 livemedia-creator: Ignore IGNORED errors in anaconda logs 2014-06-26 13:01:59 -07:00
Brian C. Lane
b22a7df476 livemedia-creator: Handle virt-install failure cleanup
Unmount the iso and remove the disk, if it exists.
2014-06-19 16:43:39 -07:00
Brian C. Lane
d79222e8ea livemedia-creator: Fail when there are missing packages
Watch the logs for  WARNING packaging: .* requires .* which indicates
that there are missing packages and it is sitting at a prompt waiting
for user input.
2014-06-19 16:43:39 -07:00
Colin Walters
66359415be Add --add-template{,-var}
What I need is to make something like the traditional DVD which also
includes packages.  At present this is apparently handled by the
entirely separate pungi tool.

At the moment for me, it's the least bad option to modify lorax to
inject data from an external source than to create a new tool, or
attempt to also modify pungi to do this.

This would also allow pungi's DVD creation to eventually be a set of
external templates for Lorax.
2014-05-12 16:04:28 -07:00
Brian C. Lane
d25c0b0594 Update copyright statements 2014-05-09 15:13:39 -07:00
Brian C. Lane
1807a39ace livemedia-creator: Cleanup docstrings
Start using Sphinx style docstrings.
2014-05-09 11:46:37 -07:00
Brian C. Lane
833d64d1f7 livemedia-creator: Cleanup some style issues 2014-05-09 09:28:01 -07:00
Brian C. Lane
0094fab0d4 Cleanup other misc pylint warnings 2014-05-09 08:10:41 -07:00
Brian C. Lane
b3e80b7564 livemedia-creator: Copy fsimage if hardlink fails
If the user supplies a fsimage to use for the iso it may not be on the
same filesystem as the working directory. Try to hardlink first, but if
that fails copy the image.
2014-04-28 10:03:11 -07:00
Brian C. Lane
d04a99e8f4 livemedia-creator: Add support for making tarfiles
This adds the --make-tar option which will produce a xz compressed tar
of the root filesystem. This works with either virt-install or no-virt
modes. Use --image-name to set the output filename.

--compression is used to set the compression type to use, which defaults
to xz. Supported types are xz, lzma, gzip and bzip2.

--compress-arg is used to pass arguments to the compression utility.
2014-04-07 10:58:32 -07:00
Brian C. Lane
94e92ee9ea livemedia-creator: Allow disk sizes to be < 1GiB
Anaconda seems to insist on 3G minimum, but that is a different issue.
2014-04-07 10:58:32 -07:00
Brian C. Lane
30591349ca livemedia-creator: Check fsimage kickstart for single partition 2014-04-07 10:58:32 -07:00
Brian C. Lane
39f9e14838 livemedia-creator: Output all the errors at once
Instead of handling one error at a time, gather them all up and print
them all in one block and then exit.
2014-04-04 15:01:09 -07:00
Brian C. Lane
19d8304070 livemedia-creator: Make --make-fsimage work with virt-install
--make-fsimage was only working with --no-virt, this re-structures
things so that virt-install partitioned disk images can be converted to
a fsimage. --make-ami was actually already doing this, so change it to
use --make-fsimage and set the default image name to "ami-root.img" with
a label of "AMI".

This also adds the ability to set the fs label on iso fsimage and
fsimages created with --make-fsimage and --make-ami by passing
--fs-label, but note that bootable iso's expect the Anaconda label.
2014-04-04 15:01:02 -07:00
Brian C. Lane
b73aeb92a9 livemedia-creator: Add option to create qcow2 disk images
This adds the --qcow2 option to create qcow2 disk images in virt and
no-virt modes. You can pass extra options to qemu-img with --qcow2-arg
2014-03-13 14:10:44 -07:00
Brian C. Lane
0a547d8f2a Use string for releasever not int (#1067746)
environmental variables need to be strings and there is no compelling
reason to force this to an int.

Related: rhbz#1067746
2014-02-28 16:44:56 -08:00
Brian C. Lane
d9eda042f8 livemedia-creator: Set the product and release version env variables (#1067746)
When doing an image install there is no .buildstamp file to pull the
information from so use the cmdline variables (or their defaults) and
pass them to anaconda in the environment.

Resolves: rhbz#1067746
2014-02-21 09:57:47 -08:00
Brian C. Lane
04ba927777 livemedia-creator: virt-image needs ram in MiB not KiB (#1061773)
Resolves: rhbz#1061773
2014-02-07 14:19:56 -08:00
Brian C. Lane
0ae9e79a72 livemedia-creator: Use findkernels instead of KernelInfo
It only uses it for the arch, but findkernels properly excludes rescue
images and handles the new + seperator for kernel flavor.
2014-01-14 16:06:41 -08:00
Brian C. Lane
dc017445ff Print error when kickstart is missing (#1052872) 2014-01-14 11:29:30 -08:00
Brian C. Lane
4b0acdc567 livemedia-creator: Cleanup temp yum files (#1025837) 2013-11-19 10:24:22 -08:00
Brian C. Lane
fca6a13875 livemedia-creator: Add minimal disk example kickstart (#1019728)
Also adds a check for a bad url repo, and fix ram calculation for
appliance mode. Updates the README.livemedia-creator documentation.

Resolves: rhbz#1019728
2013-11-01 10:27:24 -07:00
Brian C. Lane
5e589be004 Add macboot option (#1012529)
Add a macboot option to lorax and both macboot and nomacboot to lmc.

Related: rhbz#1012529
2013-09-27 08:58:18 -07:00
Brian C. Lane
0319abbb58 Make sure dracut uses no-hostonly mode 2013-08-14 15:22:25 -07:00
Harald Hoyer
2402b6a85f dracut-nohostonly and dracut-norescue got renamed for dracut >= 030 2013-08-01 09:04:29 -07:00
Brian C. Lane
31dd8048ab livemedia-creator: pass inst.cmdline for headless installs (#985487)
Also add console=ttyS0 so you can run virsh console XX to follow the
install/look for errors.
2013-07-25 15:34:23 -07:00
Brian C. Lane
14fa40556c Stop using /usr/bin/env (#987028) 2013-07-24 13:41:03 -07:00
Brian C. Lane
f88d42a03f livemedia-creator: clarify required package errors (#985340) 2013-07-17 10:34:43 -07:00
Brian C. Lane
23b2ddeb5c livemedia-creator: Fix logic for anaconda test (#958036) 2013-05-24 12:20:56 -07:00
Brian C. Lane
67863bbf03 livemedia-creator: Ignore rescue kernels 2013-04-16 16:31:33 -07:00
Brian C. Lane
12bad32223 Fix import of version
If the import fails it wipes out the global pylorax import.
2013-04-03 16:28:29 -07:00
Mark Hamzy
52070f045c fix version query and add one to the log file
Fix "lorax -V" and add a "version is ???" to the log file so we can easily know
what version of lorax is used to build an iso.
Changed to try/import for versioning because the version file is autogenerated.
2013-04-03 15:43:09 -07:00
Brian C. Lane
fd8684f1af Add yum logging to yum.log 2013-03-12 14:09:21 -07:00
Brian C. Lane
8e84ef10c1 Add filesystem image install support
This adds support for installing to a filesystem image instead of a
partitioned disk image. It requires Anaconda's --dirinstall support.
Also re-organized the code to break it up into smaller methods.

This speeds up iso creation in no-virt mode by removing the need to copy
the filesystem from the partitioned disk image to the filesystem image
that is used to make the squashfs image.
2013-02-12 10:35:52 -08:00
Brian C. Lane
5afa0c631d livemedia-creator: don't pass console=ttyS0
passing console=ttyS0 makes the virt hang until there is input. Remove
it and now it will run unattended in text mode.
2013-01-09 16:31:49 -08:00
Martin Gracik
263618e12a Add --noupgrade option 2012-12-18 12:04:03 +01:00
Brian C. Lane
07c99ae8d0 livemedia-creator: Use SELinux Permissive mode 2012-12-13 15:58:18 -08:00
Brian C. Lane
591891c303 livemedia-creator: use cmdline mode 2012-12-13 15:52:08 -08:00
Brian C. Lane
2b8075af3a use /var/tmp instead of /tmp
Also add a --tmp option so users can specify a top level tmp dir.
2012-10-02 11:35:16 -07:00
Brian C. Lane
97cfc71664 livemedia-creator: use stage2 instead of root 2012-08-21 07:12:23 -07:00
Brian C. Lane
91ff02eae3 livemedia-creator: add location option
--location specifies an iso directory tree to be used by virt-install
instead of the iso. This allows you to update the initrd in the tree for
debugging.

virt-install uses the images/pxeboot/ directory for initrd.img and
vmlinux.

An iso is still required for the LiveOS/squashfs.img stage2 file.
2012-08-21 07:12:23 -07:00
d.marlin
5e677160cd Add a command line option to override the ARM platform.
Passed on to anaconda to make ARM images where the compose hardware
does not match the target hardware.

Signed-off-by: Brian C. Lane <bcl@redhat.com>
2012-08-15 11:09:50 -07:00
Peter Jones
72c1aa9cd3 Add grub2-efi support and Secure Boot shim support.
This adds grub2-efi support in general as well as using the Secure Boot
shim loader on uefi media.
2012-08-13 11:03:40 -04:00
Peter Jones
0f2c6ed007 Fix GPT code to allocate space for /2/ tables.
17408 is the size of the table being made, but there's one at the
beginning and one at the end.
2012-08-13 11:03:40 -04:00
Brian C. Lane
700d5007a3 add logging to lorax 2012-07-30 09:22:10 -07:00
Brian C. Lane
505d5bf164 move live templates into their own subdir of share
live media isn't exactly the same as the Anaconda install media. Right
now this amounts to needing a root= cmdline argument but in the future
there may be other differences.

This also reverts 5437557846 on the new copies of the templates.
2012-07-30 09:22:10 -07:00
Brian C. Lane
134eec24d5 clean up command execution
Switch to using execWith* so that the command and its output can be
logged. To capture the output setup a logger named "program"

livemedia-creator captures all of this into program.log
2012-07-30 09:22:10 -07:00
Brian C. Lane
994ff776c7 livemedia-creator: cleanup logging a bit 2012-07-30 09:22:10 -07:00
Brian C. Lane
de3d3e17b7 livemedia-creator: add some error checking
- Add a check to livemedia-creator for /usr/bin/virt-install (#841566)
- Suggest the correct package for livemedia-creator's libvirt (#841552)
- Add to list of packages needed to build a livemedia-creator iso (#841594)
2012-07-20 17:50:00 -07:00
Will Woods
6080ff3b2a mkefiboot: add --debug
You can use the --debug flag to get debugging output from mkefiboot and
pylorax.imgutils. Helpful!
2012-06-19 19:59:59 -04:00
Brian C. Lane
c143d5b72d Add pollcdrom module to dracut
From Harald Hoyer <harald@redhat.com>:

pollcdrom is used to poll for the install medium. A lot of CDROM drives
are not polled by the kernel correctly, so we have to actively poll for
the medium.
2012-06-11 10:31:57 -07:00
Brian C. Lane
cc384f6e7a livemedia-creator: Hook up arch option
Pass arch to virt-install and make_appliance.
2012-06-01 11:15:31 -07:00
Brian C. Lane
6e2fdfe23f livemedia-creator: Add appliance creation
This adds support for creating an appliance description file for the
disk image. Mako templates are used to make it easy to support other
appliance targets. The included example works with virt-image.
2012-06-01 11:15:21 -07:00
Brian C. Lane
7a23c600c6 livemedia-creator: handle failed mount for ami 2012-06-01 11:15:17 -07:00
Martin Gracik
7e133c7e86 Fix typo in help (#819476) 2012-05-25 08:51:29 +02:00
Martin Gracik
6f3d8b55f3 Add --nomacboot option
Needed for systems without hfsplus support.
2012-05-25 08:47:52 +02:00
Brian C. Lane
c336f4ed06 livemedia-creator: check kickstart for display modes (#819660)
lmc uses script mode. Putting one of these into the kickstart will
confuse it, especially when running in no-virt mode.
2012-05-15 13:38:56 -07:00
Brian C. Lane
9b8c2f9d19 livemedia-creator: Removed unused ImageMount class 2012-05-14 15:09:10 -07:00
Brian C. Lane
eb82d0dccf livemedia-creator: cleanup after a crash
Make sure we don't leave any device-mapper or loop devices laying around
after a crash.
2012-05-14 15:08:59 -07:00
Brian C. Lane
84fdff0e50 livemedia-creator: start using /var/tmp instead of /tmp 2012-05-14 15:08:54 -07:00
Brian C. Lane
878e4c3e85 livemedia-creator: make libvirt module optional
When running with no-virt mode libvirt and virt-install are not needed
so make the import optional and update the usage info reflect that the
virt options are disabled.
2012-05-14 15:08:45 -07:00
Matthew Garrett
3aa1fcadb9 mkefiboot: Add support for disk label files
The Apple boot picker provides drive names by reading small icon files
off the filesystem. Add support for including them.
2012-05-03 10:03:13 -07:00
Matthew Garrett
0ec326eb3c mkefiboot: Copy Mac bootloader, rather than linking it
The Mac firmware needs special-casing for hardlinked bootloaders, and
it's kind of awkward to handle that in python. Just copy them for now
instead.
2012-04-13 12:54:41 -07:00
Martin Gracik
366cd617b2 Remove workdir if it was created by lorax (#807964) 2012-04-13 10:44:15 +02:00
Matthew Garrett
bb18614c3b mkefiboot: Make Apple boot images appear in the startup preferences
There's a small amount of additional metadata required for the Mac boot
images to appear as bootable devices in the startup preferencs, so add
support for generating that.

Signed-off-by: Brian C. Lane <bcl@redhat.com>
2012-03-30 13:23:02 -07:00
Brian C. Lane
af99682215 use cache outside the installtree
reenable the yum cache in the tmpdir, this means it doesn't end
up on the final squashfs.img, reducing the boot.iso size from
400M to 154M
2012-03-28 08:38:46 -07:00
Brian C. Lane
607bd49ed7 livemedia-creator: update TreeBuilder use for isolabel
TreeBuilder class changed its __init__ so add --volid switch,
length check and isolabel.
2012-03-08 10:01:18 -08:00
Brian C. Lane
3a5fb1415c livemedia-creator: console=ttyS0 not /dev/ttyS0 2012-03-02 16:41:27 -08:00
Brian C. Lane
69c14b8f84 livemedia-creator: Add support for making ami images
AMI images are un-partitioned filesystem images with a grub.conf that
is read by the pv-grub bootloader used by EC2. Most of the actual work
making the AMI is done in the kickstart. This just creates the image
file.
2012-03-02 16:41:27 -08:00
Martin Gracik
20fa29b32b Add option to specify volume id on command line (#786834) 2012-02-28 12:50:34 +01:00
Brian C. Lane
a09806f607 Add dracut convertfs module (#787893)
Fedora 17 changes top level directories like /bin, /lib, etc. to
symlinks to the corresponding dirs in /usr/

dracut can convert old systems to the new layout using its convertfs
module.
2012-02-08 14:55:40 -08:00
Brian C. Lane
0ba566aebe update lorax and livemedia_creator to use isfinal 2012-01-30 11:02:56 -08:00
Brian C. Lane
befdc218ac livemedia-creator: Mount iso if rootfs is LiveOS
In the latest method for booting the rootfs is in the LiveOS
directory of the media, not appended to the initrd. Detect this
and mount the iso and pass the CDLABEL to virt-install.
2012-01-25 17:23:25 -08:00
Martin Gracik
1bbc546147 Allow specifying buildarch on the command line (#771382)
Some repos may contain anaconda packages for more architectures,
so it's not possible to get the right buildarch.
This patch allows optional specifying of the buildarch on the
command line when running lorax.
If the buildarch is not specified manually, lorax tries to get
it from the anaconda package as before.
If there's no anaconda package in the repository, don't fallback
to the system architecture and continue, because this is pointless.
We need the anaconda package.
2012-01-10 09:34:01 +01:00
Brian C. Lane
b41ab87427 lorax: Add option to exclude packages
Sometimes the repos you are using have broken deps. Now you
can exclude packages with -e or --excludepkgs
2012-01-04 13:39:12 -08:00
root
dc815d10fb better debug, handle relative output paths 2012-01-03 16:32:50 -08:00
Brian C. Lane
a98134b316 lorax: check for output directory early and quit 2011-12-20 17:48:45 -08:00
Brian C. Lane
10acb5e5b9 lorax: Add --proxy command 2011-12-20 17:48:44 -08:00
Brian C. Lane
0434b7d47a lorax: add --config option 2011-12-20 17:48:44 -08:00
Brian C. Lane
7149adee25 Add no-virt mode to livemedia-creator
This runs anaconda directly, using the --image install feature. The host
system should be the same release as the target system in order to avoid
unexpected problems.
2011-12-20 14:59:58 -08:00
Brian C. Lane
f65849d87c Add livemedia-creator
livemedia-creator uses an anaconda install media iso to install to a
file image. virt-install is used to execute the kickstart. lorax is used
to post-process the image file and create a bootable .iso from it.

Future additions will allow creation of EC2 images and output xml
details about the install.
2011-12-20 14:59:57 -08:00
Will Woods
7ea8baeae3 fix mkmacboot truncating the output file
Use open(imgfile, 'r+b'), not 'wb'. Duh.
2011-11-01 13:35:24 -04:00
Will Woods
417fdf93cc mkefiboot: add comment about where the number 17408 comes from 2011-10-31 15:02:02 -04:00
Will Woods
0fd48ba936 fix typo in mkefiboot's macbless() 2011-10-25 17:23:24 -04:00
Will Woods
87eef3ff00 mkefiboot: use argparse, improve --help output 2011-10-25 16:04:09 -04:00
Will Woods
3ec9a12bf6 fixups for Apple EFI support in mkefiboot
- actually import glob
- forgot quotes on 'if opt.imgtype == "apple"'
2011-09-07 12:05:29 -04:00
Will Woods
8aba809aa7 Add --apple and --icon to mkefiboot
This adds support for Apple EFI images to mkefiboot. Ported from work on
the master branch by Matthew Garrett <mjg59@srcf.ucam.org>.
2011-09-06 12:46:41 -04:00
Will Woods
ad25ae85cb mkefiboot: clarify construction of dm partition dev 2011-08-30 13:10:58 -04:00
Will Woods
4343b12fc0 mkefiboot fixups (fix imports, mkdosimg, add to setup.py) 2011-05-12 17:28:53 -04:00
Will Woods
6a5851d53b mkefiboot: make efi boot images using imgutils
This adds the new "mkefiboot" cmd, which creates an efiboot img in the
magical way that EFI requires. There doesn't seem to be a good tool for
this (unlike the existing tools for all the other weirdo boot image
types) so it was necessary to create one.
2011-05-09 15:33:54 -04:00
Martin Gracik
213125199d Print a message when no arguments given (#684463) 2011-03-14 09:43:12 +01:00
Martin Gracik
d0f2c1a936 Move lorax executable to sbin 2010-12-17 16:46:44 +01:00