Tomasz Chmielewski
2009-Nov-09 15:00 UTC
rootfs snapshots and rollback (i.e. testing updates)
Is it possible, with current btrfs: - to take a rootfs snapshot (i.e. prior to a major update), - do changes in the root filesystem (i.e. install major update), - if we don''t like what the major update did to the system (rootfs), "rollback" the snapshot and make it the "original" rootfs again (perhaps, with a reboot in between). If it''s possible, what would be the steps/commands? -- Tomasz Chmielewski http://wpkg.org -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, I asked this question about a month ago, and the answer is roughly "It''s theoretically possible with minor feature implementations to btrfs, though nobody''s done it yet" On Nov 9, 2009, at 10:00 AM, Tomasz Chmielewski wrote:> Is it possible, with current btrfs: > > - to take a rootfs snapshot (i.e. prior to a major update), > > - do changes in the root filesystem (i.e. install major update), > > - if we don''t like what the major update did to the system (rootfs), > "rollback" the snapshot and make it the "original" rootfs again > (perhaps, with a reboot in between). > > > > If it''s possible, what would be the steps/commands? > > > -- > Tomasz Chmielewski > http://wpkg.org > -- > To unsubscribe from this list: send the line "unsubscribe linux- > btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi,
> Is it possible, with current btrfs:
Yes, I think so.
> - to take a rootfs snapshot (i.e. prior to a major update),
btrfsctl -s newsnap /
> - do changes in the root filesystem (i.e. install major update),
>
> - if we don''t like what the major update did to the system
> (rootfs), "rollback" the snapshot and make it the
"original"
> rootfs again (perhaps, with a reboot in between).
Before rebooting, edit whatever mounts your root partition (initrd,
fstab, kernel argument) to add a "subvol=newsnap" mount argument.
An obvious way to make this nicer would be to:
* have the package manager create the snapshot before modifying the
system, with a timestamp.
* modify the bootloader to give a choice of snapshots at boot-time.
Note that you''re rolling back *all* rootfs changes, not merely the
changes that the package manager made, so it wouldn''t be correct to
think of this as a way to only rollback package manager transactions.
- Chris.
--
Chris Ball <cjb@laptop.org>
One Laptop Per Child
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Tomasz Chmielewski
2009-Nov-10 09:53 UTC
Re: rootfs snapshots and rollback (i.e. testing updates)
Chris Ball wrote:> Hi, > > > Is it possible, with current btrfs: > > Yes, I think so. > > > - to take a rootfs snapshot (i.e. prior to a major update), > > btrfsctl -s newsnap / > > > - do changes in the root filesystem (i.e. install major update), > > > > - if we don''t like what the major update did to the system > > (rootfs), "rollback" the snapshot and make it the "original" > > rootfs again (perhaps, with a reboot in between). > > Before rebooting, edit whatever mounts your root partition (initrd, > fstab, kernel argument) to add a "subvol=newsnap" mount argument.So, if I understand it correctly, it''s not really "rolling back". Rather, with a "failed upgrade", we would mount a "newsnap" snapshot to use the old rootfs again. What''s still left here would be: - remove the "failed upgrade" "(sub)volume" (which is "/" now?) - turn everything to such a state, so that you can mount the old/original rootfs without adding any "subvol=newsnap" mount arguments Correct me if I''m wrong. -- Tomasz Chmielewski http://wpkg.org -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Nov 10, 2009, at 4:53 AM, Tomasz Chmielewski wrote:> Chris Ball wrote: >> Hi, >> > Is it possible, with current btrfs: >> Yes, I think so. >> > - to take a rootfs snapshot (i.e. prior to a major update), >> btrfsctl -s newsnap / >> > - do changes in the root filesystem (i.e. install major update), >> > > - if we don''t like what the major update did to the system >> > (rootfs), "rollback" the snapshot and make it the "original" >> > rootfs again (perhaps, with a reboot in between). >> Before rebooting, edit whatever mounts your root partition (initrd, >> fstab, kernel argument) to add a "subvol=newsnap" mount argument. > > So, if I understand it correctly, it''s not really "rolling back". > > Rather, with a "failed upgrade", we would mount a "newsnap" snapshot to use the old rootfs again. > > > What''s still left here would be: > > - remove the "failed upgrade" "(sub)volume" (which is "/" now?) > > - turn everything to such a state, so that you can mount the old/original rootfs without adding any "subvol=newsnap" mount arguments > > > Correct me if I''m wrong.You''re right. What''s needed is a way to set the new default subvol-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html