[dm-devel] DM_snapshot_cow filesystem (dmsetup create snapshot)
Alasdair G Kergon
agk at redhat.com
Fri Dec 2 08:46:19 UTC 2011
On Thu, Dec 01, 2011 at 09:44:53PM -0600, Douglas McClendon wrote:
> The commandline to do the 'edit' was requested for users like Fred, and
> because I guess one day I might find myself wanting to do the same.
This is unsupported, but if you want to try:
You need to flip the 5th byte of the 'cow' device from 0 to 1 (when
the snapshot is not active). (But you might have lost the most recent
changes if they weren't flushed out when it filled up.)
Something like this:
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvol0 vg2 owi-a- 10.00m
lvol1 vg2 Swi-I- 10.00m lvol0 100.00
# dmsetup table vg2-lvol1-cow
0 20480 linear 7:0 22528
# lvchange -an vg2/lvol0
# dmsetup create tmp-vg2-lvol1-cow --table "0 20480 linear 7:0 22528"
# hexdump -C /dev/mapper/tmp-vg2-lvol1-cow | head -1
00000000 53 6e 41 70 00 00 00 00 01 00 00 00 08 00 00 00 |SnAp............|
Flip byte 5, e.g. copy to file, edit that bit, copy back.
# dd if=/dev/mapper/tmp-vg2-lvol1-cow of=/tmp/cow-start bs=512 count=1
# vim -b /tmp/cow-start (and/or xxd)
# dd if=/tmp/cow-start of=/dev/mapper/tmp-vg2-lvol1-cow
# dmsetup remove tmp-vg2-lvol1-cow
# lvchange -ay vg2/lvol0
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvol0 vg2 owi-a- 10.00m
lvol1 vg2 swi-a- 10.00m lvol0 10.08
# hexdump -C /dev/mapper/vg2-lvol1-cow | head -1
00000000 53 6e 41 70 01 00 00 00 01 00 00 00 08 00 00 00 |SnAp............|
Alasdair
More information about the dm-devel
mailing list