On Mar 18 16:40, Leo Alekseyev wrote: > I recently tried to transfer the cygwin directory from one machine to > another by rsyncing the source to an external drive, and rsyncing > again from external drive to the destination. As a result, all my > symlinks got corrupted -- they are now Unicode files with the path > text. In particular, if I examine the contents of a valid and an > invalid symlink files in Emacs, they appeare identical > (!<symlink>\377\376 followed by the unicode path string). However, one > works with cygwin on the new machine, and the other doesn't.
For this kind of symlink the problem is the missing DOS SYSTEM file attribute. This attribute is used to recognize symlinks in the first place. Only files with the SYSTEM bit are opened and their content examined if they are symlinks. I don't know anything about your external drive, so I don't know where the SYSTEM bit was lost. In fact, rsync should just have tried to create symlinks either way, so I assume the system bit has gone lost due to some unrelated operation. > Both machines are running Cygwin 1.7. > > Any thoughts on whether this can be fixed without a complete reinstall > / recreation of every link? find the files by their !<symlink> header and set the DOS SYSTEM attribute. That fixes it. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple