-
Notifications
You must be signed in to change notification settings - Fork 846
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable filenames with colon (:) on drvfs #1514
Comments
Unfortunately NTFS defines a set of reserved characters, while Unix-ish filesystems (ext, ufs2, zfs, hfs), on which As an aside, Unix is tied somewhat to the boat anchor that is https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx |
The use case is "chromium-os" ;-) I build a special version for an older laptop of mine. The official build host is an Ubuntu 16.04.1. The whole build is done in a chroot'ed environment so basically only a few tools need to be installed on the OS (python, git, curl and a few others), the rest is downloaded and compiled in the chroot. While downloading the repository descriptions I come across a few files that cannot be sync'ed because of the colon:
The original sources really contain that colon: My aim was to have a "somewhat native" possibility to compile a new version on my laptop rather than to have Hyper-V and virtual network cards and switches messing with my non-trivial network/VPN setup (if you ever set up half a dozen VPNs (SSTP, OpenVPN and PPTP mixed with ipv4/ipv6) and you install Hyper-V and you wonder, why nothing is working any more, you'll understand ;-) ) But I understand that it'd be problematic allowing it, despite I'm not looking to have it as a directory name but "just a file name". |
Tangent -- Anyway, it's an interesting question whether DrvFs should (for compatibility purposes) be allowed to construct filenames that wouldn't be allowed for regular Windows applications, and if so, what the semantics of such files should be. |
@doehrm -- can you not build in WSL's |
I still work on an OS that has filenames such as And yes, I'll try that next - as soon as I can get rid of some older insider builds still stored on the disk and make some space. |
Interestingly enough, I could clone the repository using GIT on Windows:
and it seems there is some sort of semantics already existing:
A plain |
@therealkenc The real reason doesn't have anything to do with DOS iirc. The ":" character is reserved for alternate data streams in NTFS and actually appears to be related maybe to the ancient OS/2 subsystem. |
I'd not say OS/2 but rather VMS (OpenVMS). Windows and VMS share quite a few things (http://www3.sympatico.ca/n.rieck/docs/Windows-NT_is_VMS_re-implemented.html). |
I was now able to download all the code to $HOME. When I try to enter the chroot the system either freezes (and I have to hard reboot) or BSODs :-( with APC_INDEX_MISMATCH.
I switched on a full dump and will reproduce the problem again (if that helps). |
@doehrm Please email [email protected] ATTN: Ben Hillis ( @benhillis ) or Russ Alexander ( @russalex )with a copy of a minidump. Also, yes, that's right, alternate data streams is a VMS-inspired thing. Extended attributes are the OS/2 legacy. |
Done so, thanx @fpqc for pointing me in the direction and sorry for messing this issue up with nonrelated BSOD's. Since NTFS seems to have a way to handle those files, doesn't/couldn't/shouldn't that mean DrvFS should too? |
@doehrm The path "a:b" refers to an alternate data stream of the file "a" on NTFS. It is not a valid path in Win32. Powershell has a cmdlet ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa364404(v=vs.85).aspx iirc, GeoHot demonstrated an attack on Windows using ADS a few years ago. |
or it's internally "mapped" to a Unicode character (U+F000 - U+F0FF)... |
The result of your It says "I created an empty file I just tested it myself. That's what it's doing. That's also probably why it's going crazy with BSODs. Nobody (external to Microsoft, at least) has, to my knowledge, tested DrvFS functionality with Alternate named $DATA streams thrown into the mix. It works in LXFS because the WSL drivers are intercepting all File I/O within the environment and escaping the character as necessary when it ends up on the disk. |
@doehrm - I received your dump and took a look. The cause of the bluescreen was a locking issue in a terminal ioctl. The fix just reached the rs_prerelease branch so it should be in the next Windows Insider build. Thank you for reporting the issue and sending us the memory dump! |
Thanks for reporting. Closing since this issue should have been fixed in an insider build in early 2017, and there's been no recent activity on this issue. |
@bitcrazed is this "fix" in the creators update too? If so, is it allowed to have a filename with colon on an NTFS partition and be accessible from WSL? |
No, it was just closed incorrectly. |
Thanks @therealkenc Maybe dev wouldn't mind if I open a new one to get some clarity here.. |
@SRGOM Repurpose your #2061 by changing the title - this issue was closed 9 days after #1828 was marked as a dupe. I don't know the chances/timeframe for this being supported because it will probably take some cooperation from the NTFS win32 side people which might or might not be forthcoming. Notwithstanding Cygwin style hacks anyway, which I suppose could be a reasonable enough approach in the absence of alternatives. |
Rich probably just conflated the terminal ioctl related BSOD being squashed above with the issue title. A registry switch to turn on and off filename colon support in DrvFS would make no sense, and even if it did, it wouldn't be a secret switch. And... if it were a secret switch... well... those in the know would be sworn to secrecy... wouldn't they. |
Reopening until the win32 reserved characters ( |
@therealkenc - Thanks, didn't realize this one was closed. |
The reserved character issue should be resolved as of Insiders Build 17101. |
I have Windows 10 Pro N (1803, build: 17101.1000) Still I have some problems with colons on The files that represent email have complex names like: When I run my script from Example: Oryginal |
I guess this made 1803 after all (17101 < 17134) |
Insider build 14986
Trying to create a filename with a colon on a drive mounted with drvfs is not working whereas I can create the file on lxfs:
The drive connected is an external USB drive formatted with NTFS
Am I missing something?
--
Markus
The text was updated successfully, but these errors were encountered: