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