$ vagrant.exe --version
Vagrant 2.0.0
Windows 10 + Cygwin64
Ubuntu 16.04
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.provision :shell, path: "vagrant-bootstrap/vagrant-bootstrap.sh"
config.vm.provision :shell, path: "vagrant-bootstrap/vagrant-bootstrap-user.sh", privileged: false
config.vm.hostname = "vagrant-test"
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
config.vm.synced_folder ".", "/vagrant",
type: "rsync",
rsync__exclude: [
".vagrant/",
".git/"
],
owner: "ubuntu", group: "ubuntu"
end
Files should be synced to guest OS as it worked in vagrant 1.9.x
[...]
==> default: Setting hostname...
==> default: Rsyncing folder: /home/user/Workspace/vagrant-test/ => /vagrant
==> default: - Exclude: [".vagrant/", ".git/"]
There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.
Host path: /home/user/Workspace/vagrant-test/
Guest path: /vagrant
Command: "rsync" "--verbose" "--archive" "--delete" "-z" "--copy-links" "--chmod=ugo=rwX" "--no-perms" "--no-owner" "--no-group" "--rsync-path" "sudo rsync" "-e" "ssh -p 2200 -o LogLevel=FATAL -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i 'D:/cygwin64/home/user/Workspace/vagrant-test/.vagrant/machines/default/virtualbox/private_key'" "--exclude" ".vagrant/" "--exclude" ".git/" "/home/user/Workspace/vagrant-test/" "[email protected]:/vagrant"
Error: This rsync lacks old-style --compress due to its external zlib. Try -zz.
Continuing without compression.
rsync: change_dir "/home/user/Workspace/vagrant-test" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
vagrant up / vagrant rsync-autoYes, I confirm the exact problem with 'vagrant up' on Windows 10 + Cygwin
same problem on windows 7
Not seeing this possible yet, as waiting on another bug, but hope your solution also engages C:\MinGWmsys\1.0\bin\rsync, as have long used this for essential rsync on Win10.
Vagrant + rsync + IDE auto-sftp means speed, transparency developing via Vagrant
Who can answer my question
https://github.com/hashicorp/vagrant/issues/9010
rsync refuses to work with the -z parameter if the destination host uses rsync-3.1.2-2 (i.e. the version from RHEL 7.5), but the source host is still using rsync-3.0.9-18 (i.e. the version from RHEL 7.4).
box centos/7 rsync3.0.9
cwrsnc5.4.1 rsync3.1.2
https://bugzilla.redhat.com/show_bug.cgi?id=1491582
@snfnwgi your answer for current problem is probably here, in @cnidy 's note.
I didn't understand why you didn't just run the failing rsync command yourself, from the command line, and experiment until you realized what option wasn't accepted. The error message seemed clear?
It's nice to meet you again, English is not good, sometimes the translation is different. Is it because my rsync version is wrong?
@narration-sd @cnidy
Well, if your problem is the same as @cnidy, then it's that the rsync on your platform doesn't provide the
-compress argument, as in the bug report he linked; here
But it could be another argument that isn't proper. Thi is why I suggest to you to copy the full rsync command from your own debug output, and try it -- on both host and guest. Then you can try removing arguments until it no longer fails for that reason.
You will need to adjust source and destination of the command to fit, in order to be sure. Just try it with a single file or folder, to make this as simple as it can be, ok?
And then I think you will find your issue at present. If so, you can probably change the rsync arguments that homestead vagrant is using yourself -- then report how you did this for success....
@narration-sd
➜ modernie-winrm git:(master) ✗ "rsync" "-e" "ssh -p 2222" "/vagrant/win7/modernie-winrm/ExtraFolder/" "[email protected]:/cygdrive/c/work"
[email protected]'s password:
rsync version 3.1.1 protocol version 31
Copyright (C) 1996-2014 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, no xattrs, iconv, symtimes, prealloc
rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.
Usage: rsync [OPTION]... SRC [SRC]... DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
or rsync [OPTION]... [USER@]HOST:SRC [DEST]
or rsync [OPTION]... [USER@]HOST::SRC [DEST]
or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module name.
Options
-v, --verbose increase verbosity
--info=FLAGS fine-grained informational verbosity
--debug=FLAGS fine-grained debug verbosity
--msgs2stderr special output handling for debugging
-q, --quiet suppress non-error messages
--no-motd suppress daemon-mode MOTD (see manpage caveat)
-c, --checksum skip based on checksum, not mod-time & size
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
--no-implied-dirs don't send implied dirs with --relative
-b, --backup make backups (see --suffix & --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX set backup suffix (default ~ w/o --backup-dir)
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place (SEE MAN PAGE)
--append append data onto shorter files
--append-verify like --append, but with old data in file checksum
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
-L, --copy-links transform symlink into referent file/dir
--copy-unsafe-links only "unsafe" symlinks are transformed
--safe-links ignore symlinks that point outside the source tree
--munge-links munge symlinks to make them safer (but unusable)
-k, --copy-dirlinks transform symlink to a dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links preserve hard links
-p, --perms preserve permissions
-E, --executability preserve the file's executability
--chmod=CHMOD affect file and/or directory permissions
-A, --acls preserve ACLs (implies --perms)
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
--specials preserve special files
-D same as --devices --specials
-t, --times preserve modification times
-O, --omit-dir-times omit directories from --times
-J, --omit-link-times omit symlinks from --times
--super receiver attempts super-user activities
-S, --sparse handle sparse files efficiently
--preallocate allocate dest files before writing them
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (without delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PROGRAM specify the rsync to run on the remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that already exist on receiver
--remove-source-files sender removes synchronized files (non-dirs)
--del an alias for --delete-during
--delete delete extraneous files from destination dirs
--delete-before receiver deletes before transfer, not during
--delete-during receiver deletes during the transfer
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not during
--delete-excluded also delete excluded files from destination dirs
--ignore-missing-args ignore missing source args without error
--delete-missing-args delete missing source args from destination
--ignore-errors delete even if there are I/O errors
--force force deletion of directories even if not empty
--max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
--partial keep partially transferred files
--partial-dir=DIR put a partially transferred file into DIR
--delay-updates put all updated files into place at transfer's end
-m, --prune-empty-dirs prune empty directory chains from the file-list
--numeric-ids don't map uid/gid values by user/group name
--usermap=STRING custom username mapping
--groupmap=STRING custom groupname mapping
--chown=USER:GROUP simple username/groupname mapping
--timeout=SECONDS set I/O timeout in seconds
--contimeout=SECONDS set daemon connection timeout in seconds
-I, --ignore-times don't skip files that match in size and mod-time
-M, --remote-option=OPTION send OPTION to the remote side only
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with a suffix in LIST
-C, --cvs-exclude auto-ignore files the same way CVS does
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
repeated: --filter='- .rsync-filter'
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
--files-from=FILE read list of source-file names from FILE
-0, --from0 all *-from/filter files are delimited by 0s
-s, --protect-args no space-splitting; only wildcard special-chars
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
--blocking-io use blocking I/O for the remote shell
--stats give some file-transfer stats
-8, --8-bit-output leave high-bit chars unescaped in output
-h, --human-readable output numbers in a human-readable format
--progress show progress during transfer
-P same as --partial --progress
-i, --itemize-changes output a change-summary for all updates
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
--password-file=FILE read daemon-access password from FILE
--list-only list the files instead of copying them
--bwlimit=RATE limit socket I/O bandwidth
--outbuf=N|L|B set output buffering to None, Line, or Block
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating destination
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
--version print version number
(-h) --help show this help (-h is --help only if used alone)
Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers
rsync error: syntax or usage error (code 1) at main.c(1538) [client=3.1.1]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/io.c(453) [sender=2.6.9]
@snfnwgi All right. There is actually a lot of information on the internet about this kind of failure.
I seriously suggest that language difficulties mean you don't read it, you must get someone there in Beijing who has the abilities to help you.
Here are some hints I found.
Essentially, the sending rsync will just die if it can't get far enough with the remote rsync to begin operation. This is not good design, but apparently it i the situation. It apparently follows old customs of certain programmers, that if everything isn't perfect, the system just fails. Nontheless, rsync does work very well, very often. And, a number of people haver trouble before the situation is arranged so that it does.
Now, I found a specific clue for the place in io.c it reports failing, line 453. The person says the remote was out of disk space. So the same fault line number i think might occur for bad permissions. As it is farther into this io.c than many other errors, I guess your login itself is succeeding, and the remote rsync actually begins. If this is true, then some form of path or access permissions problem seems likely.
I suggest you try the command line again, adding --verbose so that the maximum information comes back from rsync, if that will make any difference.
Then I would check as above, to see the login works after you ssh into the machine (vagrant ssh). Then you'd check that the location you sent rsync to exists, andd that it has open permissions, tested by writing your own demonstration file there.
I don't have time to contribute more, I think, but will close with links to pages that I found with interesting information about this rsync problem.
Be sure to notice that when they talk about a bug, it's usually several years ago, and apparently you have a version where most are fixed, according to your printout. So, the hunt for what may be badly ocnfigured still, mainly those login, access path and permissions, as I suspect you are already partially successful, so that the problem will be there.
I think calm, and some local help probably, can be a big help now.
Rsync is just too little error message. Thank you for your valuable answer, I have an idea, in fact, can be synchronized on the windows, but take the host and the virtual machine is not synchronized, so I use the default directory synchronization, and then get rsync sync to another directory The
Cheers! The The
I had the same error. I had already the host for another VM.
To fix it edit your known_hosts file or delete it. Comment lines with # in:
~/.ssh/known_hosts
Then vagrant rsync will add the new key.
Another solution is to add the missing key:
$ ssh-keyscan -t rsa server_ip
# server_ip SSH-2.0-OpenSSH_4.3
server_ip ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwH5EXZG...
server_ip ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqx9m529...(the offending key)
server_ip ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwH5EXZG...
I forgot to close this issue, but it should be fixed via #8972 which will be in the next release of Vagrant. Thanks!
The most recent vagrant version 2.0.1 seem to have fixed the rsync issue on Windows 10. The only problem on my end is that when you do a vagrant ssh, it doesn't show the terminal or it doesn't fully login to ssh using Git Bash. I had to use the default command prompt to login to ssh.
Any clarity if to this behavior is appreciated. Thank you
Getting the same issue in V2.2.5 also.
Mee too V2.2.5 and so confused...
I'm going to lock this issue because it has been closed for _30 days_ ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.