User:Duffy/Default Install Proposal

= Proposal =

I would like to propose that the Fedora project use the full anaconda installer environment as default Fedora install method.

Currently (and since ~Fedora 12) the default media promoted for installation of Fedora both via our website at fedoraproject.org and at conferences and other events is the Desktop Live Media ISO, delivered via pressed optical media at events, and for website users typically delivered via home-burned optical media or live usb media created via dd, livecd-creator on the command line, or the Live USB Creator GUI (the latter the most popular for non-Linux systems.)

Live media affords some clear advantages over traditional installers, primarily in its ability to be used via USB sticks as optical drives are less ubiquitous in laptops and its singularity as one image you can try-before-you-buy to test out drivers, rescue machines, and use as a full installer. It also affords a gee-whiz factor.

However, there are some serious concerns about the stability and overall user experience in promoting live media as the primary installation method of Fedora. There is also a larger concern about the future direction and maintenance of the spins project. Creating and maintaining usable live media is not a trivial task and many of our spins maintainers have understandably burnt out. Reconsidering how we deliver installation of Fedora to our end users may offer an opportunity to help this situation.

First we'll walk through the advantages and disadvantages of live media, then we'll specifically address how switching to a full install environment affects each point and try to assess via discussion whether or not this is a proposal worth considering.

Advantages of Live Media

 * 1) Try-before-you buy - not sure if Fedora will work with your video card or other hardware? You can easily pop it in and test it out without the trouble of a full install.
 * 2) Very fast install time (due to use of dd?)
 * 3) Convenient transition from trying to buying
 * 4) Only one image to download for try, install, and rescue
 * 5) Constrained / curated package set -  no burden on the user to configure too much up front
 * 6) Live environment means easier debugging - it's easier to take screenshots of crashes and look up helpful information on line to assist with installation
 * 7) Viable long-term solution for those with computer access but no administrative control - e.g., children with access to school & library computer labs) to provide access to free software (if persistence worked well)
 * 8) It works off of USB, which is good for the many laptops and slim towers today that come without optical drives.

Disadvantages of Live Media

 * 1) Live environment is confusing to novice users who don't understand what's going on - They may not realize the environment is on the USB stick, and pull it out while it's running losing data (I have witnessed this multiple times in classroom environments.) They also may think their system is 'installed' when it's not, go about their work, and then lose it on reboot.)
 * 2) Live environment means it's possible to put the system into a state that anaconda won't know how to deal with it and install-to-disk will fail ("a system that actively encourages you to go screw around with things until anaconda can no longer trust how things are set up")
 * 3) Getting it onto the USB stick is non-trivial. There are three ways to do it (dd, liveusb-creator command line, liveusb-creator UI) and no single clear path is promoted.
 * 4) Having to download both the ISO and a client to put the image on a USB stick is a lot to download and hard to figure out for novice users
 * 5) Requires use of isohybrid which means media can't boot on Macs without bootcamp
 * 6) Dangerous option for long-term use because persistence is still not reliable and depending on the brand of USB key it may just die unpredictably.
 * 7) (Needs some confirmation) Less-than-optimal OS layout on filesystem When preparing the image for the live media, the fs gets shrunk, as I understand it. During installation, it gets grown again to the size of the host. This will almost certainly result in a less-than-optimal layout of the OS files in the filesystem, but I'd need to poke at it a bit to see just how it changes things. (noted by Sandeen)
 * 8) Network installations not possible without serious tweaking

Can the full installer provide the advantages of Live Media?
Let's walk through the advantages of live media and see if the full installer can also provide them:


 * 1) Try-before-you-buy - While it's not advertised or often talked about, you can use the anaconda UI to install Fedora to a USB key or external hard drive to try before you buy.
 * 2) Very fast install time -
 * 3) * When I installed Fedora 14 via DVD, it took:
 * 4) ** 1.5 hours (mostly idle) to download the ISO
 * 5) ** 10 minutes to burn the ISO to a DVD and set the computer to burn to DVD
 * 6) ** 45 minutes from starting the install to booting into a running desktop
 * 7) *When I installed Fedora 14 via LiveMedia, it took:
 * 8) ** > 2 active hours and pain to get it downloaded and onto a USB stick
 * 9) ** 10-15 minutes for the meat of the install process, but varies based on drive type (that was an SSD)
 * 10) ** Total elapsed install time after that, including media check, was 45 minutes.
 * 11) Convenient transition from trying to buying - It would be a little less convenient. You would need two USB keys - one for your 'trial' installation of Fedora, the other for the full installer - which you'd use both to create your 'trial' install and your real install to-hard-disk install. You couldn't click a button from the running 'trial' USB install to install to disk - you'd have to reboot using the installer USB key.
 * 12) Only one image to download for try, install, and rescue - You only need to download one ISO with the DVD as well for try & install. I'm not sure about rescue. Can the full installer media be used as a rescue disk or would we need an additional image for this?
 * 13) Constrained / curated package set - It would be possible to make the full installer behave this way too via comps groups juggling.
 * 14) Live environment means it's easier to debug - This is definitely harder to do in the full installer, but you could always use a camera to take screenshots. There isn't a lot of evidence to indicate that users actually take advantage of the live install environment to look up documentation. Anaconda used to have a documentation pane and it was removed because it simply wasn't being used. Note that some developers told me they like the live environment because they can debug anaconda while it's running and get it working again without a reboot. Definitely a narrow edge-case, though.
 * 15) Viable long-term solution for those with computer access but no administrative control - You can use anaconda to install directly to a USB key. How easy this is to produce live USB keys en masse, I'm not sure.
 * 16) It works off of USB, which is good for the many laptops and slim towers today that come without optical drives - With some modifications LiveUSB-creator could make a bootable full install environment on a USB key.

