/bin/cp of sparse files broken in 3.6.0-0.362.g68c13dc92f65.x86_64?

Corinna Vinschen corinna-cygwin@cygwin.com
Wed Feb 12 19:08:24 GMT 2025


On Feb 12 10:54, Brian Inglis via Cygwin wrote:
> On 2025年02月12日 10:30, Corinna Vinschen via Cygwin wrote:
> > On Feb 12 17:32, Cedric Blancher via Cygwin wrote:
> > > 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
>> Hi Corinna,
>> Did you test using coreutils current stable 9.0, test 9.5, or both?

Tested with 9.0.
I just installed 9.5 and the result after cp --sparse=auto is the same:
$ cp --version | head -1
cp (GNU coreutils) 9.5
$ rm testcase17_sparse_begins_with_data.copy
$ 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 20:01 testcase17_sparse_begins_with_data.copy
Corinna


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /