Summary of today's encrypted & advanced storage upgrade target IRC discussion (and earlier's multi-target discussion)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(work-in-progress flow diagram)

So if you decide to upgrade Fedora, and your Fedora is actually
upgradeable (it's one release back), you won't get hub #1 in the
installer
(http://linuxgrrl.com/fedora-ux/Projects/Anaconda/Prototypes/Screens/PNG-old/02-preinstall_hub.png )... you will pass go and skip directly to hub #2: http://linuxgrrl.com/fedora-ux/Projects/Anaconda/Prototypes/Screens/PNG-old/03-progress_hub2.png 

For simple system configurations, say a laptop with an upgradeable
Fedora that has one local disk, this is no problem. The basic steps are:

1) Get a list of storage devices
2) Scan/probe the storage devices to look for Linux that is Fedora that
is upgradeable (look at /root partition)
3) Offer to upgrade it
4) You're whisked away to the anaconda network configuration dialog
followed by hub #2 and your upgrade happens happily

This is sadly not so simple for more complex cases:

#1 MULTIPLE UPGRADE TARGETS
===========================

If we look around and find multiple copies of Fedora that could be
upgraded, we don't know which one you mean to upgrade. We could either
pick one (most recent? oldest? newest? first one we saw?) or ask the
user which one they want.

If we auto-pick, we need to let the user know in some shape or form
what's going on. If we let them pick, we need a screen design for that.
Here's what we came up with this week:

http://linuxgrrl.com/fedora-ux/Projects/Anaconda/Prototypes/Previews/multi-upgrade.png

#2 ENCRYPTED DISKS 
==================

If you want to upgrade and you've got one or more encrypted disks, we
can't probe the encrypted disks without prompting you for a password.
And in many cases, you can't provide us the password without selecting
your correct keyboard layout. Which the UI for right now is in hub #1
which you won't see during upgrade.

Some users encrypt just home, but some encrypt the whole enchilada.
There was some discussion that /boot or initramfs might reveal Fedora
upgrade targets without the need for decrypting, so instead of having
the user play peek-a-boo with every single encrypted disk looking for
their Fedora we could make an intelligent guess and ask them only to
unlock those that have a good possibility of being upgrade targets. But
there is a possible security concern here as well if we make it too easy
to discover a Fedora upgrade target on encrypted disks, I think?

The approach we discussed for this encrypted disk case today roughly
proceeds thusly across three sub-cases:

1) Does the user have any encrypted disks? No. Proceed as normal.

2) Does the user have both unencrypted and encrypted disks? Probe the
(non-networked/advanced) unencrypted ones.

   2.1) If you find valid unencrypted upgrade targets, list them out as
in the "multi upgrade targets" case #1 above and allow the user to
select between them, but also have an option on the screen to probe
encrypted disks as well. If the user selects to probe encrypted disks as
well, provide them a list of the disks with a dialog to enter the
password for each. The password dialog should have a drop-down that is
pre-populated with keyboard layouts related to the language they chose
on the first screen, with a 'More layouts ...' option that pops up a
complete searchable list of keyboard layouts.

  2.2) If you do not find valid unencrypted upgrade targets, offer to
allow the user to quit, do a full install, or probe the encrypted disks.
If the user selects to probe encrypted disks as well, provide them a
list of the disks with a dialog to enter the password for each. The
password dialog should have a drop-down that is pre-populated with
keyboard layouts related to the language they chose on the first screen,
with a 'More layouts ...' option that pops up a complete searchable list
of keyboard layouts.

3) Does the user only have encrypted disks? Same as case 2.2 above.


#3 NETWORK DISKS
================

If you want to upgrade and your upgrade target is on network / advanced
storage, depending on how many storage devices pop up in the list
connected to the system, it may take a very, very long time to probe
each and every one in search for an upgradeable Fedora target.

A possible procedure to address this that we discussed today:

1) User enters Anaconda and wants to upgrade (they select upgrade from
syslinux)

2) Anaconda retrieves a list of all (non-network/advanced) storage
devices attached to the system.

3) Anaconda probes these non-network/advance storage devices for
upgradeable targets.

4) Whether or not Anaconda finds upgradeable targets locally, it returns
its findings on a screen to the user, asking them if the one they want
to upgrade is there, or if they are looking for a different one. We
offer both the opportunity to scan encrypted disks as in issue #2 above,
or to scan network/advanced devices. (If we find no upgradeable targets,
we also offer to do a full install or exit.) 

5) If user opts in to scanning network/advanced devices, we present the
storage filter UI to them, and ask them which devices they'd like to
look for Fedora upgrade targets on

6) User selects some devices (hopefully not to many) and we do the
full /root search for upgradeable Fedoras. During this process, the user
sees a full-screen progress animation (not a progress bar, since we
don't know how long it will take) with some status information as to
what we're actually doing.

7) We present any upgradeable targets we found on the network devices
alongside the local upgradeable targest and ask the user to pick which
one to upgrade. If we found none, we offer the opportunity to again look
in encrypted disks, select other (different) network deviecs looping
back to step 5 above, or quit / do a full install.

THE MOST ELEGANT SOLUTION
=========================

Rather than going through the hassle of selecting and typing in the
password to unlock / finding a complex storage device thru the filter
UI, Will came up with an approach that eliminates the need to find what
you want to upgrade - make preupgrade the defacto upgrade method. Then
we don't need all this handling of these 3 odd and complex cases.

However, this means preupgrade will need good CLI support.

It also means it may need some kind of handling / support in repos
themselves to point to the next version repo. (Most repos have a
convention where just the release number changes in the repo URL, but
maybe someone is using a Satellite server or otherwise has
nonstandardized URLs between releases.)

It also means, for disconnected users / users with poor network / users
who just want to upgrade using the DVD they got from a conference,
preupgrade would need to support preupgrade via install media. Maybe
using some kind of autostart file on the DVD when you mount it to the
system you want to upgrade?

I don't know which parts of this are immediate and which are bluesky,
but this is the discussion as I followed it today. :)

~m

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux