/bin/cp of sparse files broken in 3.6.0-0.362.g68c13dc92f65.x86_64?
Corinna Vinschen
corinna-cygwin@cygwin.com
Thu Feb 13 08:02:16 GMT 2025
On Feb 12 22:34, Christian Franke via Cygwin wrote:
> Corinna Vinschen via Cygwin wrote:
> > On Feb 12 17:32, Cedric Blancher via Cygwin wrote:
> > > Good afternoon!
> > >
> > > Is copying sparse files broken in 3.6.0-0.362.g68c13dc92f65.x86_64?
> > >
> > > cp --version
> > > cp (GNU coreutils) 9.5
> > > Packaged by Cygwin (9.5-1
> > >
> > > Checklist:
> > > - Volume has FILE_SUPPORTS_SPARSE_FILES
> > > - Cygwin mount has "sparse" option (mount Y: -o sparse,exec /cygdrive/y)
>
> Do all mount points below /cygdrive have 'sparse,exec' set?
>
> If not, this may not work because different mount options for individual
> /cygdrive/s are not supported (AFIAK).
>
>
> > > - source file has FILE_ATTRIBUTE_SPARSE_FILE set
> > >
> > > But cp --sparse=auto ... or any other combination of --sparse does
> > > copy holes, i.e. turns 500GB of hole into 500GB of data (zero bytes).
> > >
> > > echo "hello sparse file\n" >testcase17_sparse_begins_with_data && dd
> > > if=/dev/null of=testcase17_sparse_begins_with_data oflag=append bs=1
> > > count=1 seek=$((65536*512)) && echo "endoffile"
> > > > > testcase17_sparse_begins_with_data
> > Works for me:
> >
> > $ uname -r
> > 3.6.0-0.362.g68c13dc92f65.x86_64
> >
> > $ pwd
> > /home/corinna/tmp
> >
> > $ mount | grep tmp
> > C:/cygwin64/home/corinna/tmp on /home/corinna/tmp type ntfs (binary,sparse,user,bind)
>
> This mount is independent from /cygdrive. That may make the difference.
You're right! I didn't notice this.
This:
> - Cygwin mount has "sparse" option (mount Y: -o sparse,exec /cygdrive/y)
doesn't work:
$ cat /etc/fstab
Y: /mnt/y binary,posix=0,sparse 0 0
none /mnt cygdrive binary,posix=0 0 0
$ mount
[...]
Y: on /mnt/y type ntfs (binary,posix=0,noumount,auto)
As you can see, the options for drive Y are ignored and the options
for the cygdrive prefix are used. This is even documented in a special
note in https://cygwin.com/cygwin-ug-net/using.html#cygdrive
Thanks for pointing this out, Christian!
Corinna
More information about the Cygwin
mailing list