Launchpad Entry: https://features.launchpad.net/distros/ubuntu/+spec/system-restore
Created: 11/05/2006 by towsonu2003
Packages affected: Ubuntu
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.
- 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.
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.
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
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
Or, you could just use a journaling file system.
- "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...
The idea of implementing this with any form of "tar" command is just madness.