## page was renamed from DiskWarnings ''This is an incomplete specification for Ubuntu should handle data storage media and devices.'' ''See also: EncryptedStorage, HardyFullDiskHandling, HandleNicelyLowDiskSpace, [[https://blueprints.launchpad.net/ubuntu/+spec/foundations-r-degraded-hw-notification|Degraded Hardware Notifications]]'' <> == Naming == On a phone with Ubuntu installed: * the root folder should be called “Internal Storage” (private bug Bug:1383861) * any SD card should be called “SD Card”. <> == When another device tries to read your storage == (bug Bug:1470853) {{attachment:share-prompt.png}} If you connect (or someone else connects) your locked phone to a device that tries to read its storage, it should be denied. If you connect the phone while unlocked: * If the device (as identified by its USB `Vendor`, `ProdID`, `Rev`, and `SerialNumber`) is not one that you have previously granted/denied storage access to, a prompt should appear with title “Device Connected”, primary text “Make all your data accessible to this device?” and buttons “Share Data” and “Charge Only”. * If the device ''is'' one that you have previously granted/denied storage access to, it should silently be granted/denied again. {{attachment:reset-storage-access.png}} So that you can undo this decision, [[SecurityAndPrivacySettings#Phone|the “Security & Privacy” screen in System Settings]] should have a button for “Reset Storage Access…”. This should prompt you for your passcode/passphrase, then clear the choice for all previously connected devices. == Storage problems == {{attachment:disk-full-nearly.png}} {{attachment:disk-full-nearly.phone.png}} A storage warning or error condition should be presented in an alert box. (It is important enough that it should not disappear by itself, but it should still be possible to do other work while it is open. Compare with [[Power#Warnings|the “Battery Low” alert]].) Unless otherwise specified, the alert should appear whenever the warning state is in effect, and either: * the alert has not opened since the warning state began, and has not been dismissed in the past 5 minutes; ''or'' * the alert box has not been open in the past 30 minutes. In particular, an alert should close by itself whenever the warning state is no longer in effect. For example: * 3:00 p.m.: The startup disk becomes nearly full. The disk-nearly-full alert appears. * 3:01: The disk is no longer nearly full. The alert closes by itself. * 3:02: The disk becomes nearly full again. The disk-nearly-full alert appears. * 3:03: You dismiss the alert. * 3:04: The disk becomes no longer nearly full. * 3:05: The disk becomes nearly full again. The alert does not appear, because it hasn’t been five minutes yet. * 3:08: The alert appears again, because it’s been five minutes. * 3:09: You dismiss the alert. * 3:39: The alert appears again, because it’s been 30 minutes. <> === Disk low on space === This condition is when any non-removable, non-hotpluggable partition has both less than 1 percent and less than 50 MB free space: ==== PC ==== ''TBD: merge these two designs'' {{attachment:this-computer.jpg}} {{attachment:partition.jpg}} On the PC, the text of the alert should differ depending on whether there is more than one mounted partition usable for storing files on, and on whether the nearly-full partition has any items in the Trash. ||||'''Has nothing in the Trash'''||'''Has stuff in the Trash'''|| ||<)|2>'''No other usable partitions'''||<-2>This computer has only '''' disk space remaining.|| ||<^>~-You can free up disk space by removing unused programs or files, or by moving files to another disk.-~||<^>~-You can free up disk space by emptying the Trash, removing unused programs or files, or moving files to another disk.-~|| ||<)|2>'''Other usable partitions'''||<-2>The volume “''''” has only '''' disk space remaining.|| ||<^>~-You can free up disk space by removing unused programs or files, or by moving files to another disk or partition.-~||<^>~-You can free up disk space by emptying the Trash, removing unused programs or files, or moving files to another disk or partition.-~|| ||<) width="12em">Title||Disk Full|| ||<)>Icon||The icon of the disk.|| ||<)>Primary text||This computer’s startup disk is full.|| When you are logged in and your Trash contains items using at least 0.2 percent ''and'' at least 10 MB of the disk space, then: ||<) width="12em">Secondary text||You should immediately free up space by emptying the trash ({size}), deleting large files, or removing unneeded programs.|| ||<)>Buttons||“Empty Trash”, “OK”|| Otherwise: ||<) width="12em">Secondary text||You should immediately free up space by deleting large unwwanted files or removing unneeded programs.|| ||<)>Buttons||“OK”|| Otherwise, when the disk containing `/` has both less than 5 percent and less than 250 MB free space: ||<) width="12em">Title||Disk Nearly Full|| ||<)>Icon||The icon of the disk.|| ||<)>Primary text||This computer’s startup disk is nearly full. It has only {size} free space.|| When you are logged in and your Trash contains items using at least 1 percent and at least 50 MB of the disk space, then: ||<) width="12em">Secondary text||Emptying the trash ({size}), deleting large files, or removing unneeded programs can free up space.|| ||<)>Buttons||“Empty Trash”, “OK”|| Otherwise: ||<) width="12em">Secondary text||Deleting large files or removing unneeded programs can free up space.|| ||<)>Buttons||“OK”|| The alert should switch between these two overall states, if appropriate, without closing and reopening. '''''Future work:''' Automatically free up disk space or inodes by deleting the contents of `/var/cache/ ~/.cache/` or by actually calculating which folder/files use up a lot of inodes due to spamming the filesystem?'' If Baobab is installed, an “Examine…” button should be to the left of the “OK” button. “Empty Trash”, when present, should always be the leftmost button. {{attachment:examine.jpg}} {{attachment:empty-trash.jpg}} Choosing “Examine…” should immediately close the alert and launch Baobab. Choosing “Empty Trash” should immediately close the alert and invoke the file manager’s usual Trash emptying function. <> ==== Phone ==== {{attachment:space-low.phone.png}} On the phone, for now we have no general interface for deleting unwanted files. So the only help we can offer is, if you choose “Details”, to navigate to [[https://wiki.ubuntu.com/AboutThisDevice#storage|the “Storage” screen]] for more information. === Disk full or nearly full === <> === Disk out of inodes === When no more inodes are available on a disk: ||<) width="12em">Title||Disk Index Full|| ||<)>Icon||The icon of the disk.|| ||<)>Primary text||The disk “{name of disk}” can’t contain any more files, because the disk index is full.|| When you are logged in and the Trash contains any items from that disk: ||<) width="12em">Secondary text||You can free up index entries (inodes) by emptying the Trash or deleting unwanted files of any size.|| ||<)>Buttons||“Empty Trash”, “OK”|| Otherwise: ||<) width="12em">Secondary text||You can free up index entries (inodes) by deleting unwanted files of any size.|| ||<)>Buttons||“OK”|| ''Should we also have a warning for when the disk is nearly out of inodes? If so, how nearly?'' <> === Smart errors === When a disk is reporting Smart errors: ||<) width="12em">Title||Disk Error|| ||<)>Icon||The icon of the disk.|| ||<)>Primary text||The disk “{name of disk}” is reporting that it will fail soon. You should replace it as soon as possible.|| ||<)>Buttons||“Show Details”, “Eject”, “Continue” || “Eject” should be present only if it is not the startup disk. ''Should we have intermediate steps towards “will fail soon”?'' '''''Future work:''' Offer a migration function that will copy all files from one disk to another, restarting before and after if necessary.'' <> === Raid errors === ||<) width="12em">Title||Raid Error|| ||<)>Icon||The standard error icon.|| ||<)>Buttons||“Show Details”, “Eject”, “Continue” || “Show Details” should open Disk Utility to display the Raid array. “Eject” should be present only if the Raid array is not being used as the startup disk. ==== Usable with missing component ==== ||<) width="12em">Primary text||The disk “{name of disk}” is missing from the Raid array “{name of array}”.|| ||<)>Secondary text||To avoid data loss, reconnect or replace the disk as soon as possible.|| ==== Unusable with missing component ==== This alert should appear only once, not repeating. ||<) width="12em">Primary text||The Raid array “{name of array}” can’t be used, because the disk “{name of disk}” is missing.|| ||<)>Secondary text||The array will become available if the disk is reconnected.|| ==== Non-damaging component failure ==== ||<) width="12em">Primary text||The disk “{name of disk}” has failed in the Raid array “{name of array}”.|| ||<)>Secondary text||To avoid data loss, replace the disk as soon as possible.|| ==== Damaging component failure ==== This alert should appear only once, not repeating. ||<) width="12em">Primary text||Data on the Raid array “{name of array}” has been lost, because {number} of the disks failed.|| ||<)>Secondary text||''(none)''||