SystemRestore

Differences between revisions 2 and 6 (spanning 4 versions)
Revision 2 as of 2006-11-05 06:37:29
Size: 2429
Editor: c-69-251-20-244
Comment: new spec!
Revision 6 as of 2009-01-04 14:38:52
Size: 3188
Editor: 78-86-59-105
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Contents'''[[BR]][[TableOfContents]]|| ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>||
Line 17: Line 17:
 * The user should be confident that if an upgrade break something due to bad [https://features.launchpad.net/distros/ubuntu/+spec/security-update-qa QA], the system will be able to recover.  * The user should be confident that if an upgrade break something due to bad [[https://features.launchpad.net/distros/ubuntu/+spec/security-update-qa|QA]], the system will be able to recover.
Line 21: Line 21:
 * Usage1: I install xgl. It borks my X but I do not remember what kind of tweaks I did. I hit "Restore System" under System > Administration and all is back  * Usage1: Marx installs xgl. It borks his X but I do not remember what kind of tweaks he did. He hits "Restore System" under System > Administration and all is back
Line 23: Line 23:
 * Usage2: An upgrade breaks my system and borks dpkg. I hit "System Restore" and my system is back.  * Usage2: An upgrade breaks Patricia Hill's system and borks dpkg. She hits "System Restore" and her system is back.
Line 25: Line 25:
 * Usage3: I will upgrade to Firefox2 using a custom repository. I hit "Create System Restore Point" worrying that it might break my good old Firefox.  * Usage3: Bill will upgrade to Firefox2 using a custom repository. He hits "Create System Restore Point" worrying that it might break his good old Firefox.
Line 27: Line 27:
 * Usage4: I dist-upgraded from 6.06 to 6.10... Ubuntu created a "System Restore Point" before the dist-upgrade in case it breaks the system. It broke my system indeed. I hit "System Restore" and my working 6.06 is back.  * Usage4: Daly dist-upgraded from 6.06 to 6.10... Ubuntu created a "System Restore Point" before the dist-upgrade in case it breaks the system. It broke her system indeed. She hist "System Restore" and her working 6.06 is back.
Line 41: Line 41:
As a high level stab in the dark at an implimentation I'd suggest a Copy On Write and Save on Delete ( if they are not the same thing ) approach. The steps would be.
 
 * 0) Configure System Life Saver ( SLS) [ Directories / Structures to store modified / deleted files ]
 * 1) Run System Life Saver - Puts the COW and SOD components active
 * 2) Update / Install / Do What you Like
 * 3) Run System Life Saver - Create Diff Point ( With Date ) - This step closed the SLS processes

 
At some stage run

sls --restore dd/mm/yyyy ( and a time component?? )
 

to go back in time :D
 

Or, you could just use a journaling file system.


Line 50: Line 70:
The idea of implementing this with any form of "tar" command is just madness.

Summary

Ubuntu should backup the system configurations every time an important configuration file was tweaked or a package was installed / upgraded (the "Windows Style", sorry to say) and restore the system upon request to the last known sane time.

Rationale

  • The user should feel free to play around with her/his system, being more or less sure that "System Restore" will save her/him from big trouble
  • The user should be confident that if an upgrade break something due to bad QA, the system will be able to recover.

Use cases

  • Usage1: Marx installs xgl. It borks his X but I do not remember what kind of tweaks he did. He hits "Restore System" under System > Administration and all is back

  • Usage2: An upgrade breaks Patricia Hill's system and borks dpkg. She hits "System Restore" and her system is back.
  • Usage3: Bill will upgrade to Firefox2 using a custom repository. He hits "Create System Restore Point" worrying that it might break his good old Firefox.
  • Usage4: Daly dist-upgraded from 6.06 to 6.10... Ubuntu created a "System Restore Point" before the dist-upgrade in case it breaks the system. It broke her system indeed. She hist "System Restore" and her working 6.06 is back.

Scope

The feature enables users to trust their system's stability:

  • Upgrades cannot bork the system
  • Dist-upgrades cannot bork the system
  • A bad package cannot bork the system
  • An X breakage can easily recovered from
  • Complex customizations of the system can easily be undone

Implementation

As a high level stab in the dark at an implimentation I'd suggest a Copy On Write and Save on Delete ( if they are not the same thing ) approach. The steps would be.

  • 0) Configure System Life Saver ( SLS) [ Directories / Structures to store modified / deleted files ]
  • 1) Run System Life Saver - Puts the COW and SOD components active
  • 2) Update / Install / Do What you Like
  • 3) Run System Life Saver - Create Diff Point ( With Date ) - This step closed the SLS processes

At some stage run

sls --restore dd/mm/yyyy ( and a time component?? )

to go back in time Big Grin :)

Or, you could just use a journaling file system.

Outstanding issues

  • "System Restore" may be copyrighted and / or patented by Microsoft... We might need to find a new name, or even a new way to back up the system.
  • Hard Disk space usage: backing up system configuration files and old deb packages will force us to increase minimum hdd space standards (of a new install) if this feature is enabled...

Discussion

The idea of implementing this with any form of "tar" command is just madness.

CategorySpec

SystemRestore (last edited 2009-01-04 14:38:52 by 78-86-59-105)