buttersink icon indicating copy to clipboard operation
buttersink copied to clipboard

Source and Destination relative to block device [Feature Request]

Open flungo opened this issue 9 years ago • 2 comments

I am not sure if this is something that would be considered useful, or within the scope of this project but I would like to see the ability to reference locations relative to the root of block devices so that it can be used on unmounted disks.

The format for a location would be:

[btrfs://]<block dev>//<path relative to root of block dev>/[snapshot]

In terms of implementation, it would probably require the mounting of the block device to a temporary location (that is unmounted and deleted once the operation is completed).

I have implemented this using a wrapper script for my dockerisation of ButterSink and this works for my purposes. Please take a look at the bash script for the rough pseudo code of what would be implemented bearing in mind that:

  • You would want to mount to a temporary location (not /mnt/<block dev> as I do) as unlike in a docker container where I can guarantee that /mnt/<block dev> is not being used, when running on the host the same cannot be said when running on a host machine.
  • I haven't implemented unmounting as everything will become unmounted at the end of the lifetime of the container.

If you think the feature would be useful but don't have the time to make the changes, I can do this and send a PR and if not, I understand that this is probably a very niche scenario.

flungo avatar Jan 26 '16 13:01 flungo

That is an interesting feature request that I haven't gotten before. I don't have time to implement myself, but I'd be happy to get a PR. One implementation note -- I'd rather not overload the btrfs: scheme for this, I'm afraid it could be confusing to users. I'd prefer something like:

[dev://]<block dev>//<path relative to root of block dev>/[snapshot]

Btw, very cool that you've dockerized buttersink! If you'd like, I'll add a link in the ReadMe the next time I do an update.

AmesCornish avatar Jan 28 '16 17:01 AmesCornish

Okay, I will have a look into doing that when I get time. It's mostly useful for using in the dockerised version, but I am sure one could find other uses.

With regards to linking it in the README, that would be great, but I would say it would be best if I do a little more testing with it first. It will be really useful for production systems running an OS like CoreOS where installing python is made difficult as it breaks the design of CoreOS that everything (other than the core) should be containerised.

flungo avatar Feb 01 '16 08:02 flungo