From Fedora Project Wiki
mNo edit summary
mNo edit summary
Line 2: Line 2:


== Requirements ==
== Requirements ==
* You must have a root (/) partition.
** It must be at least 250 megabytes.
** If you are doing a live install:
*** The minimum space requirement may be > 250MB. It must be at least the same size as the live image itself (~600MB typically?)
*** The filesystem must be the same as the live image's. (A known limitation being worked on.)


== Errors & Discussion ==
== Errors & Discussion ==

Revision as of 18:24, 14 February 2012

Storage

Requirements

  • You must have a root (/) partition.
    • It must be at least 250 megabytes.
    • If you are doing a live install:
      • The minimum space requirement may be > 250MB. It must be at least the same size as the live image itself (~600MB typically?)
      • The filesystem must be the same as the live image's. (A known limitation being worked on.)


Errors & Discussion

Possible Sanity-Check error conditions: (Pulled from storage init.py in git )

"You have not defined a root partition (/), "which is required for installation of %s to continue.") % (productName,)

  • We shouldn't let them get far enough to ever get this as an error message.... don't let them click next if no root partition is defined, right?
    • well, this is the thing telling them we're refusing to go forward because there's no root. or do you mean we shouldn't even make the button active?
    • I think we should do two things:
      • Don't even make the button active if there is no root
      • "you're not ready to proceed yet. click here to see why." ?
      • maybe use the little area to the left of the button to have a short explanation
      • Can we pre-fill in a root, and don't let them delete it?
        • this can be difficult or even impossible.
        • doesn't autopart add this in already? you would just have to make the delete button grey out if the '/' item is focused? (add the control in the UI layer only)
        • preventing stupid mistakes in custom partitioning is very difficult. autopart is much nicer that way.

"Your root partition is less than 250 "megabytes which is usually too small to install %s.") % (productName,))

   If they set the mount point to '/' then something should light up to indicate 250 or less. This should probably be defined by some global variable somewhere no? Then we could use that on the HW requirements on the website and media sleeves.

"Your / partition is less than %(min)s MB which is lower than recommended for a normal %(productName)s%(live)s install.") % {'min': self.anaconda.backend.getMinimumSizeMB("/"), 'productName': productName, 'live': live})

   This looks like it happens for live install.... I wonder when exactly it pops up. It seems silly in a live environment to offer to install when there's no way you can.... does live media give you the option to choose the disk to install to?
   live media offers the full partitioning UI. this happens when they configure a root device that is smaller than the live image
   so this seems like another case where maybe we could somehow prefill in the capacity field with the minimum to avoid the error condition

"Your / partition does not match the the live image you are installing from. It must be formatted as %s.") % (self.liveImage.format.type,))

   I don't get this one. The liveimage uses... ext4 and your filesystem is different? Wouldn't the install process format the disk and set up the filesystem?
   as of now for live install the root filesystem must match the live root fs type. we're working on removing this limitation
   Okay so you can only do a live install if you already have the same fs on the disk you're trying to install to.

"Your %(mount)s partition is less than %(size)s megabytes which is lower than recommended for a normal %(productName)s install.") % {'mount': mount, 'size': 'productName': productName})

   Maybe the solution here is to have them choose a mount point first, and then pre-fill in the capacity widget as required to meet minimum requirements
   then what if they go back and edit the mountpoint or the size?
   you block them from adding a value < than the minimum

for (mount, device) in filesystems.items(): - if problem < 0: "Your %(mount)s partition is too small for %(format)s formatting (allowable size is %(minSize)d MB to %(maxSize)d MB)")  % {"mount": mount, "format": device.format.name, "minSize": device.minSize, "maxSize": device.maxSize})

   What does it mean by formatting? What are values for $format ?
   could ext4, lvm pv, btrfs, swap among others
   so we are talking really small here? what's the min requirements for these filesystems? < 1 mb?

elif problem > 0: - "Your %(mount)s partition is too large for %(format)s formatting (allowable size is %(minSize)d MB to %(maxSize)d MB)") {"mount":mount, "format": device.format.name, "minSize": device.minSize, "maxSize": device.maxSize})

   This refers to putting a filesystem on an area of storage larger than the filesystem supports? (Is that right?)
   correct
   what are the limits for each?

"Installing on a USB device. This may or may not produce a working system." "Installing on a FireWire device. This may or may not produce a working system."

   Why the caution here? Does this show up if every mount point is on a removable device or if one of the mount points is? (the latter I think is an error condition, the former probably not?)
   any
   is it still that unreliable on usb/firewire? (if the entire install is exclusive to the usb/firewire device?)
   I guess it depends on the ability to boot from such a device. Also, if there's a mixture of removable and non-removable media, that's asking for trouble IMO.

"you have not created a bootloader stage1 target device"

   Does this mean you don't have a /boot?
   no. it's a crappy way of saying your bootloader configuration doesn't make sense. examples of a stage1 device are the MBR of a disk on x86/BIOS, a PReP partition on ppc64, or the EFI system partition on EFI. this is saying that for one reason or another, we have nowhere we can install the bootloader

"You have not created a bootable partition."

   What's the difference between this and the one above?
   this refers to the stage2 device, which is the device containing /boot (if present) or /

"You have not specified a swap partition. %(requiredMem)s MB of memory is required to continue installation without a swap partition, but you only have %(installedMem)s MB."  % {"requiredMem": int(required.convertTo(spec="MB")),

"installedMem": int(installed.convertTo(spec="MB"))})

"You have not specified a swap partition. Although not strictly required in all cases, it will significantly improve performance for most installations."

   This is kind of a recommendation and not really an error
   I'd say we just take it out and make sure it's clear in the installation guide, but no one reads documentation.

"At least one of your swap devices does not have a UUID, which is common in swap space created using older versions of mkswap. These devices will be referred to by device path in /etc/fstab, which is not ideal since device paths can change under a variety of circumstances. "

   Is there anything at all you can do about this, or is this just informational? (If it's just informational, it may be worth pointing out later.)
   the only way to get a UUID on the device is to reformat it, which should probably be an okay thing to do
   Maybe we should just go ahead and reformat it in these cases; there shouldn't be anything in swap that needs to be preserved?

"This mount point is invalid. The %s directory must be on the / file system.") % mountpoint)

   hrm, how do you run into this?? if you move... /etc? 
   if you try to create a separate filesystem/mountpoint for any of '/bin','/dev','/sbin','/etc','/lib','/root', '/mnt', 'lost+found'
   oh i didn't know those had to be on '/'... everything else can be separate? /var, /home, /usr?
   apparently not /usr, but generally yes
   systemd hasn't ever supported a separate /usr, and Fedora in general doesn't like it.  With the new /usr move stuff, /bin, /sbin, and /lib (at least) are all now a part of /usr.  So this check is probably going to have to change.

"The mount point %s must be on a linux file system.") % mountpoint)

   so this happens if you, say, try to put your /home on a fat32 partition?? is there a way to do that without reformatting the partition?
   the following mountpoints/filesystems must be on a linux fs: '/', '/var', '/tmp', '/usr', '/home', '/usr/share', '/usr/lib'
   it is possible to set a mountpoint for a preexisting filesystem, including non-linux types (as of f17, anyway)

Other error conditions (these occur much earlier on in the install process)

==============================================

"No Drives Found An error has occurred - no valid devices were found on which to create new file systems. Please check your hardware for the cause of this problem."

   We shouldn't let you in the installer if we can't find a disk, right? This should pop up early on. If a cable gets jiggled or a usb key plugged out (if you're installing to the USB key) after it passes this check, then maybe this should be a check cable kind of error. Can we detect when devices are disconnected in the installer and pop up an alert as soon as we detect a disconnect? The closer to the disconnect event we alert about it, I think the easier the user is going to be able to recover from it (oh i just kicked the cable under my desk, whoops / clear cause and effect)
   this is very early on
   if a disk has disappeared just before we want to allocate partitions we just log it and remove the disk from our lists

"Storage.writeKS not completely implemented - The following is the partition information you requested. Note that any partitions you deleted are not expressed here so unless you clear all partitions first, this is not guaranteed to work"

   This I'm confused about, need more context
   We write this at the top of the partitioning section of anaconda-ks.cfg.  Basically it just tells the user that we don't know how to write out kickstart commands to delete existing partitions (well, except for deleting all partitions) so some manual editing may be required.  We will need to know how to clear out existing partitions for the new kickstart-based UI, so this might go away.

"Dirty File Systems - The following file systems for your Linux system were not unmounted cleanly. Please boot your Linux installation, let the file systems be checked and shut down cleanly to upgrade.

   When does this pop up? It should probably pop up at the very beginning of the installer UI / first screen. However, if preupgrade is the only way to upgrade, it seems like this error message would only be necessary for... kickstart upgrade? Would kickstart upgrade be a supported path?

"Dirty File Systems - The following file systems for your Linux system were not unmounted cleanly. Would you like to mount them anyway?"

   This error messgae is a little scary because it doesn't tell you what the negative consequences would be. What happens worst-case scenario if I go ahead and mount them?

"There is an entry in your /etc/fstab file that contains an invalid or incorrect filesystem type:" "Error - fstab entry %s is malformed: %s" % (devspec, e)) 2109 buttons = [_("Skip"), _("Format"), _("_Exit")]

   Is there a way to let them edit it and fix it by hand or is this a situation where they need to quit, fix it, and come back?

"cannot determine which device contains directory %s" % device.path)

   Need more context, not sure what this is about
   This is a log message that get printed in two circumstances:  either you have a swap file, or you have a bind-mounted filesystem.  In either case, we'll print this out if we can't find the partition the file's on or the filesystem that's the origin of the bind mount.  There shouldn't be any user-visible consequences here.

"The swap device: %s is an old-style Linux swap partition. If you want to use this device for swap space, you must reformat as a new-style Linux swappartition.") % device.path

   For this one, I don't see why we don't just format it new-style and don't bother the user about it
   There is the possibility that the user still runs whatever old linux can only use the old-style swap and we'll be breaking his/her other system. Slight possibility at best.

The swap device: %s in your /etc/fstab file is currently in use as a software suspend device, which means your system is hibernating. To perform an upgrade, please shut down your system rather than hibernating it."

   This should appear as early as possible, no later than the first screen of the installer. 

"The swap device: %s in your /etc/fstab file is currently in use as a software suspend device, which means your system is hibernating. If you are performing a new install, make sure the installer is set to format all swap devices."

   Format all swap devices might nuke other OSes though... 

"The swap device: %s does not contain a supported swap volume. In order to continue installation, you will need to format the device or skip it." % device.path

   What is a swap volume?
   This seems like a 'just format it and leave me alone' scenario, again

"Error enabling swap device %(name)s: %(msg)s The /etc/fstab on your upgrade partition does not reference a valid swap device.\n\nPress OK to exit the installer") % {'name': name, 'msg': msg}

   This seems to give you no option but to quit the installer... is that fair?
   Can't it just make me a swap?
   what if we make a swap on the partition containing your family photos?
   well that would be bad, but maybe there's free & unpartitioned space somewhere?
   we currently do not modify disk layout during upgrades, but this is technically possible

"Error enabling swap device %(name)s: %(msg)s This most likely means this swap device has not been initialized. Press OK to exit the installer."

   Doesn't it seem drastic to boot me out? It's not OK :)
   Why can't it initialize the swap device?
   I don't think this is technically possible with current code, but the thing to do would be to offer to initialize it.

"Invalid mount point An error occurred when trying to create %s. Some element of this path is not a directory. This is a fatal error and the install cannot continue. Press <Enter> to exit the installer.")% (device.format.mountpoint,))

   What path are they referring to? Where the install files are getting downloaded from? 
   this is a slightly more specialized case of the following error. in this case some portion of the path already exists but is not a directory, like if there were a regular file named /var/www and you were trying to create the mountpoint /var/www/html/


"Invalid mount point An error occurred when trying to create %(mountpoint)s: %(msg)s. This is a fatal error and the install cannot continue. Press <Enter> to exit the installer.") % na)

   This seems really bad, how do you get in this situation?
   you probably don't. I can't imagine how this might happen. selinux?

"SystemError: (%d) %s" % (num, msg) "Unable to mount filesystem An error occurred mounting device %(path)s as %(mountpoint)s. You may continue installation, but there may be problems.") % na, custom_buttons=[_("_Exit installer")("_Continue")])

   This seems really bad, how do you get in this situation?
   could be anything. broken preexisting filesystem, device not accessible for some reason

"FSError: %s" % msg) "Unable to mount filesystem An error occurred mounting device %(path)s as %(mountpoint)s: %(msg)s. This is a fatal error and the install cannot continue. Press <Enter> to exit the installer.") % na)

   Again, ouch
   more or less the same as the above/previous error