Can the full installer address the disadvantages of Live Media?

 * 1) Live environment is confusing to novice users who don't understand what's going on - The full install environment is clearly its own world and there is no confusion regarding the state of the system when it is fully running, nor is there any temptation to start working on documents that you would then lose if you weren't sure what was really going on.
 * 2) Live environment means it's possible to put the system into a state that anaconda won't know how to deal with it - The full install environment is far more stable and reliable and would likely result in a better overall success rate for users.
 * 3) Getting it onto the USB stick is non-trivial - Since this would be a new delivery method for Fedora, we have the opportunity to develop clear & consistent messaging for it.
 * 4) Having to download both the ISO and a client to put the image on a USB stick - This would still be an issue, but there are other solutions to this (e.g., offer the liveusb-creator as the default download. LiveUSB-creator can download ISOs for you!)
 * 5) Requires use of isohybrid which means media can't boot on Macs without bootcamp - We would still need isohybrid to run anaconda off of a USB stick unfortunately.
 * 6) Dangerous option for long-term use - Data persistence would NOT be an issue with an anaconda-installed USB stick since it's not a live environment.

= Summary =

Disadvantages to this proposal
In summary, we could say that moving to the full installer would have the potential disadvantages:


 * Require a modification of liveusb-creator to support the creation of bootable usb media for the full installer
 * Require modification of release processes, website, and docs at the least
 * Might possibly require a separate rescue image
 * Not require much more time for installation if you start out media-less (the website use-case), but would require more time if you are handed a disc or USB key (the conference / LUG / office case).
 * Require a minor inconvenience - users will need to reboot to install fully while trying out Fedora off of the bootable Fedora USB stick.
 * Make it a little bit harder to take screenshots and debug the installation process when it fails.
 * It is possible though: Hit PrintScreen and you'll get a PNG of the current screen in root's home directory on the target system, /root/anaconda-screenshots. If you don't complete installation, you can still get to the screenshots via tty2 in /tmp/anaconda-screenshots. If you are doing a kickstart install, you can add "autoscreenshot" to the ks file and anaconda will take a screenshot of each screen it comes to and place them in the above directories.

Advantages to this proposal
It would bring several compelling advantages:


 * Anaconda-installed Bootable USB media are going to be more reliable and pose less risk to user data and thus less risk to the impact of outreach efforts such as the Girl Scouts program we recently engaged in.
 * Bootable USB media for Fedora may be easier to create as well as the installer is a single robust method and the same method used for real computer installations.
 * There will be less confusion about the state of the computer when full anaconda is running.
 * Less temptation for users to create documents / bookmarks / conversations / other media that will be lost post-install.
 * The opportunity to present a single, clear and consistent path to getting the bootable installer onto a USB stick.
 * No live environment means no opportunity for changing the state of the system in unpredictable ways, causing difficult-to-impossible-to-debug crashes in installations.
 * An additional feature will be possible: network installs, which are not possible with live installations.
 * Another additional feature will be possible: configuring additional repositories from which to install

= Suggested Path to Moving Forward =


 * Modify comps-groups / anaconda appropriately to provide a sane, curated default package set via the full installer.
 * Consult with desktop SIG on this
 * Modify the website:
 * to provide links to the full installer by default
 * Or (even better) modify the website to provide links to liveUSB creator (link may change based on sniffed OS, offer Win / OS X links to the creator as well)
 * (if needed) Add links to rescue media
 * Modify liveusb-creator:
 * streamline live USB creator to make it clear how to download the appropriate ISO
 * Usability review & redesign for Live USB creator to optimize for new use cases:
 * create bootable anaconda
 * create bootable Fedora or install Fedora to disk
 * Modify liveusb-creator to support the creation of bootable usb media for the installer
 * Modify liveusb-creator to support OS X
 * If additional rescue media images are needed, the creation of these added to the release engineering processes
 * Modify docs to clearly outline new installation steps
 * Development of docs / website tutorials to outline the new try-before-you-buy USB creation process
 * Spins.fedoraproject.org and spins in general.... :( I don't know. Replaced with comps groups?

= Open Questions =


 * Is separate rescue media necessary if we opt for full installer?
 * No, you just pass "rescue" as a boot option.
 * What happens to spins.fedoraproject.org?
 * What happens to spins in general
 * Is the LiveUSB-creator work required to make this happen feasible? Is it something we can put more effort behind?
 * Is full anaconda install to USB feasible for creating bootable Fedora USB keys en masse?
 * If we continued use of isohybrid is there any way to improve the situation for Mac users?
 * What gyrations does the root fs go through when doing a live install? (sandeen)
 * http://git.fedorahosted.org/git/?p=anaconda.git;a=blob;f=pyanaconda/livecd.py;h=2c7c862f5058cefbf7fe068c5037db129a702cf3;hb=HEAD#l188 (clumens)
 * it gets copied over reading directly from the block device, then we randomize the uuid. that's it afaik (dlehman)
 * is there shrinking in between to prepare it for the live image? (sandeen)
 * no, it gets resized (grown) after being copied (bcl)