Anaconda/Features/ReworkLiveCD

From FedoraProject

< Anaconda | Features(Difference between revisions)
Jump to: navigation, search
(Current status)
Line 4: Line 4:
  
 
Rethink livecd installation and figure a way to sanely support.
 
Rethink livecd installation and figure a way to sanely support.
RHEL use case is virt (RHEV). Fedora use case are the live CDs.
+
RHEL use case is virt (RHEV). Fedora use case are the live CDs.
  
python-imgcreate needs to be more tightly integrated with Anaconda. It currently produces images that are almost, but not quite exactly the same as an Anaconda installed system. In order to accomplish this Anaconda needs to be more modular so that things like hooking the fstab generation or bootloader type can be accomplished. The goal is to move functionality out of python-imgcreate and into Anaconda provided (an maintained) classes. Eventually python-imgcreate may become part of Anaconda to simplify maintenance of the interface.
+
The creation of live cd/dvd media should use Anaconda instead of python-imgcreate. Currently we have to maintain logic in both places and the final install is not the same since two different methods are used to populate the target image. We then promote installing from livecd's to the user's system, resulting in a system that really wasn't built by Anaconda.
  
The move to the pyanaconda module and the storage system rewrite move us in the right direction.
+
lorax is what builds the install trees and creates the boot media. It is the logical place to maintain any live image creation code. The treebuilder branch goes a long ways towards making this possible, but it needs to be enhanced to use Anaconda to install to the target image file instead of the custom templates that it uses for boot media.
 
+
Here are some of the things that need to be exposed by Anaconda
+
* bootconfig hook - called after package install, but before kickstart %post. Used to create bootloader config.
+
* fstab creation
+
* _get_kernel_versions - list of installed kernels. Used to setup custom bootloaders
+
* filesystem hook - creation, mounting, sparse image creation, squashfs, construction of iso
+
* custom dracut.conf and mkinitrd.conf
+
  
 
== Owner ==
 
== Owner ==
Line 23: Line 16:
 
* Targeted release: Fedora 17
 
* Targeted release: Fedora 17
 
* Last updated: 2011-09-21
 
* Last updated: 2011-09-21
* Percentage of completion: 55%
+
* Percentage of completion: 75%
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 30: Line 23:
  
 
Parts to build
 
Parts to build
* kickstart to image processing using virt-install
+
* kickstart to image processing using virt-install (WORKS)
 
* Enhancements to anaconda to allow kickstarts to modify anaconda behavior via a plugin API
 
* Enhancements to anaconda to allow kickstarts to modify anaconda behavior via a plugin API
* creation of squashfs filesystem
+
* creation of squashfs filesystem (WORKS)
* move installed files to squashfs filesystem
+
* move installed files to squashfs filesystem (WORKS)
* create iso to boot the squashfs filesystem
+
* create iso to boot the squashfs filesystem (WORKS)
 +
* Integrate these into lorax and a new application owned by the lorax package
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
  
 
* Less bugs, more features
 
* Less bugs, more features
 +
* Logic for releases only needs to be maintained in lorax, which makes boot media, and in anaconda the installer as opposed to maintaining specific information in python-imgcreate and livecd-creator.
  
 
== Scope ==
 
== Scope ==
  
 
* anaconda
 
* anaconda
* anaconda storage
+
* lorax (treebuilder branch)
* livecd-tools
+
* python-imgcreate
+
  
 
== Test Plan ==
 
== Test Plan ==
Line 54: Line 47:
  
 
== Contingency Plan ==
 
== Contingency Plan ==
 +
 +
* Continue to use python-imgcreate
  
 
== Documentation ==
 
== Documentation ==

Revision as of 17:46, 21 September 2011

Contents

Rework current livecd support

Summary

Rethink livecd installation and figure a way to sanely support. RHEL use case is virt (RHEV). Fedora use case are the live CDs.

The creation of live cd/dvd media should use Anaconda instead of python-imgcreate. Currently we have to maintain logic in both places and the final install is not the same since two different methods are used to populate the target image. We then promote installing from livecd's to the user's system, resulting in a system that really wasn't built by Anaconda.

lorax is what builds the install trees and creates the boot media. It is the logical place to maintain any live image creation code. The treebuilder branch goes a long ways towards making this possible, but it needs to be enhanced to use Anaconda to install to the target image file instead of the custom templates that it uses for boot media.

Owner

Current status

  • Targeted release: Fedora 17
  • Last updated: 2011-09-21
  • Percentage of completion: 75%

Detailed Description

The only reliable way to create a livecd that works exactly like a DVD install is to use anaconda to handle the livecd creation instead of livecd-creator. The way to do this is to use the netboot.iso or dvd iso created by pungi+lorax. Everything else is a pale imitation. The plan, as it currently stands, is to use virt-install to process the kickstart into an image. The files from that will then be wrapped up inside a squashfs filesystem and wrapped in a bootable iso as we currently do for Live CD creation.

Parts to build

  • kickstart to image processing using virt-install (WORKS)
  • Enhancements to anaconda to allow kickstarts to modify anaconda behavior via a plugin API
  • creation of squashfs filesystem (WORKS)
  • move installed files to squashfs filesystem (WORKS)
  • create iso to boot the squashfs filesystem (WORKS)
  • Integrate these into lorax and a new application owned by the lorax package

Benefit to Fedora

  • Less bugs, more features
  • Logic for releases only needs to be maintained in lorax, which makes boot media, and in anaconda the installer as opposed to maintaining specific information in python-imgcreate and livecd-creator.

Scope

  • anaconda
  • lorax (treebuilder branch)

Test Plan

User Experience

Dependencies

Contingency Plan

  • Continue to use python-imgcreate

Documentation

Release Notes