/bin/cp of sparse files broken in 3.6.0-0.362.g68c13dc92f65.x86_64?
Corinna Vinschen
corinna-cygwin@cygwin.com
Wed Feb 12 17:30:24 GMT 2025
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)
> - 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)
$ 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
$ ls -gGsh testcase17*
128K -rw----r--+ 1 33M Feb 12 18:22 testcase17_sparse_begins_with_data
$ cp --sparse=auto testcase17_sparse_begins_with_data testcase17_sparse_begins_with_data.copy
$ ls -gGsh testcase17*
128K -rw----r--+ 1 33M Feb 12 18:22 testcase17_sparse_begins_with_data
128K -rw----r--+ 1 33M Feb 12 18:23 testcase17_sparse_begins_with_data.copy
Corinna
More information about the Cygwin
mailing list