Runtime installer updates - updates.img
- goal: update the installer without
- rebuilding installer images (initrd.img, install.img) with lorax
- rebuilding anaconda, or blivet, or pykickstart (python) package
- use cases:
- debugging and testing
- esp. useful for issues not reproducible locally
- hotfix update (Fedora common bugs)
Update images
- compressed archives of filesystem overlays
- create:
(find . | cpio -c -o | xz -9) > ../$UPDIMAGE
- extract:
xzcat -dc $UPDIMAGE | cpio -id
- update target
- initrd image - "initrd overlay"
- dracut / initramfs stage
- fetch installer image, kickstart, driver updates, installer image updates
- installer image - "updates image"
- environment of anaconda installer application
Dracut stage - initrd overlay
- applied on top of initrd root
- anaconda dracut modules and scripts
- example: debugging parsing kickstart in initramfs:
/usr/sbin/parse-kickstart
- dracut patches
- applying the overlay
- pxe installation
append initrd=test/rv/r72/initrd.img,test/rv/r72/initrd.overlay.img stage2=http://10.34.39.2/trees/rv/r72 repo=http://download.eng.brq.redhat.com/pub/rhel/released/RHEL-7/7.2/Server/x86_64/os/ ip=ens3:dhcp rd.break=pre-pivot
- direct kernel boot in virt-manager
Anaconda stage - installer image overlays
- installer environment root filesystem overlay
- applied during dracut stage
- RHEL 7, Fedora (RHEL 6 - is basically limited to updating installer - doesn't do root fs overlay)
- Anaconda - no need to rebuild anaconda package
- but also other stuff
- modified config files
/etc/NetworkManager/NetworkManager.conf
file to increase logging level
- updated rpm package (dependencies?)
- adding packages (new features)
- adding debugging tools
Providing the image:
- boot options
- kicstart command
- default location in installation repo
- default location in initramfs image
updates.img
- boot option
- network:
inst.updates=http://10.34.39.2/updates.img
- disk device (eg USB stick):
inst.updates=hd:sda1:/updates.img
- specification by
- kernel device name:
/dev/sda1
,sda1
- filesystem label:
LABEL=FLASH
- filesystem UUID:
UUID=8176c7bf-04ff-403a-a832-9557f94e61db
- kickstart command
updates http://10.34.39.2/updates.img
- default location
- installation tree:
- images/updates.img, images/product.img
- can be added in lorax build process
- initrd:
- unpacked image in
/updates
product.img
- part of OS installation tree
- product specific modifications:
- css stylesheet - modifying look of installer
- product specific installer code - installclass module
- installclass:
- python module
- no defined API, may need to be updated for releases
- FedoraBaseInstallClass
- modifications:
- stylesheet to be used
- default filesystem (server: xfs)
- default software selection (package environment)
- default partitioning (atomic)
Fedora flavors
- Server, Workstation, Cloud, Atomic
- product packages: fedora-productimg-server (-workstation, -cloud, -atomic)
- kickstart for composing Fedora-Cloud Spin includes the right package
- the package contains
- /usr/share/lorax/product/ which is picked by lorax during compose to generate images/product.img
- /usr/share/fedora-productimg/product.img
- https://fedoraproject.org/wiki/Anaconda/ProductImage